Release notes känns alltid “snabba” tills du sitter med en hög commits, halvfärdiga Jira-ärenden och ett Slack-meddelande som bara säger: “Kan du skicka en uppdatering till ledningen?” Det är den typen av jobb som stjäl hela eftermiddagen.
Produktchefer märker det när intressenter vill ha en tydlig berättelse. Tekniska ledare märker det när teamet redan är på väg in i nästa sprint. Och driver du en liten byrå som levererar kundarbete varje vecka, känner du av det hela tiden. Den här automatiseringen för GitHub Jira release förvandlar rå ändringsdata till ett välskrivet mejl utan panik i sista minuten.
Nedan ser du exakt vad workflowet gör, vad du behöver för att köra det och hur mycket tid du realistiskt kan vinna tillbaka vid varje release.
Så fungerar den här automatiseringen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: GitHub + Jira: genomarbetade release notes via mejl
flowchart LR
subgraph sg0["Github Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/github.dark.svg' width='40' height='40' /></div><br/>Github Trigger"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code"]
n2@{ icon: "mdi:robot", form: "rounded", label: "Basic LLM Chain", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n4@{ icon: "mdi:message-outline", form: "rounded", label: "Send email", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/jira.svg' width='40' height='40' /></div><br/>Get an issue"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code2"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code3"]
n9@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n1 --> n5
n1 --> n7
n6 --> n7
n8 --> n2
n7 --> n8
n5 --> n6
n0 --> n1
n2 --> n4
n3 -.-> n2
n9 -.-> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n2,n9 ai
class n3 aiModel
class n1,n6,n8 code
classDef customIcon fill:none,stroke:none
class n0,n1,n5,n6,n7,n8 customIcon
Problemet: release notes blir alltid ett sista-minuten-jobb
Du skeppar releasen, deployen ser bra ut och sen kommer delen ingen bokade tid för: att förklara vad som ändrades. Commit-meddelanden är inkonsekventa, Jira-ärenden ligger utspridda över epics och “vad som ingår” beror på vem du frågar. Så du copy-pastar in i ett dokument, försöker översätta tekniska ändringar till begriplig svenska och oroar dig ändå för att du missat något viktigt. Värst är den mentala belastningen. Du försöker återskapa en berättelse i efterhand, när du egentligen borde gå vidare.
Det blir snabbt mycket. Här är var det brister.
- Någon måste manuellt skanna GitHub-commits och PR:er för att hitta det som är värt att nämna, och det kan lätt ta en timme vid en stressig release.
- Jira-detaljer dyker inte upp av sig själva i dina anteckningar, så “vad” och “varför” försvinner om du inte öppnar ärenden ett och ett.
- Intressenter får inkonsekventa uppdateringar eftersom ton och struktur beror på vem som skrev mejlet den dagen.
- Små misstag smyger sig in: fel ärendelänk, en fix som saknas eller en feature som levererades bakom en flagga men ändå råkar bli annonserad.
Lösningen: förvandla commits + ärenden till ett mejl automatiskt
Det här workflowet bevakar ditt GitHub-repo efter nya pushar, hämtar commit-meddelanden och letar efter Jira-nycklar (som PROJ-123) i dem. När det hittar en matchning hämtar det motsvarande Jira-ärende så att automatiseringen får rätt kontext: sammanfattning, status, typ och de fält ditt team faktiskt använder. Sedan slår det ihop commit- och Jira-data till en strukturerad lista och skickar den till en AI-modell (Google Gemini i standardmallen) för att skriva release notes som låter mänskliga. Till sist skickar n8n ett snyggt HTML-mejl till valda intressenter, så uppdateringen landar i inkorgen direkt efter att ändringen nått repot.
Workflowet startar med en GitHub push-trigger. Därefter berikar det vad som hände i koden med vad Jira-ärendet säger att det betydde. Sista steget är enkelt: generera berättelsen och mejla ut den.
Det du får: automatisering vs. resultat
| Det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så kan det se ut
Säg att du levererar en gång i veckan och att varje release innehåller cirka 12 commits kopplade till Jira-arbete. Manuellt kanske du lägger 5 minuter per ärende på att öppna Jira, tolka ändringar och skriva en tydlig punkt, plus ytterligare 30 minuter på att putsa mejlet — alltså ungefär 1,5 timme per release. Med det här workflowet triggas det direkt efter pushen, och AI-utkastet plus formateringen blir normalt klart på några minuter. Du skummar fortfarande igenom det, men det är närmare 10 minuter än en timme.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- GitHub för att trigga på pushar till repo
- Jira (Software Cloud) för att hämta ärendekontext
- Google Gemini API-nyckel (hämta den från Google AI Studio / Google Cloud)
- SMTP-e-postleverantör för att skicka mejl till intressenter
Kunskapsnivå: Medel. Du kopplar konton, justerar en regex för Jira-nycklar vid behov och redigerar en AI-prompt så att den matchar din ton.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så funkar det
En push till GitHub sätter igång allt. Workflowet lyssnar på ett valt repository, så nya commits startar processen automatiskt.
Commit-meddelanden skannas efter Jira-nycklar. Ett litet kodsteg extraherar identifierare som “PROJ-123” (med ett reguljärt uttryck) och skickar sedan nycklarna vidare, så att automatiseringen vet vilka arbetsobjekt som ingick i releasen.
Jira-ärenden hämtas och normaliseras. n8n hämtar varje ärende och mappar fälten du faktiskt bryr dig om till en konsekvent struktur, och slår sedan ihop det med commit-datan så att inget ligger utspritt i separata system.
AI skriver release notes och mejlet skickas. Den sammansatta listan matas in i en Gemini-driven LLM-kedja som producerar formaterad HTML, och därefter skickar n8n de färdiga release notes via din SMTP-server.
Du kan enkelt justera tonen i prompten och vilka Jira-fält som ska ingå för att matcha din målgrupp. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera triggern för repository push
Konfigurera GitHub-triggern så att arbetsflödet körs när ett repository tar emot nya commits.
- Lägg till noden Repository Push Trigger och välj mål-repository i Repository.
- Låt Events vara inställt på
pushför att trigga vid nya commits. - Säkerställ att Options → Insecure SSL är inställt på
false. - Inloggningsuppgifter krävs: Anslut era GitHub-inloggningsuppgifter i Repository Push Trigger.
Steg 2: anslut Jira och extrahera ärendedata
Extrahera JIRA-ärendenycklar från commit-meddelanden och hämta deras detaljer.
- I Extract Commit Keys, behåll den förvalda JavaScript Code för att tolka commit-meddelanden och returnera
jira_id. - I Retrieve Jira Issue, ställ in Operation till
getoch Issue Key till={{ $json.jira_id }}. - Inloggningsuppgifter krävs: Anslut era Jira-inloggningsuppgifter i Retrieve Jira Issue.
- I Map Jira Fields, behåll den förvalda JavaScript Code för att mappa
jira_id,jira_summaryochjira_description.
Steg 3: slå ihop commit- och Jira-data
Kombinera commit-metadata med Jira-ärendedetaljer och bygg ihop en enda lista för AI-prompten.
- I Combine Commit & Jira, ställ in Mode till
combineoch Combine By tillcombineByPosition. - Bekräfta att Map Jira Fields är kopplad till Combine Commit & Jira så att varje commit matchas med sitt Jira-ärende.
- I Assemble Issue List, behåll den förvalda JavaScript Code som sammanställer
itemstill en array.
Steg 4: sätt upp AI-generering av release notes
Konfigurera LLM-kedjan för att generera strukturerade release notes i HTML.
- I Gemini Chat Model, ställ in Model Name till
models/gemini-2.5-pro. - Inloggningsuppgifter krävs: Anslut era Google Gemini-inloggningsuppgifter i Gemini Chat Model (används av Compose Release Notes).
- I Compose Release Notes, behåll promptinnehållet i Messages och säkerställ att referensen till indata är
{{ JSON.stringify($json.items, null, 2) }}. - Säkerställ att Compose Release Notes har Has Output Parser aktiverat och är kopplad till Parse HTML Output.
- I Parse HTML Output, behåll Input Schema inställt på det angivna JSON-schemat med
releasenotesom en sträng.
Steg 5: konfigurera e-postleverans
Skicka den AI-genererade HTML-release noten till era mottagare.
- I Dispatch Release Email, ställ in HTML till
={{ $json.output.releasenote }}. - Ställ in Subject till
Your_company_name | Location, Country Ni får detta mejl eftersom ni prenumererar på release-notifieringar.. - Ställ in To Email till
[YOUR_EMAIL]och From Email till[YOUR_EMAIL]. - Inloggningsuppgifter krävs: Anslut era SMTP-/e-postinloggningsuppgifter i Dispatch Release Email.
Steg 6: testa och aktivera ert arbetsflöde
Verifiera att arbetsflödet skapar och skickar release notes korrekt innan ni aktiverar det i produktion.
- Använd Repository Push Trigger för att köra ett manuellt test genom att pusha en commit som innehåller en Jira-nyckel som
ABC-123. - Bekräfta att Retrieve Jira Issue returnerar Jira-ärendedata och att Combine Commit & Jira slår ihop commit- och Jira-fält.
- Kontrollera att Compose Release Notes skapar en release note i HTML och att Dispatch Release Email skickar meddelandet.
- När det fungerar, växla arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- GitHub-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera GitHub-nodens credential-status i n8n och bekräfta repo-webhook/trigger-åtkomst först.
- Om du använder Wait-noder eller extern rendering varierar processtider. Öka väntetiden om nedströmsnoder fallerar på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera utdata för alltid.
Vanliga frågor
Cirka 30 minuter om dina uppgifter för GitHub, Jira och e-post redan är klara.
Ingen kodning krävs för grunduppsättningen. Du kan eventuellt justera en liten regex om ditt Jira-nyckelformat är ovanligt.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod i n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för Google Gemini API, som ofta är låga för korta sammanfattningar men beror på användning.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och kör n8n bra. Egen drift ger obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det bör du. Uppdatera prompten i LLM-kedjan “Compose Release Notes” så att den matchar din struktur (övergripande sammanfattning, kundvänliga punkter, interna tekniska anteckningar). Du kan också ändra vad som ingår i ärendelistan genom att justera steget “Map Jira Fields”, till exempel lägga till komponenter, prioritet eller ett anpassat fält för “kundpåverkan”.
Oftast handlar det om inloggning eller behörigheter. Återanslut GitHub-credential i n8n, bekräfta att den har åtkomst till repot du valt och säkerställ att triggern pekar på rätt ägare/repository. Om det fungerar en gång och sedan slutar, kontrollera om din GitHub-token löpt ut eller roterats. Det är också värt att kontrollera formateringen av commit-meddelanden, eftersom workflowet kan se ut att “inte göra något” om inga Jira-nycklar hittas, trots att det faktiskt kördes som det ska.
Tillräckligt för normala releaser. I n8n Cloud beror gränsen främst på körvolymen i din plan, medan egen drift begränsas av din server. I praktiken processar team ofta dussintals Jira-kopplade commits i en körning utan problem, men väldigt stora releaser kan kräva batchning och noggranna inställningar för API rate limits.
Ofta ja, eftersom du kan tolka commit-meddelanden, slå ihop listor och forma data utan att betala extra för varje liten förgrening. Möjligheten till egen drift är också viktig om du har många pushar och inte vill räkna tasks. Zapier eller Make kan fortfarande fungera bra för ett lättviktigt “skicka ett mejl vid release”-flöde, men AI-genererade anteckningar plus Jira-berikning blir snabbt komplext. Om du väljer mellan verktyg handlar det oftast om hur noga du är med formatering och logik. Prata med en automationsexpert om du vill ha en snabb rekommendation.
Release notes behöver inte vara en återkommande “kan någon snälla ta det här”-uppgift. Sätt upp det en gång, håll dina uppdateringar konsekventa och ta tillbaka tiden till arbete som faktiskt driver produkten framåt.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.