A bot that post on the shout some messages about the activity on Gitea.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
2.3 KiB

9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
  1. ## GLaDOS bot
  2. Ce bot recoit des requêtes Gitea, les parse et poste des messages en tant que GLaDOS sur la shoutbox.
  3. ## Configuration du backend
  4. 1. Cloner le dépot dans `/home/pc/gitea-bot/`
  5. 2. Copier le cookie de session de GLaDOS dans `secrets.py`
  6. 3. Placer `gitea-bot.service` dans `/etc/systemd/system/`
  7. 4. Démarrer le service `gitea-bot`
  8. ```
  9. # su pc
  10. $ cd ~
  11. $ git clone gitea@gitea.planet-casio.com:devs/Gitea-bot.git gitea-bot
  12. $ vim gitea-bot/secrets.py
  13. $ exit
  14. # cp /home/pc/gitea-bot/gitea-bot.service /etc/systemd/system/
  15. # systemctl enable --now gitea-bot
  16. ```
  17. 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.
  18. ## Configuration de Gitea
  19. Les webhooks peuvent être activés par dépôt ou globalement.
  20. Il est aussi possible de pousser des webhooks par défaut sur les dépôts nouvellement créés.
  21. **Activer les hooks de manière globale va déclencher des requêtes pour tous les dépôts, y compris les privés !**
  22. Ç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.
  23. Pour activer les webhooks globalement, aller [dans le panel admin](https://gitea.planet-casio.com/admin/system-hooks).
  24. - Url cible : `http://localhost:5000/`, le service qui écoute les requêtes
  25. - Méthode HTTP : `POST`
  26. - Type de contenu : `application/json`
  27. - Confidentiel : Un token pour authentifier Gitea le cas échéant.
  28. Sélectionner des éléments qui déclencheront des évènements, vérifier que le crochet est actif puis valider.
  29. Les derniers évènements sont affichés sous le formulaire.
  30. ## Traiter de nouveaux évènements
  31. La documentation sur les events est disponible [ici](https://docs.gitea.io/en-us/webhooks/).
  32. Gitea logge les événements récents dans les paramètres du webhook dans le panel admin.
  33. Le script actuel est pas fou, n'hésitez pas à proposer des améliorations ! :)
  34. ## Tester les modifications en local
  35. Lancer le serveur de test avec `flask run` ; les requêtes enregistrées par Gitea peuvent être envoyées avec curl.
  36. ```sh
  37. 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)"
  38. ```
  39. ## Appliquer des modifications
  40. ```
  41. # su pc
  42. $ cd ~/gitea-bot
  43. $ git pull
  44. $ exit
  45. # systemctl restart gitea-bot
  46. ```