Dans le cadre du projet Un bot a Ă©tĂ© prĂ©parĂ© pour GitHub, rĂ©solvant les problĂšmes de l'auto-assistance des utilisateurs de dĂ©pĂŽt. Sur GitHub, on peut trouver des dĂ©pĂŽts dont la seule fonction est de coordonner les personnes via le systĂšme d'Issues. Dans certains d'entre eux, les utilisateurs qui laissent une Issue sont invitĂ©s Ă remplir un formulaire. Ensuite, un modĂ©rateur arrive, vĂ©rifie la validitĂ© du formulaire, et ajoute des Ă©tiquettes en fonction de celles spĂ©cifiĂ©es dans le formulaire (les Ă©tiquettes ne peuvent ĂȘtre ajoutĂ©es que par un utilisateur privilĂ©giĂ© si elles ne sont pas dĂ©finies dans le modĂšle). Un exemple de telle communautĂ© est .
Le modĂ©rateur n'arrive pas immĂ©diatement. Par consĂ©quent, pour vĂ©rifier les formulaires et effectuer des opĂ©rations l'action GitHub prĂ©sentĂ©e dans les nouvelles. Le bot est Ă©crit en Python, mais il doit ĂȘtre exĂ©cutĂ© via node.js, car GitHub n'a que 2 types d'actions - node.js et docker, et pour docker, le mĂȘme conteneur oĂč se trouve node.js doit ĂȘtre d'abord chargĂ©, puis un autre conteneur est chargĂ© dans celui-ci, ce qui prend du temps. Ătant donnĂ© que Python3 et tout le reste dont nous avons besoin sont dĂ©jĂ prĂ©sents dans le conteneur avec node.js, il est rationnel simplement d'y ajouter des dĂ©pendances, Ă©tant donnĂ© qu'elles sont lĂ©gĂšres.
Caractéristiques :
- L'action est gérée à l'aide d'un fichier de configuration YAML et de modÚles Markdown;
- Chaque modÚle Markdown inclut un bloc décrivant les conditions de remplissage correct du formulaire et les actions souhaitées;
- Un fichier de configuration avec des paramÚtres globaux est ajouté;
- Les formulaires se composent de sections. Il existe 2 types de sections :
- Texte libre. L'action peut vérifier que l'utilisateur a pris la peine d'y mettre quelque chose. La cohérence du texte n'est pas vérifiée automatiquement.
- Cases à cocher (checkbox). On peut exiger le remplissage de n cases à cocher, de sorte que 0 {= m1 {= n {= m2 {= le nombre total de cases à cocher dans la section. L'action vérifie que les cases à cocher correspondent à celles du modÚle. Si les cases sont correctement spécifiées, l'action peut ajouter des étiquettes à l'issue en fonction des cases à cocher.
- Si le formulaire est mal rempli, l'action informe l'utilisateur comment le remplir correctement et ajoute une étiquette spéciale.
- Si le formulaire n'est pas corrigé dans un certain délai, l'action peut fermer l'issue. Le ban automatique des utilisateurs, ainsi que la suppression et le déplacement des issues ne sont pas encore implémentés en raison de l'absence d'une API officielle pour les actions nécessaires et des problÚmes de conservation de l'état.
- Si le problÚme est résolu, l'action supprime l'étiquette.
- Les modÚles de réponse pour les actions sont bien sûr personnalisables.
Source : opennet.ru
