Att kolla GitHub Trending manuellt låter snabbt tills du försöker göra det varje dag, sedan varje vecka, sedan varje månad. Du kopierar länkar, missar ett repo, klistrar in fel antal stjärnor och “trenden” du följer förvandlas till en rörig anteckning du inte litar på.
Den här GitHub Supabase-automationen träffar produktingenjörer och startupgrundare först, eftersom du vill ha signaler, inte merjobb. Analytiker som bygger dashboards känner det också. Resultatet är enkelt: du får en felfri, frågebar historik över trendande repos utan att skrapa för hand.
Du får lära dig vad arbetsflödet gör, vad du behöver för att köra det och hur du kan tänka kring anpassningar så att din Supabase-tabell blir en riktig datamängd (inte en engångsexport).
Så här fungerar den här automationen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: GitHub Trending till Supabase: spåra trender enkelt
flowchart LR
subgraph sg0["daily Flow"]
direction LR
n0@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Create a row in Supabase", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n3@{ icon: "mdi:play-circle", form: "rounded", label: "daily", pos: "b", h: 48 }
n4@{ icon: "mdi:play-circle", form: "rounded", label: "weekly", pos: "b", h: 48 }
n5@{ icon: "mdi:play-circle", form: "rounded", label: "monthly", pos: "b", h: 48 }
n6@{ icon: "mdi:location-exit", form: "rounded", label: "firecrawl", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "B1", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "B2", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "B3", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "B_ALL", pos: "b", h: 48 }
n7 --> n10
n8 --> n10
n9 --> n10
n10 --> n6
n10 --> n0
n3 --> n7
n4 --> n8
n5 --> n9
n6 --> n0
n2 -.-> n0
n1 -.-> n0
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,n4,n5 trigger
class n0 ai
class n2 aiModel
Varför det här spelar roll: spårning av GitHub Trending som inte förfaller
GitHub Trending är användbart eftersom det ger en snabb puls på vad utvecklare uppmärksammar just nu. Haken är att det är flyktigt. Om du inte fångar det i dag är det borta i morgon, och du kan inte svara på enkla frågor som “Vad har trendat den senaste månaden?” eller “Vilket språk dyker upp hela tiden?”. De flesta team börjar med ett snabbt kalkylark eller en bokmärkt länk. Sedan händer livet. Efter några missade dagar blir din “trendanalys” gissningar, och du är tillbaka till att skrolla och kopiera.
Det drar iväg snabbt. Här är var det oftast fallerar.
- Att kopiera/klistra in dagliga, veckovisa och månatliga sidor blir till ungefär en timmes repetitivt arbete i veckan.
- Manuella anteckningar normaliserar inte fält (språk, stjärnor, beskrivning), så det blir frustrerande att söka i efterhand.
- Om du missar en körning tappar du ögonblicksbilden, vilket betyder att din “historik” får hål som du inte kan fylla på ett snyggt sätt.
- Dashboards och nyhetsbrev behöver en pålitlig källa till sanning, inte skärmdumpar och halvfärdiga exporter.
Det du bygger: GitHub Trending-ögonblicksbilder sparade i Supabase
Det här arbetsflödet skapar en enkel vana åt dig, fast den glömmer aldrig. På ett schema (dagligen, veckovis och månadsvis) triggar n8n en körning, märker upp körningstypen och skrapar GitHub Trending-sidan för den tidsramen med FireCrawl. Det skrapade innehållet skickas sedan genom ett extraktionssteg med en AI-chattmodell, som förvandlar sidan till strukturerade fält som reponamn, URL, beskrivning, språk och stjärnor. Till sist infogas varje repo i en Supabase-tabell tillsammans med tidsramsetiketten (daglig/veckovis/månadsvis) och datumet, så att du bygger en historisk datamängd automatiskt. Med tiden blir tabellen ryggraden för dashboards, research och innehållsidéer som du faktiskt kan bevisa med data.
Arbetsflödet börjar med tre schematriggrar, en för varje tidsram. Därifrån normaliserar det en “typ”-flagga, skrapar rätt Trending-vy och extraherar fält på reponivå. Supabase lagrar resultatet så att du kan analysera trender när som helst utan att gå tillbaka till GitHub manuellt.
Det du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du spårar Trending dagligen, veckovis och månadsvis och loggar topp 25 repos varje gång. Manuellt brukar du lägga kanske 2 minuter per repo för att kopiera URL, språk, stjärnor och en kort beskrivning, vilket är cirka 50 minuter per tidsram. Det blir ungefär 2,5 timmars arbete över de tre vyerna varje vecka, och det blir ändå inte helt konsekvent. Med det här arbetsflödet: triggrarna kör automatiskt, skrapning och extraktion går i bakgrunden i några minuter, och Supabase har rader redo att frågas ut utan att du rör ett kalkylark.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- FireCrawl för att skrapa GitHub Trending-sidor.
- Supabase för att lagra trendhistorik i en tabell.
- OpenAI API-nyckel (hämta den från sidan för OpenAI API-nycklar).
Svårighetsgrad: Medel. Du kopplar autentiseringsuppgifter, skapar en Supabase-tabell och verifierar en första körning i n8n.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Ett schema triggar körningen. Det finns tre schemapulser, så dagliga, veckovisa och månatliga ögonblicksbilder kan köras i sin egen takt (till exempel dagligen kl. 08:00).
Arbetsflödet märker upp tidsramen. En kort uppsättning “assign”-steg lägger till ett typvärde (daglig/veckovis/månadsvis) och normaliserar det, så att efterföljande steg inte behöver gissa vad de bearbetar.
FireCrawl skrapar Trending-sidan. I stället för skör hemmabyggd skrapning använder arbetsflödet FireCrawl för att fånga innehållet konsekvent, även när sidlayouten ändras.
AI gör sidan till korrekt formaterade fält. Extraktionsorkestratorn använder en OpenAI-chattmodell för att plocka ut de specifika repofälten du bryr dig om och förbereder sedan poster för infogning i Supabase.
Du kan enkelt ändra vilka fält du sparar för att även inkludera saker som forks eller built-by-avatarer utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera schematriggrarna
Konfigurera de tre schematriggrarna som driver de dagliga, veckovisa och månatliga körningarna.
- Lägg till och konfigurera Daily Schedule Pulse med standardintervallet för daglig körning.
- Konfigurera Weekly Schedule Pulse så att den använder ett veckointervall (regel-fältet
weeks). - Konfigurera Monthly Schedule Pulse så att den använder ett månadsintervall (regel-fältet
months). - Koppla Daily Schedule Pulse → Assign Daily Type, Weekly Schedule Pulse → Assign Weekly Type och Monthly Schedule Pulse → Assign Monthly Type.
Steg 2: Sätt upp tilldelning av typflagga
Definiera type-värdet för varje schema och normalisera det för efterföljande noder.
- I Assign Daily Type, ställ in type till
daily. - I Assign Weekly Type, ställ in type till
weekly. - I Assign Monthly Type, ställ in type till
monthly. - I Normalize Type Flag, ställ in type till uttrycket
{{$json.type}}. - Koppla varje Assign-nod till Normalize Type Flag.
type saknas eller är felstavat kommer efterföljande URL-generering och AI-extraktionsprompten att misslyckas.Steg 3: Konfigurera skrapning av trendsidan
Skrapa GitHub Trending med den normaliserade typflaggan.
- Öppna Scrape Trending Page och ställ in Operation till
scrape. - Ställ in URL till
=https://github.com/trending?since={{ $json.type }}. - Låt Use Custom Body vara aktiverat och behåll eventuella anpassade egenskaper för innehållsextraktion.
- Autentisering krävs: Anslut era firecrawlApi-inloggningsuppgifter i Scrape Trending Page.
- Koppla Normalize Type Flag → Scrape Trending Page.
Normalize Type Flag skickar utdata parallellt till både Scrape Trending Page och Extraction Orchestrator.
Steg 4: Sätt upp AI-extraktion och orkestrering
Använd agenten för att tolka den skrapade Markdown-texten och formatera projektdata för lagring.
- Öppna Extraction Orchestrator och låt Prompt Type vara inställd på
define. - Ställ in fältet Text till hela extraktionsprompten, inklusive uttrycken
{{$json.data.markdown}}och{{ $('Normalize Type Flag').item.json.type }}. - Koppla Scrape Trending Page → Extraction Orchestrator så att agenten får skrapad Markdown-data.
- Säkerställ att OpenAI Chat Engine är ansluten som språkmodell för Extraction Orchestrator.
- Autentisering krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Chat Engine.
Steg 5: Konfigurera infogning av poster i Supabase
Lagra extraherade projekt i Supabase med hjälp av AI-verktygskopplingen.
- Öppna Insert Supabase Record och ställ in Table ID till
githubtrending. - Mappa fält med AI-uttrycken, till exempel url →
{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('fieldValues0_Field_Value', `github project url`, 'string') }}och project_id →{{ /*n8n-auto-generated-fromAI-override*/ $fromAI('fieldValues1_Field_Value', `github project id name like: ubicloud / ubicloud`, 'string') }}. - Behåll övriga fältmappningar för project_desc, code_language, stars och type som de är definierade i noden.
- Autentisering krävs: Anslut era supabaseApi-inloggningsuppgifter i Insert Supabase Record.
- Säkerställ att Insert Supabase Record är ansluten som ett AI-verktyg till Extraction Orchestrator.
Steg 6: Testa och aktivera ert arbetsflöde
Validera arbetsflödets beteende och slå på det för schemalagda körningar.
- Kör manuellt varje trigger (Daily Schedule Pulse, Weekly Schedule Pulse, Monthly Schedule Pulse) för att bekräfta körvägarna.
- Verifiera att Scrape Trending Page returnerar Markdown och att Extraction Orchestrator ger ut en JSON-array med projekt.
- Kontrollera Supabase för att bekräfta att poster infogas i
githubtrendingmed korrekttype-värde. - Aktivera arbetsflödet genom att slå om reglaget Active i n8n.
Felsökningstips
- Supabase-autentiseringsuppgifter behöver behörigheter som tillåter insert. Om inserts misslyckas, kontrollera först API-nyckeltypen (service role vs anon) och tabellens RLS-policyer.
- 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 tonalitet tidigt, annars kommer du att sitta och redigera utdata för alltid.
Snabba svar
Cirka 30 minuter om din Supabase-tabell och API-nycklar är redo.
Nej. Du kopplar mest konton, lägger till autentiseringsuppgifter och bekräftar att kolumnerna i din Supabase-tabell matchar fälten som infogas.
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 OpenAI API (ofta bara några cent per körning) och din FireCrawl-användning.
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änsat antal körningar men kräver grundläggande serveradministration.
Ja, och det borde du förmodligen. Du kan ändra vad som sparas genom att redigera extraktionsprompten i “Extraction Orchestrator” (och dess OpenAI-chattmotor) och sedan uppdatera din Supabase insert-mappning så att den matchar. Vanliga justeringar är att fånga fler fält som forks, lägga till en “rank”-kolumn, filtrera på språk innan infogning eller skriva till en andra tabell för dashboards med “endast topp 10”.
Oftast handlar det om nyckeltyp eller behörigheter. Säkerställ att du använder en nyckel som kan göra insert (många team använder en service role-nyckel för server-side-automationer) och bekräfta att Row Level Security inte blockerar inserts i måltabellen. Dubbelkolla också Supabase-projektets URL, eftersom att råka kopiera fel miljö (prod vs dev) är ett väldigt verkligt och väldigt irriterande misstag.
Mer än nog för typisk trendspårning. På n8n Cloud Starter får du en månatlig körningsgräns beroende på din plan, medan self-hosting inte har något tak (det beror på din server). I praktiken kör du tre schemalagda ögonblicksbilder och infogar några dussin rader varje gång, så de flesta team slår aldrig i gränserna om de inte bygger ut arbetsflödet för att spåra flera kategorier eller kör det många gånger per dag.
Ofta, ja. Det här arbetsflödet drar nytta av n8n:s flexibilitet: skrapning plus AI-extraktion plus databas-inserts är flersteglogik, och det är enkelt att justera promter, grenar och datatransformering utan att betala per ministeg. Du kan också self-hosta för obegränsade körningar, vilket är användbart om du expanderar till fler skrapmål. Zapier eller Make kan fortfarande fungera om du bara vill ha ett enkelt “hämta och lägg till”-flöde, men skrapning och strukturerad extraktion blir snabbt klumpigt. Om du är osäker, prata med en automationsexpert så kvalitetssäkrar vi ditt användningsfall.
När detta väl rullar blir GitHub Trending en datamängd du kan lita på, inte en flik du hela tiden tänker att du ska kolla. Sätt upp det, låt det samla in och använd historiken till något som faktiskt driver affären.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.