Gitea-bot/README.md

68 lines
2.3 KiB
Markdown
Raw Normal View History

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/).
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
## 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.
```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
```