Hur agenter interagerar med GitHub API:er och arbetsflöden

Slutförd

AI-agenter ändrar hur utvecklingsarbetet utförs. I stället för att manuellt navigera i lagringsplatser, skriva kod och köra kommandon kan agenter arbeta direkt inom GitHub för att slutföra uppgifter från början till slut.

GitHub stöder agentbaserat arbete genom flera lager. Agenter kan använda GitHub API:er för att läsa lagringsplatsens tillstånd och utföra åtgärder, GitHub Actions arbetsflöden för att köra automatisering i kontrollerade löpare och GitHub agentiska arbetsflöden för att beskriva lagringsplatsuppgifter på högre nivå i Markdown och köra dem med kodningsagenter under starka skyddsräcken. I stället för att kringgå GitHub arbetar agenter med samma system som utvecklare använder, inklusive grenar, pull-begäranden, problem och automatisering.

I den här lektionen får du lära dig:

  • Hur agenter interagerar med GitHub via API:er
  • Hur agenter använder arbetsflöden som körningsmiljöer
  • Så här skapas och hanteras ändringar i lagringsplatsen
  • Hur ett fullständigt agentkörningsflöde ser ut på GitHub

Hur agenter interagerar med GitHub

GitHub agenter, till exempel Copilot molnagent, fungerar inom en definierad lagringsplats och en grenkontext. När du tilldelar en uppgift, till exempel genom ett problem eller en fråga, börjar agenten arbeta på lagringsplatsen.

Agenter kan:

  • Undersöka och förstå lagringsplatsen
  • Planera ändringar som krävs för att slutföra en uppgift
  • Gör kodändringar på en ny gren
  • Öppna en pull-begäran om granskning

Agenter utför dessa åtgärder med hjälp av GitHub plattformsfunktioner som API:er och arbetsflöden.

Dessa åtgärder kan utlösas av lagringsplatshändelser (till exempel push- eller pull-begäran), köras enligt ett schema eller orkestreras via agentiska arbetsflöden som kontinuerligt automatiserar lagringsplatsens uppgifter över tid.

Använda GitHub API:er för att utföra åtgärder

GitHub tillhandahåller API:er som gör det möjligt för system att interagera med lagringsplatser programmatiskt.

API:erna aktiverar åtgärder som:

  • Skapa grenar och kommandon
  • Läsa arkivdata
  • Öppna och uppdatera pull-begäranden
  • Utlösa arbetsflöden

Alla API-begäranden måste autentiseras med hjälp av token, till exempel personliga åtkomsttoken, GitHub apptoken eller GITHUB_TOKEN som anges i arbetsflöden.

Detta säkerställer att varje åtgärd som en agent utför är behörighetskontrollerad och granskningsbar.

Så här skapar agenter ändringar i en lagringsplats

När en agent gör ändringar följer den samma arbetsflöde som en utvecklare. En typisk sekvens ser ut så här:

  1. Välj en basgren
  2. Skapa en ny arbetsgren
  3. Ändra eller skapa filer
  4. Utför ändringar
  5. Öppna en pull-request

Det finns separata API-åtgärder för vart och ett av dessa steg, inklusive arbete med Git-referenser, lagringsplatsinnehåll och pull-begäranden.

Det innebär att agentåtgärderna är helt i linje med GitHub standardutvecklingsmodell.

Använda GitHub Actions som exekveringslager

Agenter utför inte uppgifter direkt på datorn. I stället tillhandahåller GitHub körningsmiljöer via arbetsflöden som drivs av GitHub Actions.

Ett arbetsflöde är en YAML-definierad process som kör jobb som svar på händelser.

Agenter förlitar sig på dessa arbetsflöden för att:

  • Kör tester
  • Verifiera ändringar
  • Utföra automatiseringsuppgifter
  • Distribuera applikationer

Copilot molnagent fungerar i en GitHub Actions-baserad miljö, vilket innebär att arbetsflöden utgör grunden för agentkörning.

Traditionella arbetsflöden jämfört med agentiska arbetsflöden

Traditionella GitHub Actions arbetsflöden är vanligtvis deterministiska och YAML-definierade: du anger uttryckligen varje steg, utlösare och villkor. GitHub agentiska arbetsflöden lägger till en annan modell för lagringsplatsautomatisering. De låter dig beskriva önskat resultat i Markdown, definiera skyddsräcken i frontmatter och köra avsikten med hjälp av en kodningsagent i GitHub Actions. De passar bäst för öppna men avgränsade lagringsplatser, till exempel triage, rapportering, dokumentationsunderhåll, ANALYS av CI-fel och kodförbättring. De ersätter inte CI/CD-pipelines. de utökar dem med vad GitHub beskriver som "Kontinuerlig AI".

Vad gör ett agentiskt arbetsflöde annorlunda

Ett GitHub agentiskt arbetsflöde har två huvuddelar:

  • Frontmatter för konfiguration som utlösare, behörigheter, verktyg och säkra utdata
  • Markdown-instruktioner som beskriver jobbet på naturligt språk

Markdown uttrycker avsikt, medan front matter definierar gränserna. Arbetsflödet kompileras sedan till en låsfil som GitHub Actions kör.

on: schedule: daily
permissions: contents: read issues: read pull-requests: read
safe-outputs: create-issue: title-prefix: "[repo-status] " labels: [report]
tools: github:

Daily Repository Status Report
Create a daily report for maintainers.
Include:
Recent activity (issues, PRs, commits)
Key highlights and risks
Recommended next steps
Keep the report concise and link to relevant issues and pull requests.

I det här exemplet definierar frontmattern (mellan ---) hur och när arbetsflödet körs, vad det kan komma åt och vilka åtgärder som tillåts.

Markdown nedan definierar avsikten med arbetsflödet på naturligt språk. En agent tolkar den här avsikten och skapar strukturerade utdata, som sedan tillämpas genom kontrollerade, granskningsbara steg.

Till skillnad från traditionella GitHub Actions arbetsflöden, som uttryckligen definierar varje steg, fokuserar agentiska arbetsflöden på att beskriva resultat. Agenten bestämmer hur målet ska uppnås inom de begränsningar som definieras i förtexten.

Utlösa och interagera med arbetsflöden

Arbetsflöden kan utlösas på flera sätt:

  • Automatiskt via händelser som push- eller pull request
  • Använda händelsen workflow_dispatch manuellt
  • Programmatiskt via GitHub-API:et

Agenter kan förlita sig på dessa utlösare för att köra uppgifter eller verifiera ändringar när de har gjort uppdateringar på en lagringsplats.

Varje arbetsflödeskörning kör jobb i isolerade miljöer, vilket säkerställer konsekvent och säker körning.

Vad händer under en agentsession

Agentsessioner som observerbara och interaktiva.

Under en session kan du:

  • Övervaka förloppet via en sessionslogg
  • Se vilka åtgärder agenten vidtar
  • Ge feedback eller justera uppgiften
  • Granska den slutliga pull-begäran

Agenten anpassas baserat på feedback och fortsätter att fungera tills uppgiften är klar.

Körningsflöde för end-to-end-agent

En typisk agentinteraktion med GitHub ser ut så här:

  1. En uppgift tilldelas via ett problem, chatt eller CLI
  2. Agenten väljer lagringsplats och basgren
  3. Agenten analyserar kodbasen och planerar ändringar
  4. API-åtgärder används för att skapa grenar och commits
  5. En pull-ansökan skapas
  6. Arbetsflöden körs för att verifiera eller distribuera ändringar
  7. Användaren granskar, godkänner eller begär uppdateringar

Det här flödet säkerställer att all agentaktivitet är:

  • Begränsad till en lagringsplats
  • Styrs av behörigheter
  • Körs via arbetsflöden
  • Synlig och granskningsbar

Viktig insikt

Agenter på GitHub fungerar inte utanför plattformen. De interagerar via API:er, arbetsflöden och lagringsplatsstrukturer som framtvingar behörigheter, tillhandahåller körningsmiljöer och möjliggör samarbete via pull-begäranden.

Därefter får du lära dig hur Model Context Protocol (MCP) utökar dessa funktioner genom att göra det möjligt för agenter att ansluta till ytterligare verktyg och tjänster utöver GitHub.