SourceAnt

Tri des tickets et des PR

Le plugin Repo Manager automatise le tri sur votre dépôt. Il écoute les événements de PR et de tickets, puis effectue des vérifications de déduplication et applique automatiquement des étiquettes, afin que votre backlog reste dédupliqué et orienté sans tri manuel.

Fonctionnalités

  • Tri des PR. Lorsqu'une pull request est ouverte ou réouverte, SourceAnt la compare à d'autres PR ouvertes à l'aide d'un LLM et publie un commentaire si des doublons potentiels sont détectés.
  • Tri des tickets. Détection de déduplication identique pour les tickets, aidant les mainteneurs à repérer tôt les rapports en double.
  • Étiquetage automatique. Analyse le titre, le corps et le diff des nouvelles PR/tickets, puis applique les étiquettes les plus pertinentes parmi l'ensemble des étiquettes existantes de votre dépôt.

How It Works

Lorsqu'un événement pull_request.opened, pull_request.reopened, issues.opened, ou issues.reopened est reçu, le plugin :

  1. Récupère les autres PR ou tickets ouverts du dépôt.
  2. Les envoie au LLM configuré avec le nouvel élément pour comparaison.
  3. Publie un commentaire idempotent si des doublons sont détectés (met à jour le même commentaire lors des exécutions suivantes).
  4. Récupère les étiquettes du dépôt, demande au LLM d'en suggérer des appropriées, les valide et les applique.

Configuration

Le plugin est désactivé par défaut. Activez-le globalement via des variables d'environnement, ou par dépôt à l'aide du modèle Config.

Variables d'environnement

Variable Valeur par défaut Description
REPO_MANAGER_ENABLED false Interrupteur principal : activer globalement le plugin repo manager
REPO_MANAGER_PR_TRIAGE true Activer les vérifications de déduplication des PR
REPO_MANAGER_ISSUE_TRIAGE true Activer les vérifications de déduplication des tickets
REPO_MANAGER_AUTO_LABEL true Activer l'étiquetage automatique pour les PR et les tickets

Configuration par dépôt

Les paramètres peuvent être remplacés par dépôt à l'aide du modèle Config modèle. La configuration au niveau du dépôt est prioritaire sur les variables d'environnement.

# Example: enable repo manager for a specific repo
Config.set_value("repository", "owner/repo", "repo_manager.enabled", True, "bool")

# Disable PR triage for a specific repo
Config.set_value("repository", "owner/repo", "repo_manager.pr_triage_enabled", False, "bool")
Clé de configuration Type Description
repo_manager.enabled bool Activer/désactiver pour ce dépôt
repo_manager.pr_triage_enabled bool Activer/désactiver la déduplication des PR
repo_manager.issue_triage_enabled bool Activer/désactiver la déduplication des tickets
repo_manager.auto_label_enabled bool Activer/désactiver l'étiquetage automatique

Ordre de résolution de la configuration

Les paramètres sont résolus par ordre de spécificité :

  1. Configuration du dépôt (entrée du modèle Config pour le dépôt concerné)
  2. Variable d'environnement (valeur par défaut globale)
  3. Valeur par défaut du plugin (désactivé)

Autorisations de l'application GitHub

Le repo manager requiert les autorisations suivantes sur votre application GitHub (en plus de celles nécessaires aux revues de code) :

  • Issues: Lecture et écriture (pour lister les tickets, publier des commentaires, appliquer des étiquettes)
  • Pull requests: Lecture et écriture (déjà requis pour les revues de code)

Détection des doublons

Lors de la vérification des doublons, le plugin compare le titre et le corps du nouvel élément à jusqu'à 50 éléments ouverts existants. Le LLM analyse la similarité sémantique (et pas seulement la correspondance des titres), ce qui permet de détecter les doublons même lorsqu'ils sont formulés différemment.

Les commentaires de doublons sont idempotents : si un commentaire de déduplication existe déjà sur la PR/le ticket, il est mis à jour plutôt que d'en créer un nouveau.

Étiquetage automatique

La fonctionnalité d'étiquetage automatique ne suggère que des étiquettes qui existent déjà dans votre dépôt. Elle ne créera jamais de nouvelles étiquettes. Pour les PR, elle tient également compte du contenu du diff afin de formuler des suggestions plus précises.

La correspondance des étiquettes est insensible à la casse : si votre dépôt possède une étiquette appelée Bug et que le LLM suggère bugil l'appliquera correctement Bug.

Suivant : Affectation des tâches aux agents

Le tri constitue la première moitié d'une boucle que nous refermons. La seconde moitié est l'affectation des tâches aux agents: une fois un ticket trié, dédoublonné et étiqueté, SourceAnt le confie à un agent de codage sous forme de tâche bien délimitée, accompagnée de la partie pertinente du graphe de connaissances, afin que le travail démarre avec les décisions et contraintes applicables à ce code.

Statut : en développement, pas encore déployé. Suivez le dépôt pour suivre l'avancement. Le tri et l'étiquetage automatique décrits sur cette page sont disponibles dès aujourd'hui.