Confier le tri des issues GitHub à l'IA

Gérer un dépôt GitHub est difficile. Les nouvelles issues arrivent souvent avec des titres vagues ou sans étapes de reproduction. Vous passez votre journée à ajouter des labels, à vérifier les doublons et à demander plus de détails. Ce travail vous prend le temps que vous voudriez consacrer au code.

Une enquête de 2024 a montré que 60 % des mainteneurs de projets open-source ont envisagé d'arrêter. La gestion des issues est un fardeau pesant.

J'ai conçu un bot pour gérer le premier passage. Il s'exécute via GitHub Actions et utilise un modèle de langage. Il effectue les tâches suivantes :

  • Applique des labels en fonction de vos règles.
  • Signale les doublons potentiels.
  • Demande les détails manquants dans les descriptions trop succinctes.

Le bot est un agent, pas un script rigide. Je donne au modèle un ensemble d'outils. Il décide quels outils utiliser et dans quel ordre. Une issue claire peut n'avoir besoin que d'un seul outil. Une issue confuse peut en nécessiter trois.

La première version était trop bavarde. Elle postait des commentaires sur chaque issue. Cela créait du bruit. Le bruit pousse les gens à ignorer les bots.

J'ai corrigé cela avec une seule phrase dans le system prompt. J'ai donné au modèle la permission de ne rien faire. Je lui ai dit que le silence est souvent la meilleure réponse. Cela a changé son comportement plus que n'importe quelle modification de code.

J'ai utilisé LiteLLM pour que le bot fonctionne avec Claude, GPT ou Gemini. Le bot s'appuie sur le function calling pour agir sur les issues.

Les tests en conditions réelles ont révélé trois défis principaux :

  • La sécurité de GitHub empêche les bots de voir les secrets dans les pull requests.
  • L'injection de prompt est un risque lorsque vous soumettez du texte non fiable à un modèle.
  • Les problèmes de permissions et les erreurs d'API peuvent être complexes à déboguer.

J'ai également établi une règle pour le bot : il vérifie uniquement les risques de sécurité. Il ne juge pas la qualité du code. Un bot qui juge le design fait fuir les contributeurs. Laissez ces décisions aux humains.

Si la paperasse des issues vous épuise, cette configuration peut vous aider. Elle élimine le travail répétitif et vous laisse les décisions importantes.

Source : https://dev.to/jescalada/putting-an-ai-agent-in-charge-of-github-issue-triage-3085

Communauté d'apprentissage optionnelle : https://t.me/GyaanSetuAi