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:
- Gå till
frem.sh/repo/migrate(eller klicka på “+” → “Ny migrering” i toppfältet). - Välj källtjänst: GitHub, GitLab, Gitea, Forgejo, Bitbucket eller Plain Git.
- Klistra in källans URL (HTTPS).
- 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.
- 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:
- Repots Inställningar → Inställningar för spegling → avsnittet “Push Mirrors”.
- Lägg till målets URL (HTTPS) och inloggningsuppgifter (användarnamn + åtkomsttoken för måltjänsten).
- 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ärd | Pull-spegel | Push-spegel | Anmä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):
- Mejla support@frem.sh med värdnamnet och en kort beskrivning av användningsfallet.
- 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).
- 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
- Migreringsguider: för en engångsmigrering FRÅN en annan plattform i stället för en löpande spegel.
- Beroendeuppdateringar: för att hålla speglade beroenden uppdaterade.