2020-09-24 22:11:51 +02:00
|
|
|
|
## GLaDOS bot
|
|
|
|
|
|
|
|
|
|
Ce bot recoit des requêtes Gitea, les parse et poste des messages en tant que GLaDOS sur la shoutbox.
|
|
|
|
|
|
|
|
|
|
## Configuration du backend
|
|
|
|
|
|
2020-09-24 22:30:32 +02:00
|
|
|
|
1. Cloner le dépot dans `/home/pc/gitea-bot/`
|
|
|
|
|
2. Copier le cookie de session de GLaDOS dans `secrets.py`
|
|
|
|
|
3. Placer `gitea-bot.service` dans `/etc/systemd/system/`
|
2020-09-24 22:11:51 +02:00
|
|
|
|
4. Démarrer le service `gitea-bot`
|
|
|
|
|
|
2020-09-24 22:30:32 +02:00
|
|
|
|
```
|
|
|
|
|
# su pc
|
|
|
|
|
$ cd ~
|
|
|
|
|
$ git clone gitea@gitea.planet-casio.com:devs/Gitea-bot.git gitea-bot
|
|
|
|
|
$ vim gitea-bot/secrets.py
|
|
|
|
|
$ exit
|
|
|
|
|
# cp /home/pc/gitea-bot/gitea-bot.service /etc/systemd/system/
|
|
|
|
|
# systemctl enable --now gitea-bot
|
|
|
|
|
```
|
|
|
|
|
|
2020-09-24 22:11:51 +02:00
|
|
|
|
En soit le cookie peut être celui de n'importe quel membre ayant le droit de causer sur la shout. Par contre ça ne sera plus GLaDOS qui causera.
|
|
|
|
|
|
|
|
|
|
## Configuration de Gitea
|
|
|
|
|
|
|
|
|
|
Les webhooks peuvent être activés par dépôt ou globalement.
|
|
|
|
|
Il est aussi possible de pousser des webhooks par défaut sur les dépôts nouvellement créés.
|
|
|
|
|
|
|
|
|
|
**Activer les hooks de manière globale va déclencher des requêtes pour tous les dépôts, y compris les privés !**
|
|
|
|
|
Ça veut dire qu'il peut être bien de faire du filtrage dans le script si on veut éviter les annonces de dépôts confidentiels.
|
|
|
|
|
|
|
|
|
|
Pour activer les webhooks globalement, aller [dans le panel admin](https://gitea.planet-casio.com/admin/system-hooks).
|
|
|
|
|
|
|
|
|
|
- Url cible : `http://localhost:5000/`, le service qui écoute les requêtes
|
|
|
|
|
- Méthode HTTP : `POST`
|
|
|
|
|
- Type de contenu : `application/json`
|
|
|
|
|
- Confidentiel : Un token pour authentifier Gitea le cas échéant.
|
|
|
|
|
|
|
|
|
|
Sélectionner des éléments qui déclencheront des évènements, vérifier que le crochet est actif puis valider.
|
|
|
|
|
|
|
|
|
|
Les derniers évènements sont affichés sous le formulaire.
|
|
|
|
|
|
|
|
|
|
## Traiter de nouveaux évènements
|
|
|
|
|
|
|
|
|
|
La documentation sur les events est disponible [ici](https://docs.gitea.io/en-us/webhooks/).
|
|
|
|
|
|
2020-10-13 22:45:50 +02:00
|
|
|
|
Gitea logge les événements récents dans les paramètres du webhook dans le panel admin.
|
|
|
|
|
|
2020-09-24 22:11:51 +02:00
|
|
|
|
Le script actuel est pas fou, n'hésitez pas à proposer des améliorations ! :)
|
2020-09-24 22:30:32 +02:00
|
|
|
|
|
2020-10-13 22:45:50 +02:00
|
|
|
|
## Tester les modifications en local
|
|
|
|
|
|
2020-10-13 23:46:28 +02:00
|
|
|
|
Lancer le serveur de test avec `flask run` ; les requêtes enregistrées par Gitea peuvent être envoyées avec curl.
|
2020-10-13 22:45:50 +02:00
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
curl http://127.0.0.1:5000 -X POST -H 'X-Gitea-Event:push' -H 'Content-Type: application/json' -d "$(cat logged-push-event.json)"
|
|
|
|
|
```
|
|
|
|
|
|
2020-09-24 22:30:32 +02:00
|
|
|
|
## Appliquer des modifications
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# su pc
|
|
|
|
|
$ cd ~/gitea-bot
|
|
|
|
|
$ git pull
|
|
|
|
|
$ exit
|
|
|
|
|
# systemctl restart gitea-bot
|
|
|
|
|
```
|