Du har redan svaren. De är bara begravda i GitHub-ärenden, utspridda över månader av kommentarer, etiketter och trådar av typen ”vi tar det senare”. Så du söker, skummar, gissar och slutar ändå med att fråga teamet igen.
Teknikchefer känner igen det när release notes förvandlas till arkeologi. Produktpersoner som jagar blockare och supportansvariga som försöker hitta dubbletter kör in i samma vägg. En GitHub issue Q&A-automation gör ditt repo till något du bara kan fråga och lita på.
Det här flödet hämtar in dina ärenden, lagrar dem för semantisk sökning i Redis och låter en AI-agent svara på frågor med källhänvisningar. Du får se hur flödet fungerar, vad du behöver och var team brukar gå på minor.
Så här fungerar automationen
Se hur detta löser problemet:
n8n Workflow Template: GitHub + OpenAI: direktsvar från dina issues
flowchart LR
subgraph sg0["When chat message received Flow"]
direction LR
n3@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n5@{ icon: "mdi:memory", form: "rounded", label: "Redis Chat Memory", pos: "b", h: 48 }
n6@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI1", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "AI Agent using RAG", pos: "b", h: 48 }
n10@{ icon: "mdi:cube-outline", form: "rounded", label: "Augment with results from Re..", pos: "b", h: 48 }
n4 -.-> n9
n5 -.-> n9
n6 -.-> n10
n3 --> n9
n10 -.-> n9
end
subgraph sg1["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n1@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch issues from GitHub"]
n8@{ icon: "mdi:cube-outline", form: "rounded", label: "Vectorize and store in Redis", pos: "b", h: 48 }
n1 -.-> n8
n2 -.-> n8
n7 --> n8
n0 --> n7
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 n3,n0 trigger
class n9,n2 ai
class n4 aiModel
class n5 ai
class n10,n8 ai
class n6,n1 ai
class n7 api
classDef customIcon fill:none,stroke:none
class n7 customIcon
Utmaningen: GitHub-ärenden svarar inte på frågor
GitHub Issues är bra för att fånga arbete, men uselt för att hitta tillbaka till det. Du kan söka på nyckelord, absolut, men det fungerar bara när du minns exakt formulering som någon använde för sex månader sedan. Den verkliga kostnaden är inte bara tiden du lägger på att scrolla. Det är det ständiga tvivlandet: ”Är det här samma bugg?”, ”Bestämde vi detta redan?”, ”Är något blockerat inför releasen just nu?” Under tiden smyger dubbletter in, statusuppdateringar blir inkonsekventa och samma förtydligande fråga ställs i Slack igen. Ärligt talat börjar repot kännas som ett system man bara skriver till, inte läser från.
Det drar snabbt iväg. Här är var det faller isär i det dagliga arbetet.
- Du tappar runt 20 minuter bara på att hitta ”rätt” ärendetråd, och sedan ytterligare tid på att läsa kommentarer för sammanhang.
- Dubblettbuggar skapas eftersom semantisk likhet är osynlig i vanlig sökning.
- Releasestatus blir en mötespunkt eftersom ingen kan svara säkert på ”vad blockerar?” enbart från ärendelistan.
- Support- och produktteam pingar ingenjörer för svar som redan finns i ärenden, vilket avbryter fokustid.
Lösningen: ställ frågor, få svar med källhänvisningar från ditt repo
Det här n8n-flödet gör ett GitHub-repo till en konversationsbaserad kunskapsbas. Du kör ett ingest-flöde som hämtar ärenden från GitHub, inklusive metadata som spelar roll (titlar, beskrivningar, etiketter och annat sammanhang). OpenAI-embeddings omvandlar varje ärende till en vektorrepresentation, och Redis lagrar vektorerna så att liknande ärenden kan hittas även när formuleringen skiljer sig. Sedan tar en chatt-trigger emot en fråga på vanlig svenska, och en AI-agent söker i Redis efter de bäst matchande ärendena. Slutsvaret kommer tillbaka som en läsbar sammanfattning som pekar på källärendena, så att du kan verifiera snabbt i stället för att lita på en svart låda.
Flödet startar med en manuell trigger när du vill indexera (eller återindexera) ett repo. Därefter blir chatthooken det dagliga gränssnittet: ställ en fråga, agenten hämtar relevanta ärenden från Redis och OpenAI-chattmodellen skriver ett svar med kontext och källhänvisningar.
Vad som förändras: före vs. efter
| Det här elimineras | Effekten du kommer se |
|---|---|
|
|
Effekt i verkligheten
Säg att teamet ställer 10 ”repo-frågor” i veckan (blockare, dubbletter, senaste auth-buggar). Manuellt, om varje svar tar cirka 15 minuter av sökande och läsning, blir det ungefär 2,5 timmar per vecka. Med det här flödet ställer du frågan i chatten, väntar på hämtning och svar, och är oftast klar på runt 2 minuter. Säg totalt 20 minuter i veckan. Det är ett par timmar tillbaka, och svaren kommer med källänkar så du slipper gissa.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- GitHub som källrepo för ärenden.
- Redis 8.x för att lagra vektorer och chattminne.
- OpenAI API-nyckel (hämta den i OpenAI-dashboarden).
Kunskapsnivå: Medel. Du kopplar in credentials, ändrar repo-parametrar och justerar prompten lite.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödets steg
Ingest-trigger. En manuell körning startar indexeringen när du är redo. Du kan köra den en gång för att komma igång och sedan köra igen när du vill uppdatera (eller byta till ett schema senare).
Hämtning och strukturering av ärenden. En HTTP Request hämtar ärenden från GitHub. Flödet standardiserar innehållet till ”dokument” som blir enklare att söka i konsekvent, i stället för att behandla varje ärende som en unik textklump.
Vektorlager i Redis. OpenAI-embeddings konverterar varje ärende till vektorer, och Redis vektorlager sparar dem för snabb likhetssökning. Ett Redis-baserat konversationsminne behåller också chattkontext, vilket gör att följdfrågor fungerar naturligt.
Ställ frågor i chatten. En chattmeddelande-hook tar emot frågan, och RAG AI-koordinatorn hämtar de mest relevanta ärendena från Redis. OpenAI-chattmodellen skriver sedan ett användbart svar och citerar ärendekällorna så att du kan klicka dig vidare.
Du kan enkelt byta GitHub som källa till Jira, Linear eller dokument beroende på behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Det här arbetsflödet använder en manuell trigger för att starta GitHub-inhämtningen vid behov.
- Lägg till noden Manual Run Trigger som arbetsflödets trigger.
- Lämna alla fält på sina standardvärden i Manual Run Trigger.
- Bekräfta att körflödet börjar Manual Run Trigger → Retrieve GitHub Issues.
Steg 2: Koppla in hämtning av GitHub-issues
Hämta öppna issues från ett GitHub-repo för indexering.
- Lägg till noden Retrieve GitHub Issues och koppla den till Manual Run Trigger.
- Ställ in URL till
=https://api.github.com/repos/{{ $parameter.owner }}/{{ $parameter.repository }}/issues?per_page=100&state=open. - I Options → Pagination ställer ni in Next URL till
={{ $response.headers['link'].split(';')[0].slice(1, -1); }}och använder responsbaserad paginering. - Inloggningsuppgifter krävs: Anslut era GitHub- eller HTTP Request-inloggningsuppgifter om ert repo kräver autentisering.
$parameter.owner och $parameter.repository. Säkerställ att dessa parametrar är angivna i nodens UI innan ni testar.Steg 3: Förbered dokument för embedding
Transformera GitHub-issue-data till strukturerade dokument för vektorlagring.
- Lägg till Standard Data Loader och koppla den till datapathen som matar Embed & Store in Redis.
- Ställ in JSON Data till
={ title: '{{ $json.title }}', details: '{{ $json.body }}' }. - Under Options → Metadata lägger ni till metadatavärden: url =
={{ $json.url }}och state =={{ $json.state }}.
Steg 4: Skapa embeddings och lagra issues i Redis
Generera embeddings och infoga dokumenten i Redis för hämtning.
- Lägg till OpenAI Vector Embeds och koppla den till Embed & Store in Redis via AI-embedding-ingången.
- Lägg till Embed & Store in Redis och koppla huvud-ingången från Retrieve GitHub Issues samt dokument-ingången från Standard Data Loader.
- Ställ in Mode i Embed & Store in Redis till
insert. - Ställ in Redis Index till
github_issues_v1. - Inloggningsuppgifter krävs: Anslut era OpenAI-inloggningsuppgifter i överordnad nod som använder OpenAI Vector Embeds (detta konfigureras via Embed & Store in Redis).
- Inloggningsuppgifter krävs: Anslut era Redis-inloggningsuppgifter i Embed & Store in Redis.
Steg 5: Konfigurera den chattbaserade RAG-assistenten
Sätt upp chattens ingångspunkt, agentlogik och hämtningsverktyg för att besvara frågor.
- Lägg till Chat Message Hook och behåll Public satt till
trueför att exponera chatt-endpointen. - Lägg till RAG AI Coordinator och koppla den till Chat Message Hook.
- I RAG AI Coordinator ställer ni in Max Iterations till
10och System Message tillYou are a helpful assistant for exploring a public GitHub repository. You have a vector search capability to locate explore existing issues in the repository, Use this capability effectively to provide accurate, relevant insights — avoid making assumptions or fabricating information.. - Koppla OpenAI Dialogue Model till RAG AI Coordinator som språkmodell och ställ in modellen till
gpt-4.1-mini. - Koppla Redis Conversation Memory till RAG AI Coordinator som minneskomponent.
- Lägg till Redis Search Tool och koppla den till RAG AI Coordinator som ett AI-verktyg.
- I Redis Search Tool ställer ni in Mode till
retrieve-as-tool, Redis Index tillgithub_issues_v1och Tool Description tillThe list of issues from the database. - Koppla OpenAI Vector Embeds B till Redis Search Tool som embedding-modell.
- Inloggningsuppgifter krävs: Anslut era OpenAI-inloggningsuppgifter i överordnad nod som använder OpenAI Dialogue Model (detta konfigureras via RAG AI Coordinator).
- Inloggningsuppgifter krävs: Anslut era OpenAI-inloggningsuppgifter i överordnad nod som använder OpenAI Vector Embeds B (detta konfigureras via Redis Search Tool).
- Inloggningsuppgifter krävs: Anslut era Redis-inloggningsuppgifter i Redis Search Tool och Redis Conversation Memory.
Steg 6: Testa och aktivera ert arbetsflöde
Validera både inhämtningen och chatt-hämtningen innan ni aktiverar arbetsflödet.
- Klicka på Execute Workflow för att köra Manual Run Trigger och verifiera att Retrieve GitHub Issues returnerar issue-data.
- Bekräfta att Embed & Store in Redis infogar dokument i indexet
github_issues_v1. - Öppna webhook-URL:en för Chat Message Hook och skicka en testfråga; verifiera att RAG AI Coordinator returnerar ett svar baserat på resultat från Redis.
- Om resultaten är tomma, kör om inhämtningen och bekräfta att embeddings genererades av OpenAI Vector Embeds.
- När allt är bekräftat växlar ni arbetsflödet till Active för produktion.
Se upp med
- GitHub-credentials kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera först scopes på din GitHub-token och n8n:s credential-post.
- Om du hämtar in ett stort repo varierar processtiderna och Redis kan se ”tomt” ut tills körningen är klar. Om nedströmsnoder fallerar på saknad data, öka väntetiden eller hämta in i mindre batchar.
- Standardprompter i AI-noder är generiska. Lägg in teamets språk för etiketter, allvarlighetsgrad och releasetermer tidigt, annars kommer du skriva om svaren varje gång.
Vanliga frågor
Cirka en timme om Redis och OpenAI är redo.
Ja, men någon behöver vara bekväm med API-nycklar och grundläggande testning. Ingen kodning, dock.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in OpenAI API-användning (ofta några dollar i månaden för små team) plus Redis-hosting.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serveradministration.
Du kan byta ut GitHub-hämtningen mot en annan källa genom att ersätta HTTP Request-noden ”Retrieve GitHub Issues” med en Jira-, Linear- eller databasfråga. De flesta team justerar också vad som ska bäddas in (till exempel: bara öppna ärenden, eller bara objekt med etiketten ”bug”), vilket hanteras precis innan ”Embed & Store in Redis”. Om du vill ha ett annat svarsbeteende justerar du instruktionerna i agenten ”RAG AI Coordinator” så att den sammanfattar med ert releasespråk och alltid citerar ärende-URL:en.
Oftast är det en utgången token eller saknade scopes. Uppdatera GitHub-credentials i n8n och bekräfta sedan att repo-ägare och repository-parametrar matchar exakt. Om du hämtar många ärenden kan GitHubs rate limiting också orsaka intermittenta fel, så det hjälper att lägga in en liten fördröjning eller snäva in frågan.
På n8n Cloud Starter kan du köra mycket för ett litet team, men den praktiska gränsen är dina månatliga körningar och hur många ärenden du hämtar in på en gång. Om du self-hostar finns ingen körningsgräns, och kapaciteten beror mest på serverminne och dimensionering av Redis. För många repo:n är några tusen ärenden helt rimligt. Om du vill ha nära realtidsuppdateringar, lägg ingest på ett schema eller webhook och håll batcharna små.
Ofta, ja. RAG-liknande flöden behöver förgreningar, minne och integration mot ett vektorlager, och n8n hanterar det utan att tvinga in dig i dyra task-baserade tillägg. Du får också möjligheten att self-hosta, vilket spelar roll när chattvolymen växer. Zapier eller Make kan fungera för lätta ”skicka en alert”-automationer, men detta ligger närmare en intern sökprodukt än en tvåstegs-zap. Om du är osäker, prata med en automationsexpert och kartlägg den faktiska användningen först.
Ditt repo innehåller redan sanningen. Det här flödet gör den bara sökbar på vanlig svenska, med källor bifogade, så att ni kan jobba snabbare och lägga mindre tid på att diskutera samma saker.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.