AI de leiding geven over GitHub issue triage

Het beheren van een GitHub-repo is lastig. Nieuwe issues komen vaak binnen met vage titels of zonder stappen om het probleem te reproduceren. Je bent de hele dag bezig met labelen, controleren op duplicaten en vragen om meer details. Dit werk vreet de tijd op die je eigenlijk aan coderen wilt besteden.

Een enquête uit 2024 toonde aan dat 60% van de open-source maintainers erover heeft nagedacht om te stoppen. Het beheren van issues is een zware last.

Ik heb een bot gebouwd om de eerste selectie te doen. Deze draait in GitHub Actions en maakt gebruik van een taalmodel. De bot voert de volgende taken uit:

  • Brengt labels aan op basis van jouw regels.
  • Markeert potentiële duplicaten.
  • Vraagt om ontbrekende details bij onvolledige beschrijvingen.

De bot is een agent, geen rigide script. Ik geef het model een set tools. Het model beslist welke tools het gebruikt en in welke volgorde. Een heldere issue heeft misschien één tool nodig. Een rommelige issue heeft er misschien drie nodig.

De eerste versie was te praatziek. De bot plaatste op elke issue een reactie. Dit zorgde voor ruis. Ruis zorgt ervoor dat mensen bots negeren.

Ik heb dit opgelost met één zin in de system prompt. Ik gaf het model toestemming om niets te doen. Ik vertelde het dat stilte vaak het beste antwoord is. Dit veranderde het gedrag meer dan welke code-wijziging dan ook.

Ik heb LiteLLM gebruikt, zodat de bot werkt met Claude, GPT of Gemini. De bot vertrouwt op function calling om actie te ondernemen op issues.

Testen in de praktijk bracht drie belangrijke uitdagingen aan het licht:

  • GitHub-beveiliging voorkomt dat bots secrets in pull requests kunnen zien.
  • Prompt injection is een risico wanneer je onbetrouwbare tekst in een model voert.
  • Rechten en API-fouten kunnen verwarrend zijn om te debuggen.

Ik heb ook een regel voor de bot ingesteld: hij controleert alleen op beveiligingsrisico's. Hij beoordeelt de codekwaliteit niet. Een bot die het ontwerp beoordeelt, jaagt bijdragers weg. Laat die beslissingen over aan mensen.

Als de administratieve rompslomp rondom issues je uitput, kan deze opzet helpen. Het neemt het repetitieve werk over en laat de echte beslissingen aan jou over.

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

Optionele leercommunity: https://t.me/GyaanSetuAi