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

GitHub + Drive: samla flera commits i en

Rickard Andersson Partner, Nodenordic.se

Du uppdaterar en handfull filer, trycker publicera och ändå känns något fel. En fil kom med. En annan gjorde det inte. Nu gräver du i commit-historiken och försöker förklara varför dokumentationen inte matchar releasen.

Den här automatiseringen för GitHub Drive commits träffar DevOps-team först, men innehållsansvariga som levererar dokumentation och byråteam som underhåller kundsajter känner av det också. Du får en enda tydlig commit som innehåller alla filer du faktiskt avsåg att leverera. Tillsammans.

Nedan ser du hur arbetsflödet batchar filer från Google Drive och pushar dem till GitHub i en enda atomär uppdatering, plus de praktiska justeringar som många gör när det väl är igång.

Så fungerar automatiseringen

Se hur detta löser problemet:

n8n Workflow Template: GitHub + Drive: samla flera commits i en

Utmaningen: GitHub-uppdateringar med flera filer som förblir konsekventa

Att pusha en fil till GitHub är enkelt. Att pusha fem eller femtio filer så att de landar samtidigt, med ett commit-meddelande och en rollback-punkt, är där det blir rörigt. n8n:s inbyggda GitHub-nod fungerar bra för enstaka uppladdningar, men så fort du behöver en “bundle” (sidor, assets, konfigfiler, dokumentation) hamnar du i loopar och skapar massor av separata commits. Det är inte bara brusigt. Det skapar en verklig risk när halva filerna ligger live och den andra halvan inte gör det, vilket är precis när folk dras in i sena “varför beter sig prod konstigt?”-trådar.

Friktionen byggs på. Här är var det fallerar i det dagliga arbetet.

  • Uppladdning av flera filer blir flera commits, så rollback blir gissningslek istället för en tydlig revert.
  • När ett arbetsflöde misslyckas mitt i körningen kan du få partiella uppdateringar som i tysthet levererar inkonsekvent dokumentation, mallar eller konfigurationer.
  • Det blir svårare att granska ändringar eftersom GitHub-diffar sprids över många commit-meddelanden och tidsstämplar.
  • Team överger ofta automatisering och går tillbaka till manuella uppladdningar, vilket tar tillbaka copy-paste-fel och missade filer.

Lösningen: Batcha filer till en enda GitHub-commit

Det här arbetsflödet tar en grupp filer och publicerar dem till ett GitHub-repo i en uppdatering via GitHubs Git Data API. Det börjar med att hämta aktuellt “tip” på din mål-branch (som main) så att arbetsflödet vet vad du bygger vidare på. Sedan skapar det ett nytt Git-träd som innehåller alla filer du vill lägga till eller uppdatera, med korrekta sökvägar och innehåll. När trädet finns genererar arbetsflödet en commit som refererar till det, och till sist uppdaterar det branchpekaren så att GitHub visar dina ändringar som en enda, komplett revision. Inget halvlevererat läge. Ingen commit-spam. Det är helt enkelt så man förväntar sig att automatisering ska fungera.

Körningen startar från en manuell trigger (lätt att senare byta mot ett schema eller en webhook). Därefter förbereder n8n filinnehållet, anropar GitHub för att bygga trädet, skapar commit-posten och uppdaterar branch-referensen. Utdata är enkel: en commit i ditt repo som innehåller varje fil i batchen.

Vad som förändras: före vs. efter

Effekt i verkligheten

Säg att du publicerar en dokumentationsuppdatering med 12 filer (några sidor, ett index och några bilder). Manuellt via GitHub-gränssnittet tar det kanske 5 minuter per fil när du räknar in klickande, kontroll av sökvägar och dubbelkoll av vad som ändrats, alltså runt en timme. Med det här arbetsflödet kör du det en gång: en minut eller två för att trigga och bekräfta batchen, sedan hanterar GitHub träd och commit. Du är klar på ungefär 5 minuter, med en commit du kan revertera med ett enda klick.

Krav

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • GitHub för att ta emot commits i ditt repo.
  • Google Drive som källa för filer.
  • GitHub Personal Access Token (hämta det i GitHub Settings → Developer Settings → Personal Access Tokens)

Kunskapsnivå: Mellan. Du bör vara bekväm med brancher, commit-meddelanden och att skapa en GitHub-token.

Behöver du hjälp att implementera detta? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).

Arbetsflödets flöde

En manuell körning sätter igång. Du klickar “Test workflow” när du är redo att pusha en batch, vilket passar bra för kontrollerade releaser. Många team byter senare till Schedule eller Webhook när de litar på flödet.

GitHub-detaljer och filinnehåll förbereds. Arbetsflödet sätter ditt repo, din branch och ditt commit-meddelande och bygger sedan innehållspayloaden för varje fil du vill inkludera (i mallen är det “File A” och “File B”). Det är också här du hämtar riktigt innehåll från Google Drive istället för statisk text.

GitHubs aktuella tillstånd hämtas. n8n hämtar senaste commit-hashen för branchen och frågar sedan GitHub efter base tree-hashen bakom den commiten. Det ger arbetsflödet en korrekt startpunkt, så att du alltid committar “ovanpå” den aktuella branchen.

Ett nytt träd och en enda commit skapas. Arbetsflödet skickar en request för att bygga ett uppdaterat träd som inkluderar alla filer i batchen och skapar sedan en commit som refererar till trädet och parent-commiten. Till sist uppdaterar det branchpekaren så att repot direkt speglar din nya batch.

Du kan enkelt ändra fillistan för att stödja 10, 50 eller 500 filer beroende på behov. Se hela implementationsguiden nedan för alternativ för anpassning.

Steg-för-steg-guide för implementation

Steg 1: konfigurera den manuella triggern

Använd den manuella triggern för att köra arbetsflödet vid behov medan ni validerar GitHub-anslutning och commit-beteende.

  1. Lägg till noden Manual Run Trigger som er startpunkt.
  2. Anslut Manual Run Trigger till Configure GitHub Details för att följa exekveringsflödet.

Steg 2: anslut GitHub

Ange repository-, branch- och autentiseringsuppgifter som återanvänds av alla GitHub API-anrop.

  1. Öppna Configure GitHub Details och ställ in Github Token till ert tokenvärde och ersätt [CONFIGURE_YOUR_TOKEN].
  2. Ställ in Github Repo till [YOUR_ID] och Github Username till [YOUR_ID] med ert faktiska repository och användarnamn.
  3. Bekräfta att Github Branch är main (eller ange namnet på er mål-branch).
  4. Ställ in Github Commit Update Message till Updating file1.txt and file2.txt eller ett eget commit-meddelande.

⚠️ Vanlig fallgrop: Arbetsflödet använder en token i HTTP-headers, inte en sparad autentiseringsuppgift. Säkerställ att er GitHub-token har skrivrättigheter till repo och är giltig.

Steg 3: konfigurera förberedelse av filinnehåll

Definiera innehållet som ska skrivas till varje fil innan GitHub-commit:en skapas.

  1. I Prepare File A, ställ in fältet content till This is the content of your file #1..
  2. I Prepare File B, ställ in fältet content till This is the content of your file #2..
  3. Säkerställ att flödet följer Configure GitHub DetailsPrepare File APrepare File B.

Steg 4: konfigurera GitHub commit-operationer

Dessa HTTP-noder hämtar den senaste commit:en, genererar ett nytt träd, skapar commit-posten och uppdaterar branch-pekaren.

  1. I Fetch Latest Commit Hash, bekräfta att URL är inställd på =https://api.github.com/repos/{{ $('Configure GitHub Details').item.json['Github Username'] }}/{{ $('Configure GitHub Details').item.json['Github Repo'] }}/git/refs/heads/{{ $('Configure GitHub Details').item.json['Github Branch'] }} och att headern Authorization är =Bearer {{ $('Configure GitHub Details').item.json['Github Token'] }}.
  2. I Retrieve Base Tree Hash, bekräfta att URL är =https://api.github.com/repos/{{ $('Configure GitHub Details').item.json['Github Username'] }}/{{ $('Configure GitHub Details').item.json['Github Repo'] }}/git/commits/{{ $json.object.sha }}.
  3. I Build Updated Tree, ställ in Method till POST och behåll base_tree som ={{ $json["tree"]["sha"] }}; ställ in tree[0].path till public/file1.txt och tree[1].path till public/file2.txt med innehåll från ={{ $('Prepare File A').item.json.content }} och ={{ $('Prepare File B').item.json.content }}.
  4. I Generate Commit Record, behåll jsonBody som ={ "message": "{{ $('Configure GitHub Details').item.json['Github Commit Update Message'] }}", "tree": "{{ $json.sha }}", "parents": ["{{ $('Fetch Latest Commit Hash').item.json.object.sha }}"] }.
  5. I Refresh Branch Pointer, verifiera att Method är PATCH och att jsonBody är ={ "sha": "{{ $json.sha }}", "force": false }.

Tips: Alla fem HTTP-noder återanvänder samma token-header. Om ni uppdaterar token i Configure GitHub Details tillämpas den automatiskt på varje anrop.

Steg 5: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att validera att commit och branch-uppdatering lyckas innan ni går live.

  1. Klicka på Execute Workflow från Manual Run Trigger för att köra hela kedjan.
  2. Bekräfta att Fetch Latest Commit Hash, Retrieve Base Tree Hash, Build Updated Tree, Generate Commit Record och Refresh Branch Pointer alla returnerar lyckade HTTP-svar.
  3. Verifiera att repositoryt visar en uppdaterad commit med innehållsändringar i public/file1.txt och public/file2.txt.
  4. Växla arbetsflödet till Active när ni är redo att använda det i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Se upp för

  • GitHub-inloggningsuppgifter kan gå ut eller kräva specifika behörigheter. Om det slutar fungera, kontrollera först token-scopes (fine-grained token “Contents” read/write) i GitHub Settings.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder misslyckas på grund av tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata i all oändlighet.

Vanliga frågor

Hur snabbt kan jag implementera den här automatiseringen för GitHub Drive commits?

Cirka 30 minuter om du redan har en GitHub-token och ett testrepo.

Kan icke-tekniska team implementera den här processen för batch-commits?

Ja, men någon behöver förstå brancher och behörigheter. När inloggningsuppgifterna är satta handlar körningen i praktiken om att fylla i filindata och klicka test.

Är n8n gratis att använda för det här arbetsflödet för GitHub Drive commits?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på $20/månad för högre volym. Du behöver också räkna in GitHub-kostnader (oftast $0 om du inte kör enterprise) och den lagringsplan du använder för Google Drive.

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 serveradministration.

Hur anpassar jag den här lösningen för GitHub Drive commits till mina specifika utmaningar?

Du kan ersätta noderna “Prepare File A” och “Prepare File B” med filläsningar från Google Drive och sedan skicka det innehållet till requesten “Build Updated Tree”. Vanliga anpassningar är att lägga till fler filer i tree-arrayen, ändra filsökvägar (så att docs hamnar i /docs) och byta den manuella triggern mot ett schema så att batchar levereras nattligen.

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

Oftast beror det på en utgången token eller att behörigheten “Contents: read and write” saknas på repot.

Vilken kapacitet har den här lösningen för GitHub Drive commits?

Om du self-hostar finns inget tak för antal körningar (det beror på din server), och arbetsflödet kan hantera stora batchar så länge GitHubs API-gränser inte överskrids. På n8n Cloud beror kapaciteten på din plans månatliga antal körningar, vilket normalt räcker gott för daglig eller timvis batchpublicering. I praktiken börjar de flesta team med batchar på 10–100 filer och skalar upp när de känner sig trygga med att fillista och sökvägar är korrekta. Om du förväntar dig väldigt stora commits bör du lägga till batchlogik så att en körning inte försöker pusha tusentals filer på en gång.

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

För atomära commits med flera filer är n8n oftast ett bättre val eftersom du kan styra exakt API-sekvens och hålla logiken samlad. Zapier och Make kan också anropa GitHub, men att bygga kedjan med Git Data API blir klumpigt, och du märker det första gången du behöver felsöka en partiell körning. n8n ger dig också self-hosting, vilket spelar roll om du kör frekventa releaser. Om din automatisering bara är “ladda upp en fil när Drive ändras” kan enklare verktyg räcka. Prata med en automatiseringsexpert om du vill ha hjälp att välja.

En commit. Varje fil du avsåg att leverera. Arbetsflödet tar hand om den repetitiva GitHub-mekaniken så att dina releaser förblir förutsägbara.

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