Denne funksjonen er utviklet av ayaka-notes/ayakaleaf-pro og modifisert av yu-i-i/overleaf-cep. Den er introdusert fra og med v6.2.0. Den er fortsatt i betastatus. Vi trenger tilbakemeldingen din hvis du får problemer.




Sette opp GitHub-synkronisering
Gå til utviklerinnstillingene for å opprette GitHub OAuth-applikasjonen din, og kopierCLIENT_ID og SECRET.
Merk: når du oppretter OAuth-appen, skriver du inn ${OVERLEAF_SITE_URL}/user/github-sync/oauth2/callback i Authorization callback URL. Ayakaleaf Pro bygger den samme adressen fra OVERLEAF_SITE_URL, så det er ingenting å angi for den i config/variables.env.
Legg deretter til følgende innstillinger i Overleaf-miljøvariabelfilene dine.
config/variables.env
GITHUB_SYNC_PROXY_URL=http://10.0.0.1:10808. Sørg for at bruken av proxy er i samsvar med lokale lover og forskrifter.
GitHub Enterprise
Støtte for GitHub Enterprise er introdusert fra og med v6.3.1. Tidligere versjoner kobler bare til
github.com, og variablene nedenfor har ingen effekt.github.com. For å bruke GitHub Enterprise Server (selvdriftet) eller GitHub Enterprise Cloud med datalagring i bestemt region (GHE.com), setter du GITHUB_SYNC_URL til nettadressen til instansen din, den du åpner repositorier med i nettleseren.
config/variables.env
GITHUB_SYNC_URL på samme måte som GitHub CLI gjør:
Sett bare API-endepunktene når instansen din leverer dem 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/github-ca.pem.Koblede kontoer og prosjekter tilhører instansen de ble koblet til. Før du bytter
GITHUB_SYNC_URL til en annen instans, må du be brukerne om å koble fra GitHub-kontoen og prosjektene sine.Hvem kan koble til og synkronisere
I likhet med Overleaf Cloud er det bare prosjekteieren som kan koble et prosjekt til et GitHub-repositorium. Når det er koblet til, kan alle samarbeidspartnere med redigeringstilgang synkronisere det.- Overleaf kommuniserer med GitHub via GitHub-kontoen til brukeren som synkroniserer, så alle samarbeidspartnere som synkroniserer, kobler til sin egen GitHub-konto og må ha tillatelse til å pushe til standardgrenen i repositoriet.
- Samarbeidspartnere med kun lesetilgang kan ikke bruke GitHub-synkronisering for prosjektet.
Q&A
Hvordan kobler jeg et prosjekt til GitHub og synkroniserer det?
Hvordan kobler jeg et prosjekt til GitHub og synkroniserer det?
Svar: Åpne Integrations i editoren og klikk GitHub. Hvis GitHub-kontoen din ikke er koblet til ennå, klikker du først Link to your GitHub account. I Export Project to GitHub skriver du inn et repositorinavn, velger Private under Repository visibility og klikker Create a GitHub repository.Deretter åpner det samme kortet Sync with GitHub, som viser de nye commitene i GitHub. Klikk Sync for å committe Overleaf-endringene dine til standardgrenen og hente GitHub-endringene inn i prosjektet. Synkroniseringen går begge veier, men kjører bare når noen klikker Sync; det finnes ingen planlagt synkronisering. Når begge sider er endret, fletter Overleaf via en midlertidig gren med navnet
overleaf-YYYY-MM-DD-HHMMSS. Hvis den flettingen har en konflikt, fletter du grenen i GitHub selv og klikker deretter I have manually merged. Continue.Kan jeg force-pushe til standardgrenen?
Kan jeg force-pushe til standardgrenen?
Svar: Vi anbefaler det ikke. Overleaf oppdager en force push, advarer om den og overtar den omskrevne grenen, og slår sammen endringene som er gjort i Overleaf siden forrige synkronisering. For å unngå overraskelser bør du beskytte standardgrenen mot force push i innstillingene for repositoriet.
GitHub-synkronisering viser «Something wrong with GitHub request»
GitHub-synkronisering viser «Something wrong with GitHub request»
Svar: Denne meldingen betyr at serveren ikke kunne nå GitHub, for eksempel på grunn av et problem med nettverk, DNS, TLS eller proxy. Kjør
bin/logs web for å se hele feilen. Hvis serveren trenger en proxy for å nå GitHub, setter du GITHUB_SYNC_PROXY_URL.Bør jeg deaktivere «Expire user access tokens» i GitHub OAuth-appen?
Bør jeg deaktivere «Expire user access tokens» i GitHub OAuth-appen?
Svar: Ja. GitHub-synkroniseringen fornyer ikke utløpte tokener. Med utløpende tokener aktivert må brukerne koble til GitHub på nytt hver gang tokenet deres utløper.
Må instansen min være tilgjengelig fra internett?
Må instansen min være tilgjengelig fra internett?
Svar: Nei. Kobling av en konto går gjennom brukerens nettleser, så OAuth-callback-adressen trenger bare å kunne åpnes i brukerens nettleser. Serveren trenger bare å nå GitHub; hvis den trenger en proxy til det, setter du
GITHUB_SYNC_PROXY_URL. GitHub kaller aldri instansen din: et prosjekt synkroniseres bare når en bruker synkroniserer det i editoren.Kobling av GitHub-kontoen min mislykkes eller sender meg tilbake uten kobling
Kobling av GitHub-kontoen min mislykkes eller sender meg tilbake uten kobling
Svar: Kontroller disse i rekkefølge:
- Åpne Overleaf på nøyaktig den adressen som er satt i
OVERLEAF_SITE_URL. GitHub sender deg tilbake til${OVERLEAF_SITE_URL}/user/github-sync/oauth2/callback, og innloggingen din finnes bare på adressen du startet fra, så en annen vert, IP-adresse eller port ender på innloggingssiden eller på «Restricted, sorry you don’t have permission to load this page». - Authorization callback URL for OAuth-appen må være
${OVERLEAF_SITE_URL}/user/github-sync/oauth2/callback, med samme skjema, vert og port. - En feilside med
Failed to obtain access token from Git serverbetyr at GitHub ikke returnerte et token: kontrollerGITHUB_SYNC_CLIENT_IDogGITHUB_SYNC_CLIENT_SECRET, og at serveren kan nå GitHub. Kjørbin/logs webfor å se hele feilen.
config/variables.env, kjører du bin/up for å gjenopprette containerne.Import av et repositorium mislykkes med «EmptyZipFileError: empty_zip_file» eller «unzip failed»
Import av et repositorium mislykkes med «EmptyZipFileError: empty_zip_file» eller «unzip failed»
Svar: Overleaf importerer zip-arkivet for den siste commiten på repositoriets standardgren, og denne feilen betyr at arkivet ikke inneholder noen fil som Overleaf kan importere. Kontroller standardgrenen på GitHub:
- Den inneholder prosjektfilene, ikke bare filer som Overleaf hopper over ved import: punktumfiler som
.gitignoreog.gitmodules(.latexmkrcbeholdes), og byggefiler som*.aux,*.log,*.bbl,*.synctex.gz,*.docog*.docx. - Filene ligger ikke bare inne i Git-submoduler. GitHubs arkiv lar submoduler stå som tomme mapper.
- Filene du forventer, ligger på standardgrenen, ikke på en annen gren. Import bruker alltid standardgrenen.

