## GLaDOS bot Ce bot recoit des requêtes Gitea, les parse et poste des messages en tant que `Gitea` sur la shoutbox. ## Configuration du backend 1. Cloner le dépot dans `/home/pc/gitea-bot/` 2. Copier les identifiants de `Gitea` dans `gb_secrets.py` (`credentials = {"username":"Gitea", "password":"P@ssw0rd"}`) 3. Placer `gitea-bot.service` dans `/etc/systemd/system/` 4. Démarrer le service `gitea-bot` ``` # su pc $ cd ~ $ git clone gitea@gitea.planet-casio.com:devs/Gitea-bot.git gitea-bot $ vim gitea-bot/gb_secrets.py $ exit # cp /home/pc/gitea-bot/gitea-bot.service /etc/systemd/system/ # systemctl enable --now gitea-bot ``` 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 `Gitea` 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. Le script actuel est pas fou, n'hésitez pas à proposer des améliorations ! :) ## Tester les modifications en local 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)" ``` ## Modifier la verbosité des logs Vous pouvez changer le niveau de verbosité des logs via la variable d’environement `LOGLEVEL` : - `critical` - `error` - `warning` - `info` (défaut) - `debug` ## Appliquer des modifications ``` # su pc $ cd ~/gitea-bot $ git pull $ exit # systemctl restart gitea-bot ``` ## En cas de soucis Si le bot ne fonctionne plus sans modification apparente, vous pouvez essayer de redémarrer le service. Cela réinitialisera la session et ses cookies d’authentification.