Commit 0cc765f0 authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

add gitlab webhook docs

parent cde20561
Loading
Loading
Loading
Loading
+36 −1
Original line number Diff line number Diff line
@@ -214,3 +214,38 @@ Le premier argument de la méthode RPC est __toujours__ une instance de
Une possibilité est de préfixer le nom de la méthode avec le nom de votre application.

⚠️ Le retour de la méthode RPC __doit__ être sérialisable par l'encodeur par défaut du module standard `json`.

### Hook Gitlab

L'application peut être maintenue à jour automatiquement. Le principe est le suivant:

1. En fonction d'un évènement (ajout de commit, de tag, autre) Gitlab fait une requête POST sur Jama avec un jeton secret
2. Jama enregistre une tâche asynchrone via [Huey](https://huey.readthedocs.io/en/latest/)
3. la tâche asynchrone appelle un script shell chargé de mettre à jour l'application

#### mise en place

Ajoutez l'application `autoupdate` à la variable d'environnement `JAMA_APPS`:

    JAMA_APPS="autoupdate"

Sur Gitlab, ajouter un webhook (dépôt > paramètres > webhook) ayant pour URL https://acme.tld/autoupdate/.
Prenez soin de noter le jeton que vous attribuez. Ajouter ce jeton à la variable d'environnement `JAMA_WEBHOOK_TOKEN`:

    JAMA_WEBHOOK_TOKEN="Zuhugce7zjhw7Pye"

Ajoutez un script update.sh dans le répertoire de Jama. Un exemple, à adapter en fonction de votre installation:

    #!/usr/bin/env sh
    git pull
    ./venv/bin/pip install -r requirements.txt
    ./venv/bin/python manage.py migrate
    sudo systemctl restart jama

Lancez le service Huey en charge de l'exécution des tâches asynchrones:

    manage.py run_huey

(idéalement, maintenez ce processus via systemd).

Jama est maintenant prêt à recevoir les notifications de Gitlab (par exemple en cas de nouveau tag) et lancera sa mise à jour ensuite.
 No newline at end of file