Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

GitHub + OpenRouter: release notes klara att klistra in

Rickard Andersson Partner, Nodenordic.se

Releasedagen ska inte innebära en extra timme med ”skriv anteckningarna, formulera om anteckningarna, formatera anteckningarna”. Men på något sätt gör den alltid det, och resultatet blir ofta stressat, inkonsekvent eller saknar den enda ändringen som faktiskt spelar roll.

Produktmarknadsförare märker det när de förväntas kommunicera funktioner med halva sammanhanget. Tekniska ledare märker det när en release går ut med luddiga punktlistor. Och en byråägare som jonglerar flera kund-repon? Ärligt talat, det är då det blir rörigt. Den här automatiseringen för GitHub release notes förvandlar dina två senaste releaser till en korrekt formaterad ändringsloggspost som du kan klistra in direkt.

Nedan ser du exakt vad workflowet gör, vad du behöver för att köra det och hur du anpassar resultatet för dokumentation, GitHub eller interna uppdateringar.

Så här fungerar automatiseringen

Hela n8n-workflowet, från trigger till slutlig output:

n8n Workflow Template: GitHub + OpenRouter: release notes klara att klistra in

Problemet: release notes blir alltid en sista-minuten-paniksatsning

Att skriva release notes ser enkelt ut tills du gör det under tidspress. Du måste hitta senaste releasen, förstå vad som ändrats sedan föregående version, skumma PR-titlar eller commit-meddelanden och sedan översätta det till något en människa faktiskt vill läsa. Under tiden har teamet redan gått vidare till nästa sprint. En missad breaking change eller en otydlig punkt kan skapa supportärenden, förvirrade kunder och interna ”vänta, vad skeppades?”-trådar som drar ut i flera dagar.

Det eskalerar snabbt. Här är var det oftast faller isär.

  • Att jämföra de två senaste GitHub-releaserna manuellt blir snabbt till flik-hoppande och gissningar.
  • Formateringen varierar beroende på vem som skriver, vilket gör att din changelog aldrig känns konsekvent.
  • Viktig kontext faller bort eftersom ingen vill läsa om hela diffen under ett deploy-fönster.
  • Teamet skjuter på publiceringen av anteckningar, så releasen och kommunikationen glider isär.

Lösningen: AI-genererade release notes från dina två senaste releaser

Det här n8n-workflowet lyssnar efter en nypublicerad GitHub Release och gör de irriterande delarna åt dig. Det hämtar detaljer från den senaste releasen (tagg, brödtext, repo-metadata), hämtar föregående release och förbereder en jämförelse så att workflowet sammanfattar faktiska ändringar, inte magkänsla. Sedan kör det ändringsmängden genom chattmodeller via OpenRouter och AI-agentnoder för att producera två saker: en kort sammanfattning av vad som ändrats och en polerad, klistra-in-klar release note som formateras likadant varje gång. Slutresultatet läser som att någon har lagt omsorg på redigering, men du behövde inte göra jobbet.

Workflowet startar när GitHub publicerar en release. Därifrån hämtar det den senaste och föregående versionen, bygger en diff via en HTTP-förfrågan och validerar att det finns en verklig ändringsmängd att sammanfatta. Till sist genererar OpenRouter en strukturerad sammanfattning och en publicerbar release note som du kan lägga in i GitHub, dokumentation eller en changelog.

Det här får du: automatisering vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du skeppar en release i veckan över 3 repositories. Manuellt tar en snabb cykel med ”jämför versioner, skumma ändringar, skriv, formatera, korrekturläs” ofta runt 45 minuter per repo, så du lägger ungefär 2 timmar varje vecka bara på release notes. Med det här workflowet triggas det när releasen publiceras, lägger ett par minuter på att generera sammanfattningen och de formaterade anteckningarna, och du behöver oftast bara granska och klistra in. Det ger ungefär 90 minuter tillbaka de flesta veckor, utan att sänka kvaliteten.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • GitHub för att läsa releaser och taggar
  • OpenRouter för att generera AI-sammanfattningarna
  • OpenRouter API-nyckel (hämta den i din OpenRouter-dashboard)

Kunskapsnivå: Nybörjare. Du kopplar in autentiseringsuppgifter, importerar workflowet och justerar en prompt om du vill ha en annan ton.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

En GitHub Release publiceras. GitHub-triggern bevakar ditt repo och triggar i samma ögonblick som en ny release går live, så du slipper att det hänger på att någon kommer ihåg att köra en checklista.

Workflowet hämtar den senaste och föregående versionen. Det extraherar detaljer från den senaste releasen, hämtar en lista över nyliga releaser och tar sedan fram ”föregående tagg” så att du alltid jämför rätt två versioner.

En diff tas fram och kontrolleras. En HTTP-förfrågan jämför de två release-versionerna, och ett valideringssteg bekräftar att det finns en användbar ändringsmängd. Om releasen är tom eller märkligt formaterad förhindrar detta att AI:n producerar självsäkert nonsens.

OpenRouter skapar sammanfattningen och den slutliga texten. Workflowet kör först en AI-sammanfattning och komponerar sedan en formaterad release note som du kan klistra in i GitHub Releases, dokumentation eller en uppdatering av CHANGELOG.md.

Du kan enkelt ändra skrivstilen så att den matchar er produktton, eller justera formateringen så att den följer din changelog-mall. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera GitHub-triggern

Konfigurera GitHub-webhook-triggern så att den körs varje gång en ny release publiceras.

  1. Lägg till och öppna GitHub Release Watcher.
  2. Ställ in AuthenticationoAuth2.
  3. Välj mål-Owner och Repository för release-händelser.
  4. Säkerställ att listan Events innehåller release.

Inloggningsuppgifter krävs: Anslut era githubOAuth2Api-inloggningsuppgifter i GitHub Release Watcher.

⚠️ Vanlig fallgrop: Om GitHub OAuth-appen inte har åtkomst till det valda repot kommer triggern inte att ta emot release-händelser.

Steg 2: Anslut hämtning av GitHub release-data

Extrahera repo-detaljer från webhook-payloaden och hämta de senaste releaserna för att fastställa tidigare taggar.

  1. Öppna Extract Latest Release Data och bekräfta att JavaScript läser från $input.first().json.body och returnerar owner, repo och currentTag.
  2. Öppna Assign Repo and Owner och låt Include Other Fields vara aktiverat.
  3. I Assign Repo and Owner ställer ni in tilldelningarna:
    name till =owner med value ={{ $json.owner }}
    name till =repo med value ={{ $json.repo }}
  4. Öppna Retrieve Recent Releases och ställ in Resourcerelease och OperationgetAll.
  5. Ställ in Limit2 och sätt Owner till ={{ $json.owner }} och Repository till ={{ $json.repo }}.

Inloggningsuppgifter krävs: Anslut era githubOAuth2Api-inloggningsuppgifter i Retrieve Recent Releases.

Steg 3: Konfigurera tagg-derivering och versionsjämförelse

Beräkna taggen för föregående release och jämför versioner med GitHubs compare-API.

  1. Öppna Derive Previous Tags och behåll den befintliga JavaScript-koden som väljer publicerade releaser och returnerar currentTag och previousTag.
  2. Öppna Compare Release Versions och ställ in URL=https://api.github.com/repos/{{ $json.owner }}/{{ $json.repo }}/compare/{{ $json.previousTag }}...{{ $json.currentTag }}.
  3. Aktivera Send Headers och sätt headern Accept till application/vnd.github+json.
  4. Ställ in AuthenticationpredefinedCredentialType och Credential TypegithubOAuth2Api.
  5. Öppna Validate Change Set och behåll JavaScript-koden som förenklar commits och filer, samtidigt som den hämtar taggar från Derive Previous Tags.

Inloggningsuppgifter krävs: Anslut era githubOAuth2Api-inloggningsuppgifter i Compare Release Versions.

Tips: Derive Previous Tags kastar ett fel om det inte finns någon tidigare release. Säkerställ att repot har minst två releaser innan ni testar.

Steg 4: Konfigurera AI-sammanfattning och skapande av release notes

Använd två AI-agenter för att sammanfatta ändringar och generera välformaterade release notes.

  1. Öppna Summarize Release Changes och behåll Prompt Type inställt på define med den befintliga prompttexten.
  2. Bekräfta att prompten i Summarize Release Changes refererar till {{ $json.previousTag }}, {{ $json.currentTag }} och {{ JSON.stringify($json) }}.
  3. Öppna Compose Release Notes och behåll Prompt Type inställt på define med de befintliga formateringsreglerna.
  4. Bekräfta att prompten i Compose Release Notes använder {{ JSON.stringify($json) }} och refererar till {{ $('Derive Previous Tags').item.json.currentTag }} för titeln.
  5. Verifiera att Primary Chat Model är ansluten som språkmodell för Summarize Release Changes, och att Secondary Chat Model är ansluten som språkmodell för Compose Release Notes.

Inloggningsuppgifter krävs: Anslut era openRouterApi-inloggningsuppgifter i Secondary Chat Model.

⚠️ Vanlig fallgrop: Summarize Release Changes lagrar inte inloggningsuppgifter direkt. Lägg till OpenRouter-inloggningsuppgifter i Primary Chat Model för att AI-anropet ska fungera.

Steg 5: Dokumentera workflow-kontexten

Se till att dokumentation och workflow-kontext är lättillgänglig för förvaltare.

  1. Granska Flowpast Branding och behåll innehållet som en referensbanner för workflowet.

Steg 6: Testa och aktivera ert workflow

Kör ett komplett test för att säkerställa att release-detektering, jämförelse och AI-utdata fungerar hela vägen.

  1. I n8n klickar ni på Execute Workflow för att testa med en payload från en nylig GitHub release-händelse.
  2. Verifiera att Compare Release Versions returnerar commit- och fildata, och att Validate Change Set ger ut hasChanges och förenklade listor.
  3. Bekräfta att Summarize Release Changes ger ut Markdown-sektioner och att Compose Release Notes returnerar slutligt formaterade release notes.
  4. När testet lyckas växlar ni workflowet till Active för att aktivera användning i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • GitHub OAuth-autentiseringsuppgifter kan löpa ut eller sakna repo-åtkomst. Om noder börjar fallera, kontrollera GitHub-uppgiften i n8n och bekräfta att token har behörighet att läsa releaser.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er varumärkeston tidigt, annars kommer du att redigera output i all evighet.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för GitHub release notes?

Cirka 20 minuter om dina GitHub- och OpenRouter-uppgifter är klara.

Behöver jag kunna koda för att automatisera GitHub release notes?

Nej. Du väljer främst autentiseringsuppgifter och justerar ett par fält. Workflowets kodnoder är redan förkonfigurerade i mallen.

Är n8n gratis att använda för det här workflowet för GitHub release notes?

Ja. n8n har ett gratis alternativ för self-hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna med OpenRouter API-användning, som beror på vilken modell du väljer.

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa den här automatiseringen för GitHub release notes till ett striktare changelog-format?

Ja, och det är det bästa stället att lägga fem minuter. Uppdatera instruktionerna i AI-agentnoderna ”Summarize Release Changes” och ”Compose Release Notes” så att de matchar dina rubriker (Added/Changed/Fixed/Breaking), längd och ton. Du kan också justera formateringen i steget ”Edit Fields (Set)” så att slutresultatet inkluderar versionsnummer, releasedatum eller länkar. Vill du ha djupare analys kan du ändra jämförelselogiken så att PR-titlar eller labels ingår i prompt-konteksten.

Varför misslyckas min GitHub-anslutning i det här workflowet?

Oftast beror det på en utgången eller återkallad GitHub OAuth-token i n8n. Återanslut GitHub-uppgiften och bekräfta sedan att workflowet pekar på rätt owner/repo i steget ”Assign Repo and Owner”. Om repot ligger i en organisation kan saknad org-åtkomst också blockera läsning av releaser. Rate limits är mer sällsynta här, men de kan dyka upp om du triggar många releaser över många repositories.

Hur många releaser kan den här automatiseringen för GitHub release notes hantera?

I praktiken kan den hantera så många som dina körgränser i n8n och GitHub API-gränser tillåter.

Är den här automatiseringen för GitHub release notes bättre än att använda Zapier eller Make?

Ofta, ja, särskilt om du bryr dig om kontroll och konsekvens. Det här workflowet använder jämförelselogik, validering och AI-promptning i flera steg, vilket går att göra i Zapier/Make men blir snabbt klumpigt (och kan bli dyrt när du lägger till fler steg). n8n ger dig också möjligheten att köra self-hosted, vilket är praktiskt när releasevolymen spikar eller när du kör automationer över många repositories. Men om du bara behöver ”ny release → skicka meddelande” är Zapier eller Make enklare. Prata med en automationsexpert om du vill ha en snabb rekommendation baserat på din volym och ditt team.

När det här väl rullar slutar release notes vara ett litet skrivprojekt och blir en snabb granskning. Sätt upp det en gång och skeppa med betydligt mer trygghet.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal