Denne funksjonen er utviklet av ayaka-notes/ayakaleaf-pro. Den er introdusert i v6.3.2 som en tidlig forhåndsversjon (early preview) og blir offisielt lansert i v6.4.0, så konfigurasjonen og virkemåten kan fortsatt endres. Vi trenger tilbakemeldingen din hvis du får problemer.
Sette opp Gitea-synkronisering
Opprett en OAuth2-applikasjon på Gitea-instansen din, under Settings → Applications → Manage OAuth2 applications (eller Site Administration → Integrations → Applications for en applikasjon for hele instansen):- Application name: f.eks.
Overleaf, brukerne ser dette navnet når de autoriserer applikasjonen - Redirect URIs:
${OVERLEAF_SITE_URL}/user/gitea-sync/oauth2/callback - Confidential client: avkrysset
config/variables.env
Gitea viser disse omfangene når brukeren autoriserer applikasjonen, og begrenser tokenet til dem.
Tilgangstokener fra Gitea utløper etter én time (
[oauth2] ACCESS_TOKEN_EXPIRATION_TIME). Overleaf fornyer dem med refresh-tokenet som Gitea utsteder sammen med dem, også når Gitea forbruker refresh-tokener ved bruk (INVALIDATE_REFRESH_TOKENS = true), slik at brukerne forblir tilkoblet til de kobler fra eller trekker tilbake applikasjonen i Gitea.
Din Gitea-instans
SettGITEA_SYNC_URL til nettadressen til instansen din, dens ROOT_URL, den du åpner repositorier med i nettleseren. REST-API-et utledes fra denne:
Gitea som leveres under en understi, fungerer også, f.eks.
GITEA_SYNC_URL=https://example.com/gitea. Sett bare GITEA_SYNC_API_URL når instansen din leverer API-et et annet sted, for eksempel bak en API-gateway.
Hvis instansen din bruker et sertifikat fra en privat CA, monterer du CA-sertifikatet i containeren og lar
NODE_EXTRA_CA_CERTS peke til det, f.eks. NODE_EXTRA_CA_CERTS=/var/lib/overleaf/certs/gitea-ca.pem.Koblede kontoer og prosjekter tilhører instansen de ble koblet til. Før du bytter
GITEA_SYNC_URL til en annen instans, må du be brukerne om å koble fra Gitea-kontoen og prosjektene sine.GITEA_SYNC_PROXY_URL=http://10.0.0.1:10808. Det må være en vanlig HTTP/HTTPS-videresendingsproxy, og den må ikke bruke 127.0.0.1.
Hvem kan koble til og synkronisere
I likhet med Overleaf Cloud er det bare prosjekteieren som kan koble et prosjekt til et Gitea-repositorium. Når det er koblet til, kan alle samarbeidspartnere med redigeringstilgang synkronisere det.- Overleaf kommuniserer med Gitea via Gitea-kontoen til brukeren som synkroniserer, så alle samarbeidspartnere som synkroniserer, kobler til sin egen Gitea-konto og må ha tillatelse til å pushe til standardgrenen i repositoriet.
- Samarbeidspartnere med kun lesetilgang kan ikke bruke Gitea-synkronisering for prosjektet.
- Når du kobler fra kontoen i Overleaf, glemmes tokenet. Gitea har ikke noe API for å tilbakekalle det, så trekk også tilbake tillatelsen under Settings → Applications i Gitea hvis du ønsker det.
Slik fungerer synkronisering med Gitea
- Tillatelser: brukere må ha tillatelse til å pushe til standardgrenen i det koblede repositoriet. Når en grenbeskyttelsesregel ikke lar brukeren pushe til den, ber Overleaf dem kontakte prosjekteieren, som for et repositorium de har mistet tilgang til.
- Sammenslåing: når et prosjekt er endret både i Overleaf og i Gitea, committer Overleaf endringene sine til en midlertidig gren kalt
overleaf-YYYY-MM-DD-HHMMSSog slår den sammen via en pull request med repositoriets standard sammenslåingsstil, fordi Gitea ikke har noe API for å slå sammen grener uten. Etter sammenslåingen sletter Overleaf den midlertidige grenen. Den sammenslåtte pull requesten blir liggende i repositoriet som dokumentasjon. - Regler for sammenslåing: Overleaf omgår aldri repositoriets grenbeskyttelse. Når pull requesten har en konflikt, eller krever godkjenninger eller vellykkede statuskontroller, forblir den åpen, og Overleaf ber brukeren slå den sammen i Gitea og deretter fortsette synkroniseringen.
- CI-arbeidsflyter: Overleaf viser ikke punktumfiler som
.gitea/workflows/, og lar dem være som de er i repositoriet. Commits fra Overleaf starter Gitea Actions som alle andre commits.
Q&A
Kan jeg force-pushe til standardgrenen?
Kan jeg force-pushe til standardgrenen?
Svar: La force push til standardgrenen være deaktivert, f.eks. med en grenbeskyttelsesregel. Overleaf kan overta en omskrevet gren, men Gitea-synkronisering er laget for en standardgren der historikken bare vokser.
Støtter Gitea-synkronisering Git LFS?
Støtter Gitea-synkronisering Git LFS?
Svar: Nei. Overleaf-prosjekter støtter ikke Git Large File Storage. Filer som spores av Git LFS, vises i Overleaf som LFS-pekerfiler, ikke med innholdet sitt. Commit heller bilder og PDF-er direkte til repositoriet.
Fungerer det med SHA-256-repositorier?
Fungerer det med SHA-256-repositorier?
Svar: Ikke ennå. Overleaf sammenligner filer etter SHA-1-ID-ene deres, så i et repositorium som er opprettet med objektformatet SHA-256, skriver hver pull om alle filer, også uendrede. Ingenting går tapt, men bruk standardformatet SHA-1.
Fungerer det med Forgejo?
Fungerer det med Forgejo?
Svar: Gitea-synkronisering er bygget og testet kun mot Gitea.

