Hoppa till huvudinnehållet

Spegling av repon

fremforge stöder både pull-spegling (ett externt repo → fremforge, som hålls synkat enligt ett schema) och push-spegling (ett fremforge-repo → ett externt mål, som speglas vid varje push). Båda riktningarna bygger på Forgejos inbyggda speglingsfunktion och körs som schemalagda bakgrundsjobb.

Konfigurera en spegel

Pull-spegel (externt → fremforge)

När du skapar ett nytt repo:

  1. Gå till frem.sh/repo/migrate (eller klicka på “+” → “Ny migrering” i toppfältet).
  2. Välj källtjänst: GitHub, GitLab, Gitea, Forgejo, Bitbucket eller Plain Git.
  3. Klistra in källans URL (HTTPS).
  4. Kryssa i “This repo will be a mirror” innan du klickar på Migrate. Utan den kryssrutan blir importen en engångskopia, inte en löpande synkning.
  5. Speglingsintervallet är 8 timmar som standard. Du kan ändra det på repots sida Inställningar → Inställningar för spegling när repot har skapats. Det kortaste intervallet är 10 minuter.

Push-spegel (fremforge → externt)

På ett befintligt repo:

  1. Repots Inställningar → Inställningar för spegling → avsnittet “Push Mirrors”.
  2. Lägg till målets URL (HTTPS) och inloggningsuppgifter (användarnamn + åtkomsttoken för måltjänsten).
  3. Speglingen körs vid varje push till fremforge-repots standardbranch och dessutom med det inställda intervallet (8 h som standard).

Käll- och målvärdar som stöds

Utgående Git-trafik från fremforges Forgejo-pod går genom en tillåtelselista (djupförsvar mot SSRF och dataexfiltrering via spegel-URL:er). Följande värdar är tillåtna i dag:

VärdPull-spegelPush-spegelAnmärkningar
github.com (+ *.githubusercontent.com)✅✅Inklusive GitHub Enterprise Cloud (*.github.com); GHES-instanser på kundägda domäner kräver ett tillägg i tillåtelselistan (se nedan).
*.gitlab.com✅✅GitLab.com SaaS. Egenhostade GitLab-instanser på kunddomäner kräver ett tillägg i tillåtelselistan.
*.bitbucket.org✅✅Atlassian Bitbucket Cloud. Bitbucket Data Center på kunddomäner kräver ett tillägg i tillåtelselistan.
codeberg.org✅✅Forgejo-baserad hosting för communityn.
dev.azure.com (+ *.visualstudio.com)✅✅Azure DevOps (moderna och äldre värdnamn).
code.forgejo.org✅✅Forgejo-projektets egen hosting.
gitea.com✅✅Gitea SaaS.
git.sr.ht✅✅SourceHut.

Bara HTTPS. Spegel-URL:er över SSH (git@<host>:owner/repo.git) stöds inte i dag: fremforges Forgejo-pod skickar Git-trafik genom HTTPS-proxyn, inte direkt ut över port 22. Använd HTTPS-formen av källans URL med en personlig åtkomsttoken om källan kräver autentisering.

Mål i privata nät blockeras. RFC1918-intervall (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) och link-local-adresser avvisas i Forgejo-lagret oavsett tillåtelselistan. Att spegla från en intern Git-server i företaget kräver att servern går att nå på det publika internet via ett stabilt värdnamn.

Lägga till en värd i tillåtelselistan

För källor eller mål som inte finns i listan ovan (vanligtvis egenhostad GitLab, GitHub Enterprise Server eller Bitbucket Data Center på en kundägd domän):

  1. Mejla support@frem.sh med värdnamnet och en kort beskrivning av användningsfallet.
  2. Vi lägger till den i den globala tillåtelselistan inom en arbetsdag (ingen avgränsning per kund i dag: värden blir nåbar för speglingar från alla fremforge-tenants).
  3. Därefter kan du konfigurera spegeln enligt ovan.

Varför vi ber dig fråga i stället för att låta dig göra det själv: tillåtelselistan delas av klustrets proxy för utgående trafik. Policystyrning per tenant, som skulle låta varje organisationsadministratör hantera sin egen tillåtelselista, finns på vår färdplan (fas 2); till dess granskas tillägg av en operatör av skälet ovan.

Gränser och egenskaper

  • Intervall för pull-spegling: minst 10 minuter, 8 timmar som standard, kan ställas in per repo.
  • Utlösare för push-spegling: vid varje push till standardbranchen + med det inställda intervallet.
  • Inloggningsuppgifter i vila: Forgejo krypterar speglingens inloggningsuppgifter i sin databas (speglingslösenord visas inte för fremforges operatörer).
  • Speglingar räknas in i repots mätning på samma sätt som vanliga Git-operationer.

Hotmodell + revisionsanteckningar

  • Varje gång en spegel skapas, uppdateras eller tas bort skrivs en granskningshändelse som du ser på <org>/_admin/audit-log.
  • Misslyckade hämtningar till en spegel (t.ex. när inloggningsuppgifterna har återkallats hos källan) loggas som varningar i repots aktivitetsflöde. Vi larmar inte vår jour om kunders speglingsfel.
  • En push-spegel med läckta inloggningsuppgifter ger måltjänsten möjlighet att läsa ditt repo (och skriva, om du har konfigurerat push). Behandla åtkomsttoken som vilken annan inloggningsuppgift som helst: byt ut den om du misstänker att den har röjts; hur du gör det beskrivs hos måltjänsten.

Se även