SourceAnt

Issue- & PR-Triage

Das Repo Manager Plugin automatisiert die Triage in Ihrem Repository. Es überwacht PR- und Issue-Ereignisse und führt dann Deduplizierungsprüfungen durch und wendet automatisch Labels an, damit Ihr Backlog dedupliziert und weitergeleitet bleibt, ohne manuelles Sortieren.

Funktionen

  • PR-Triage. Wenn ein Pull Request geöffnet oder erneut geöffnet wird, vergleicht SourceAnt ihn mithilfe eines LLM mit anderen offenen PRs und postet einen Kommentar, wenn potenzielle Duplikate gefunden werden.
  • Issue-Triage. Dieselbe Duplikaterkennung für Issues, die Maintainern hilft, doppelte Meldungen frühzeitig zu erkennen.
  • Automatische Kennzeichnung. Analysiert den Titel, den Text und den Diff neuer PRs/Issues und wendet dann die relevantesten Labels aus dem vorhandenen Label-Set Ihres Repositorys an.

So funktioniert es

Wenn ein pull_request.opened, pull_request.reopened, issues.openedlautet, oder issues.reopened Ereignis empfangen wird, führt das Plugin Folgendes aus:

  1. Ruft andere offene PRs oder Issues aus dem Repository ab.
  2. Sendet sie zusammen mit dem neuen Element zum Vergleich an das konfigurierte LLM.
  3. Postet einen idempotenten Kommentar, wenn Duplikate erkannt werden (aktualisiert denselben Kommentar bei nachfolgenden Ausführungen).
  4. Ruft die Labels des Repositorys ab, bittet das LLM, geeignete vorzuschlagen, validiert sie und wendet sie an.

Konfiguration

Das Plugin ist standardmäßig deaktiviert. Aktivieren Sie es global über Umgebungsvariablen oder pro Repository mithilfe des Config-Modells.

Umgebungsvariablen

Variable Standard Beschreibung
REPO_MANAGER_ENABLED false Hauptschalter: Repo Manager Plugin global aktivieren
REPO_MANAGER_PR_TRIAGE true PR-Deduplizierungsprüfungen aktivieren
REPO_MANAGER_ISSUE_TRIAGE true Issue-Deduplizierungsprüfungen aktivieren
REPO_MANAGER_AUTO_LABEL true Automatische Kennzeichnung für PRs und Issues aktivieren

Konfiguration pro Repository

Einstellungen können pro Repository mithilfe des Config Modells überschrieben werden. Die Konfiguration auf Repository-Ebene hat Vorrang vor Umgebungsvariablen.

# 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")
Konfigurationsschlüssel Typ Beschreibung
repo_manager.enabled bool Für dieses Repository aktivieren/deaktivieren
repo_manager.pr_triage_enabled bool PR-Deduplizierung aktivieren/deaktivieren
repo_manager.issue_triage_enabled bool Issue-Deduplizierung aktivieren/deaktivieren
repo_manager.auto_label_enabled bool Automatische Kennzeichnung aktivieren/deaktivieren

Reihenfolge der Konfigurationsauflösung

Einstellungen werden nach Spezifität aufgelöst:

  1. Repository-Konfiguration (Config-Modell-Eintrag für das spezifische Repository)
  2. Umgebungsvariable (globaler Standard)
  3. Plugin-Standard (deaktiviert)

GitHub App Berechtigungen

Der Repo Manager erfordert die folgenden Berechtigungen für Ihre GitHub App (zusätzlich zu denen, die für Code-Überprüfungen benötigt werden):

  • Issues: Lesen & Schreiben (zum Auflisten von Issues, Posten von Kommentaren, Anwenden von Labels)
  • Pull Requests: Lesen & Schreiben (bereits erforderlich für Code-Reviews)

Duplikaterkennung

Bei der Prüfung auf Duplikate vergleicht das Plugin den Titel und den Text des neuen Elements mit bis zu 50 bestehenden offenen Elementen. Das LLM analysiert die semantische Ähnlichkeit (nicht nur den Titelabgleich), sodass Duplikate auch bei abweichender Formulierung erkannt werden.

Duplikat-Kommentare sind idempotent: Wenn bereits ein Dedup-Kommentar zum PR/Issue existiert, wird dieser aktualisiert, statt einen neuen zu erstellen.

Automatische Kennzeichnung

Die Funktion zur automatischen Kennzeichnung schlägt nur Labels vor, die bereits in Ihrem Repository existieren. Es werden niemals neue Labels erstellt. Bei PRs wird zudem der Inhalt des Diffs berücksichtigt, um genauere Vorschläge zu machen.

Der Label-Abgleich ist unabhängig von der Groß-/Kleinschreibung: Wenn Ihr Repository ein Label namens Bug enthält und das LLM bugvorschlägt, wird es korrekt angewendet Bug.

Als Nächstes: Agent-Aufgabenzuweisung

Triage ist die erste Hälfte einer Schleife, die wir schließen. Die zweite Hälfte ist die Agent-Aufgabenzuweisung: Sobald ein Issue triagiert, dedupliziert und gekennzeichnet ist, übergibt SourceAnt es als präzise abgegrenzte Aufgabe an einen Coding-Agent, zusammen mit dem relevanten Ausschnitt des Wissensgraphen, sodass die Arbeit mit den Entscheidungen und Einschränkungen beginnt, die für diesen Code gelten.

Status: in Entwicklung, noch nicht veröffentlicht. Folgen Sie das Repository für den Fortschritt. Triage und automatische Kennzeichnung, wie auf dieser Seite beschrieben, sind heute verfügbar.