Kodgranskning börjar ofta med en liten distraktion. ”Jag ska bara kolla den där pushen.” Sedan blir det GitHub-flikar, scrollande i diffar, saknad kontext och en granskning som antingen hastas igenom eller blir försenad.
Den här GitHub Gmail reviews-automationen slår hårdast mot engineering leads, men produktdrivna grundare och upptagna byråägare känner av det också. Du får ett strukturerat och konsekvent granskningsmejl efter varje push, med risker och noteringar tydligt markerade så att du kan agera snabbt.
Nedan ser du hur flödet körs, vad mejlet innehåller och hur du justerar det så att AI:n kontrollerar exakt de standarder som ditt team bryr sig om.
Så fungerar automationen
Hela n8n-workflowet, från trigger till slutligt resultat:
n8n Workflow Template: GitHub + Gmail: kodgranskningar till din inkorg
flowchart LR
subgraph sg0["GitHub Event Listener 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 Event Listener"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Payload Mapper", pos: "b", h: 48 }
n2["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>External API Call"]
n3["<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/>Patch Formatter Script"]
n4@{ icon: "mdi:robot", form: "rounded", label: "Automated Review Agent", 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/code.svg' width='40' height='40' /></div><br/>Email Content Builder"]
n6@{ icon: "mdi:message-outline", form: "rounded", label: "Send Gmail Notice", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Finalize Process", pos: "b", h: 48 }
n8@{ icon: "mdi:brain", form: "rounded", label: "Groq LLM Connector", pos: "b", h: 48 }
n9@{ icon: "mdi:memory", form: "rounded", label: "Session Memory Buffer", pos: "b", h: 48 }
n3 --> n4
n6 --> n7
n1 --> n2
n4 --> n5
n2 --> n3
n5 --> n6
n9 -.-> n4
n0 --> n1
n8 -.-> n4
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 n4 ai
class n8 aiModel
class n9 ai
class n2 api
class n3,n5 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n5 customIcon
Problemet: kodgranskning blir inkonsekvent (snabbt)
De flesta team hoppar inte över kodgranskning för att de inte bryr sig. De hoppar över den för att den är irriterande att komma igång med. En push landar, du är mitt i något annat och du måste växla kontext till GitHub, leta upp diffen och förstå vad som är viktigt. Om du väl granskar blir det ofta ojämnt: en person tittar på säkerhet, en annan bara på stil, och nästa person godkänner bara för att komma vidare. På en vecka blir den inkonsekvensen i det tysta till buggar, ”varför skeppade vi det här?”-ögonblick och långsammare onboarding för alla som är nya.
Det bygger upp snabbt. Här är var det faller isär i riktiga team.
- Granskare tappar 10 minuter bara på att få kontext, innan de ens läser en enda kodrad.
- Diffar skummas igenom, så subtila säkerhetsproblem och edge cases slinker förbi.
- Kvaliteten på feedbacken varierar beroende på vem som är tillgänglig, vilket gör att standarder känns valfria.
- Viktiga noteringar fastnar i GitHub-kommentarer, inte där folk faktiskt ser dem.
Lösningen: ett AI-granskningsmejl efter varje push
Det här workflowet bevakar ditt GitHub-repo efter push-händelser. När någon pushar kod hämtar det automatiskt commit-detaljer och hela diffen via GitHub API, och formaterar ändringarna till en läsbar HTML-”minirapport”. Därefter granskar en AI-agent diffen med en strukturerad prompt som letar efter buggar, stilproblem, grammatik och säkerhetsrisker. AI-resultatet formateras också som HTML, så det går snabbt att skumma. Till sist skickar n8n den sammanslagna rapporten till Gmail, så granskningen dyker upp där du redan är hela dagen: i inkorgen.
Workflowet startar vid en GitHub-push. Det hämtar diffen, förbereder en korrekt formaterad HTML-sammanfattning och ber sedan modellen att granska ändringarna utifrån konsekventa kriterier. Gmail levererar ett mejl per push, så du kan läsa, vidarebefordra eller svara utan att öppna en ny flik.
Vad du får: automation vs. resultat
| Det här automatiserar workflowet | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att ditt repo får cirka 10 pushar per dag i ett litet team. Om varje push tar ungefär 10 minuter för att öppna GitHub, hitta diffen och lämna hyfsade noteringar, blir det runt 100 minuter per dag. Med det här workflowet är ”jobbet” att läsa ett Gmail-meddelande per push, vilket ofta är närmare 2 minuter styck, alltså cirka 20 minuter totalt. Det är ungefär en timme tillbaka varje dag, och granskningar blir fortfarande av.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- GitHub för repoåtkomst och commit-diffar
- Gmail för att skicka granskningsmejl automatiskt
- Groq API-nyckel (hämta den från GroqCloud)
Svårighetsnivå: Medel. Du kopplar OAuth-uppgifter och justerar en prompt, men du bygger ingen app.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En GitHub-push triggar körningen. Workflowet lyssnar på push-händelser i ditt valda repo och plockar ut det viktigaste som repnamn, commit-SHA och filändringar.
Diffen hämtas och görs mer lättläst. n8n anropar GitHub API för att hämta commit-diffen, och ett formatteringsscript gör om den till läsbar HTML så att du slipper stirra på rå patch-text.
AI-granskningen sker med minne för kontext. En Groq-chatmodell driver AI-agenten, och en enkel minnesbuffer håller konversationen sammanhängande så att resultatet inte känns slumpmässigt mellan körningar.
Gmail skickar ett enda mejl med ”granskningsrapporten”. Workflowet kombinerar commit-detaljer med AI-fynd i ett meddelande och skickar det via Gmail OAuth så att det landar direkt i din inkorg.
Du kan enkelt ändra granskningsprompten så att den matchar era standarder (endast säkerhet, lint-fokus, ramverksspecifikt), eller ändra mejlformateringen så att den passar teamets preferenser. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera GitHub-triggern
Konfigurera GitHub-webhook-triggern så att arbetsflödet startar vid nya commits.
- Lägg till och öppna GitHub Event Listener.
- Ställ in Owner till
https://github.com/akhilv77. - Ställ in Events till
push. - Ställ in Repository till
relevance. - Inloggningsuppgifter krävs: Anslut era githubApi-inloggningsuppgifter.
Steg 2: anslut hämtning av GitHub-data
Mappa payloaden och hämta commit-detaljerna från GitHubs API.
- Öppna Payload Mapper och lägg till tilldelningar för följande fält med uttryck: body.repository.id =
{{$json.body.repository.id}}, body.repository.name ={{$json.body.repository.name}}, body.repository.owner.name ={{$json.body.repository.owner.name}}, body.head_commit.id ={{$json.body.head_commit.id}}, body.head_commit.added ={{$json.body.head_commit.added}}, body.head_commit.removed ={{$json.body.head_commit.removed}}, och body.head_commit.modified ={{$json.body.head_commit.modified}}. - Öppna External API Call och ställ in URL till
=https://api.github.com/repos/{{ $json.body.repository.owner.name }}/{{ $json.body.repository.name }}/commits/{{ $json.body.head_commit.id }}. - Aktivera Send Headers och ställ in Authentication till
predefinedCredentialTypemed Credential TypegithubOAuth2Api.
githubOAuth2Api men inga inloggningsuppgifter är konfigurerade. Lägg till en GitHub OAuth2-inloggning innan ni kör arbetsflödet.Steg 3: formatera patch-HTML
Transformera GitHub-commit-payloaden till en formaterad HTML-sammanfattning av diffen.
- Öppna Patch Formatter Script och behåll JavaScript Code som den är för att bygga HTML-utdata.
- Bekräfta att skriptet refererar till fält från GitHub Event Listener för metadata om repository och commit.
Steg 4: konfigurera AI-kodgranskningen
Konfigurera AI-agenten för att analysera den formaterade patchen och generera en granskningssammanfattning.
- Öppna Automated Review Agent och ställ in Text till den angivna prompten, inklusive den bifogade HTML-snippet:en
{{ $json.htmlOutput }}. - Öppna Groq LLM Connector och ställ in Model till
llama-3.1-8b-instant. - Inloggningsuppgifter krävs: Anslut era groqApi-inloggningsuppgifter i Groq LLM Connector.
- Öppna Session Memory Buffer och behåll Session Key inställd på
dsfklasdyerbmnabfdaghkjhgashgkjhgaksjdhfgaoaiwrqwkbclaygamed Session ID Type inställd påcustomKey. - Säkerställ att Groq LLM Connector är ansluten som språkmodell för Automated Review Agent, och att Session Memory Buffer är kopplad som AI-minne; lägg till inloggningsuppgifter i föräldranoden (anslutningarna för Automated Review Agent), inte i undernoderna.
Steg 5: konfigurera e-postsammanställning och leverans
Kombinera patch-sammanfattningen och AI-granskningen i ett mejl och skicka det via Gmail.
- Öppna Email Content Builder och behåll JavaScript Code som sammanfogar
$('Patch Formatter Script').first().json.htmlOutputmed$input.first().json.output. - Öppna Send Gmail Notice och ställ in Send To till
[YOUR_EMAIL]. - Ställ in Subject till
Code Review. - Ställ in Message till
{{$json.html}}. - Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter.
- Behåll Finalize Process som slutnod för att slutföra arbetsflödet efter att det har skickats.
Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera end-to-end-exekveringen innan ni slår på det.
- Använd webhook-testet i GitHub Event Listener eller pusha en commit till
relevance-repositoryt. - Bekräfta att External API Call returnerar commit-detaljer och att Patch Formatter Script ger ut
htmlOutput. - Verifiera att Automated Review Agent returnerar ett enda HTML-block i utdata och att Email Content Builder bygger den kombinerade
html. - Kontrollera att Send Gmail Notice levererar ett mejl till
[YOUR_EMAIL]med den formaterade granskningen. - När allt fungerar, växla arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- GitHub-uppgifter kan gå ut eller sakna rätt scopes. Om diffar slutar laddas, kontrollera scopes för din GitHub OAuth-token (repo samt hook-behörigheter) i n8n-credentials först.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstider. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Cirka 30 minuter om dina GitHub- och Gmail-uppgifter är klara.
Nej. Du kopplar främst konton och klistrar in en prompt du gillar.
Ja. n8n har ett gratis self-hosted-alternativ 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 in kostnader för Groq API-användning, som beror på hur stora dina diffar är.
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 klarar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är den första justeringen du bör göra. Uppdatera AI Agent-prompten så att den fokuserar på de säkerhetskategorier du bryr dig om (auth, validering av indata, hemligheter, beroenderisk), och justera HTML-formateraren om du vill ha de riskerna högst upp. Du kan också byta Groq-modellnoden mot en annan chatmodell som stöds om teamet föredrar en annan output-stil. De flesta team behåller GitHub-diffhämtningen exakt som den är och ändrar bara granskningsinstruktionerna.
Oftast beror det på saknade scopes eller en utgången token. Skapa om din GitHub OAuth-token (eller PAT, beroende på hur du autentiserade), se till att den har repo-åtkomst, uppdatera sedan credential i n8n och testa om HTTP Request-noden. Om du pushar mycket kan du även slå i rate limits, så att glesa ut körningar eller minska diffstorleken kan hjälpa.
En typisk setup hanterar dussintals pushar per dag utan problem, och om du self-hostar är den praktiska gränsen din server och e-postgenomströmning.
Ofta, ja, eftersom det här inte är en enkel ”skicka ett mejl när X händer”. Du hämtar diffar, formaterar HTML, kör en AI-agent och syr ihop innehåll, vilket är precis där n8n:s flexibilitet ger effekt. Zapier och Make kan lösa delar, men förgreningar, egen kodformatering och modellorkestrering blir ofta klumpigt (och dyrt) så fort du vill ha bättre logik. Om du bara behöver ett enkelt notismejl fungerar de verktygen fint. Om du vill ha konsekvent granskningsoutput med verklig detaljnivå är n8n ett renare val. Prata med en automationsexpert om du är osäker på vad som passar.
När detta väl är igång får varje push ett konsekvent andra par ögon, levererat till det enda stället du inte glömmer att kolla. Sätt upp det en gång, och låt workflowet stå för tjatet.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.