SeaMeet Desktop is here — Record everything, miss nothing. Download free →

GitHub-synk-opsætning

Kapitel 38: GitHub-synk-opsætning

GitHub-synkronisering forvandler dit SeaMeet-arbejdsområde til et privat, versionsstyret Markdown-træ, der lever i dit eget GitHub-repository. Hver gang du redigerer en note, omdøber en optagelse eller justerer en wiki-side, committer SeaMeet stille ændringen i baggrunden og skubber den til GitHub. Åbn SeaMeet på en anden laptop, og dine noter trækkes ned ved første lancering — ingen Dropbox i midten, ingen Seasalt-server i loopet. Repo'et er dit, dataene er dine, og du kan gennemse det direkte på github.com, hvis du nogensinde vil.

Modellen er enkel: dit GitHub-repository er lagringen. SeaMeet kører ikke en synktjeneste. Den installerer en lille GitHub-app på din konto, får en pr.-bruger OAuth-token og bruger den token til at skubbe og trække Git-commits direkte. Fordi lagringen er GitHubs gratis tier — som giver dig ubegrænsede private repos — er synk effektivt gratis. Og fordi hvert SeaMeet-arbejdsområde er sit eget repository, kan du holde arbejde og personlige arbejdsområder fuldstændigt adskilt.


Kapitelmål

Efter at have læst dette kapitel vil du være i stand til at:

  • Installere SeaMeet GitHub-appen på din konto eller organisation
  • Autorisere SeaMeet over OAuth og lade den oprette et privat synk-repository for dig
  • Læse synk-statusbjælken og forstå hver tilstand i synk-tilstandsmaskinen
  • Genkende, hvornår OAuth har auto-opdateret i baggrunden, og hvornår du skal re-autorisere manuelt
  • Løse en synk-konflikt, når den samme note er blevet redigeret på to enheder
  • Finjustere Sync-indstillingspanelet (auto-synk, synk-interval, synk ved opstart)
  • Fejlfinde de mest almindelige fejlsituationer

Forudsætninger

Inden du starter, så sørg for, at du har:

  • En GitHub-konto — gratis tier er fint; du behøver ikke GitHub Pro
  • En aktiv synk-rettighed — inkluderet i BYOK Pro- og Sync Pro-niveauer. Hvis dit faktureringsniveau ikke inkluderer synk, viser Sync-indstillingsskærmen et "Abonner for at aktivere synk"-banner. Se Kapitel 35: Abonnement og fakturering for plandetaljer.
  • Et arbejdsområde åbent i SeaMeet — synk vedhæfter sig det aktive arbejdsområde, ikke appen som helhed. Hvis du har flere arbejdsområder, er hver sit eget GitHub-repository.
  • Fungerende internetadgang — opsætningsflowet åbner GitHub i din standardbrowser

Et repo pr. arbejdsområde. SeaMeet opretter et separat privat repository for hvert arbejdsområde, du forbinder. Dette holder arbejdsnotater og personlige noter rent isoleret og betyder, at du kan frakoble et uden at røre det andet.


Trin-for-trin opsætning

Førstegangs-opsætningen tager omkring 90 sekunder: autorisér SeaMeet på GitHub, lad den oprette dit repo, vent på den indledende upload, og du er færdig.

Trin 1: Åbn Sync-indstillinger

  1. Klik på Indstillinger gear-ikonet
  2. Åbn Sync-fanen i venstre rail
  3. Du vil se "Sync med GitHub"-headerkortet

Hvis du ikke ser Sync-fanen, inkluderer dit abonnementsniveau ikke synk — se kapitel 35 for at opgradere.

Hvis du ser et banner, der lyder "Sikkerhedskopier dine noter til et privat GitHub-repo med BYOK Pro", har du en gratis konto. Klik på banneret for at åbne paywall'en, eller spring resten af dette kapitel over, indtil du har abonneret.

Trin 2: Klik på "Opsæt GitHub-synk"

Sync-indstillingernes tomme tilstand viser tre fordels-fliser ("Gratis og privat", "Effektivt ubegrænset", "Et repo pr. arbejdsområde") og en primær Opsæt GitHub-synk-knap i bunden.

Klik på den. Din standardbrowser åbner til en GitHub-autorisationsside.

Trin 3: Installer SeaMeet GitHub-appen (en gang)

Første gang du autoriserer SeaMeet, vil GitHub bede dig om at installere SeaMeet GitHub-appen på din konto. Dette er et engangs-trin pr. GitHub-konto (eller pr. organisation, hvis du vil synkronisere til et org-ejet repo).

På GitHub-installationssiden:

  1. Vælg kontoen eller organisationen, du vil have SeaMeet til at skrive til
  2. Vælg enten "All repositories" eller "Only select repositories" — SeaMeet-appen har brug for contents: write- og administration: write-tilladelser, så den kan oprette synk-repo'et på dine vegne
  3. Klik Install & Authorize

GitHub bouncer dig tilbage til SeaMeet. Sync-indstillingspanelet viser nu:

┌──────────────────────────────────────────────────────┐
│   ✓ Autoriseret                                      │
│   ⟳ Opretter repository og uploader...               │
└──────────────────────────────────────────────────────┘

Hvorfor en GitHub-app og ikke en almindelig OAuth-token? GitHub-apps har finkornede pr.-repo-tilladelser og roterende opdateringstokens. SeaMeet har kun nogensinde skriveadgang til de repos, du eksplicit har valgt, og OAuth-adgangstokenet udløber hver 8. time — selv hvis det lækkede, ville vinduet være lille. (Se OAuth auto-opdatering-afsnittet nedenfor for, hvordan SeaMeet holder det usynligt for dig.)

Trin 4: Repository-oprettelse (automatisk)

SeaMeet kalder nu GitHub-API'et på dine vegne og:

  1. Opretter et privat repo opkaldt efter dit arbejdsområde (f.eks. seameet-work-notes)
  2. Initialiserer et lokalt Git-repo inde i din arbejdsområde-mappe, hvis et ikke allerede findes
  3. Kører git init, skriver en .gitignore, der udelukker lyd/video/skærmbillede-filer, og laver en indledende commit
  4. Tilføjer det nye GitHub-repo som origin
  5. Skubber den indledende commit

Du vil se statusbjælken nederst i sidebjælken gå gennem:

Opretter repository...  →  Synker...  →  Synket · lige nu

Det er det. Dit arbejdsområde er nu understøttet af GitHub.

Trin 5: Første synk kører automatisk

Fra nu af auto-committer SeaMeet hver 5. minut (som standard), hver gang du har ugemte ændringer, og skubber til GitHub straks efter hver commit. Ved næste lancering af SeaMeet trækker appen fra GitHub, før du overhovedet begynder at redigere — så ændringer foretaget på en anden enhed vises i det øjeblik, appen åbner.


Synk-tilstandsmaskinen

SeaMeets SyncManager kører en lille tilstandsmaskine og broadcaster sin nuværende tilstand til rendereren. Sidebjælkens SyncStatusBar og Sync-indstillingspanelet læser begge fra denne tilstand. At forstå tilstandene hjælper dig med at læse UI'en nøjagtigt.

                      ┌─────────────┐
                      │    idle     │ ◄──────┐
                      └──────┬──────┘        │
                             │ filændring    │
                             ▼               │
                      ┌─────────────┐        │
                ┌────►│   pending   │        │
                │     └──────┬──────┘        │
       fil-     │            │ commit-timer  │
       ændring  │            ▼               │
                │     ┌─────────────┐        │
                │     │ committing  │        │
                │     └──────┬──────┘        │
                │            ▼               │
                │     ┌─────────────┐        │
                │     │   pushing   │        │
                │     └──────┬──────┘        │
                │            ▼               │
                │     ┌─────────────┐        │
                │     │   synced    │── 5s ──┘
                │     └─────────────┘
                │
                │     ┌─────────────┐
                ├─────┤   pulling   │  (opstart eller push-afvist)
                │     └─────────────┘
                │
                │     ┌─────────────┐
                ├─────┤  conflict   │  → bruger løser → syncing → synced
                │     └─────────────┘
                │
                │     ┌─────────────┐
                ├─────┤   offline   │  → netværk tilbage → prøv igen
                │     └─────────────┘
                │
                │     ┌─────────────┐
                ├─────┤   timeout   │  → bruger klikker Prøv igen
                │     └─────────────┘
                │
                │     ┌────────────────┐
                └─────┤ token-expired  │ → re-autorisér-kort
                      └────────────────┘

Her er, hvad hver tilstand betyder i UI'en:

TilstandStatusbjælkeetiketHvad det betyder
idle"Synket · for 2 min siden"Intet ventende, sidste commit var ren
pending"Afventer..."Du har ugemte ændringer; commit-timer affyrer på næste interval
committing"Synker..."En Git-commit er i gang lokalt
pushing"Skubber..."Lokal commit færdig; skubber til GitHub
pulling"Trækker..."Enten opstartssynk, eller push blev afvist, og vi trækker først
syncing"Synker..."Afslutter en rebase efter konfliktløsning
synced"Synket · lige nu"Lige-afsluttet succes; vist i 5 sekunder, derefter vender tilbage til inaktiv
conflict"Synk-konflikt"Lokal og remote redigerede begge den samme fil. UI overflader konfliktløsningsflowet.
error"Synk-fejl"En ikke-netværks-, ikke-konflikt-fejl (f.eks. git-fejl). Auto-prøver igen med eksponentielt backoff op til 5 gange.
offline"Offline"Netværk utilgængeligt. Vil prøve igen ved næste filændring eller efter 60 sekunder.
timeout"Synk timed out"En git-kommando tog længere end 60 sekunder (se Synk-timeout-beskyttelse nedenfor)
token-expired"Re-autorisér"OAuth-opdatering mislykkedes, og brugeren skal re-autorisere manuelt
installing-app"Installerer GitHub-app..."Venter på, at brugeren afslutter GitHub-app-installationstrinet i deres browser
creating-repo"Opretter repository..."Opsætningsflowet opretter GitHub-repo'et og skubber den indledende commit

Hvis statusbjælken viser en spinner, er det normal baggrundsaktivitet. Hvis den er rav eller rød, se afsnittet Fejlfinding nedenfor.


OAuth auto-opdatering

GitHub-apps udsteder brugeradgangstokens, der udløber hver 8. time, plus en opdateringstoken, der er gyldig i 6 måneder. SeaMeet administrerer dette for dig, så du næsten aldrig behøver at tænke over det.

Hvordan det virker:

  1. Når SeaMeet er ved at skubbe eller trække, tjekker SyncManager._refreshTokenIfNeeded(), om det aktuelle token udløber inden for de næste 5 minutter.
  2. Hvis ja, kalder SeaMeet GitHubs /login/oauth/access_token-slutpunkt med det gemte opdateringstoken. GitHub returnerer et nyt adgangstoken og roterer opdateringstokenet. SeaMeet skriver begge tilbage til den krypterede tokenfil på disken.
  3. Git-kommandoen kører derefter med det friskt-opdaterede token. Du ser intet på skærmen — hele opdateringen tager godt under et sekund.

Forbigående fejlhåndtering: Hvis opdateringskaldet mislykkes, fordi netværket er flakkende, eller GitHub returnerede en 5xx (en REFRESH_NETWORK_ERROR), kaster SeaMeet ikke det eksisterende token væk. I stedet går synk i offline-tilstand og prøver igen senere. Dette betyder noget, fordi det eksisterende token måske stadig er gyldigt i flere minutter mere — at smide det ud på et forbigående netværksbump ville logge dig ud af synk unødvendigt.

Samtidig opdateringskoalescering: GitHub roterer opdateringstokenet, hver gang du bruger det, så to samtidige opdateringer ville løbe, og en ville ugyldiggøre den anden. SeaMeet kollapser samtidige opdateringskald til et enkelt in-flight-Promise (_refreshPromise), så opstartssynk og push-med-genprøv aldrig slås om det roterende token.

Når opdatering virkelig fejler: Hvis GitHub returnerer REFRESH_TOKEN_EXPIRED — hvilket betyder, at 6-måneders opdateringstokenet er udløbet eller blevet tilbagekaldt — vil SeaMeet:

  1. Slette den krypterede tokenfil fra disken
  2. Gå ind i token-expired-terminaltilstand
  3. Vise et rav-kort i Sync-indstillinger:
┌──────────────────────────────────────────────────────┐
│ ⚠  GitHub-autorisation er udløbet. Vær venlig at     │
│    re-autorisere for at genoptage synkning.          │
│                                                      │
│  [ ↻ Re-autorisér GitHub ]                           │
└──────────────────────────────────────────────────────┘

Klik på Re-autorisér GitHub. Du sendes tilbage gennem OAuth-flowet — men fordi GitHub-appen allerede er installeret, er det et enkelt klik for at bekræfte, og du er færdig på omkring 10 sekunder. SeaMeet stripper derefter ethvert forældet token fra din lokale git config (det gamle token kan være indlejret i origins URL), før det næste push, så du ikke loop'er på et dødt legitimationsbevis.


Synk-timeout-beskyttelse

Git-kommandoer kan hænge for evigt, hvis et netværk går stille midt-overførsel — en TCP-socket kan sidde i en halv-åben tilstand uden nogensinde at rejse en fejl. SeaMeet indpakker hvert Git-push og pull i en 60-sekunders AbortController-timeout.

Hvis et push eller pull ikke afsluttes på 60 sekunder, vil SeaMeet:

  1. Afbryde git-subprocessen
  2. Gå ind i timeout-tilstand
  3. Vise et rav-kort i Sync-indstillinger:
┌──────────────────────────────────────────────────────┐
│ ⚠  Synk timed out. Dette kan skyldes et netværks-    │
│    problem eller udløbet GitHub-autorisation.        │
│                                                      │
│  [ ↻ Prøv synk igen ]   [ Re-autorisér GitHub ]      │
└──────────────────────────────────────────────────────┘

Prøv synk igen kører commitNow igen. Dette er den rigtige knap at klikke på, hvis du tror, dit netværk lige droppede kort. Re-autorisér GitHub kører OAuth-flowet igen; klik på dette, hvis timeout fortsætter med at gentage sig, hvilket normalt betyder, at dit token er problemet snarere end netværket.

Statusen vender tilbage til idle automatisk efter omkring 30 sekunder, selv hvis du ikke klikker på noget — synk vil prøve igen ved næste filændring.


Konfliktløsning

En konflikt opstår, når den samme fil er blevet redigeret på to enheder siden sidste synk. Eksempel: du skrev et afsnit i meetings/2026-06-03-standup.md på din laptop, og redigerede senere det samme afsnit på en vens maskine. Når den anden enhed skubber, afviser GitHub pushet, fordi historikerne afviger.

SeaMeet håndterer dette ved at:

  1. Trække de eksterne ændringer med en rebase
  2. Detektere flettekonflikt-markørerne
  3. Gå ind i conflict-tilstand
  4. Overflade konflikten i sidebjælkens statusbjælke (som bliver klikbar) og i Sync-indstillingernes konfliktpanel

Konfliktløsningsmodalen

At klikke på statusbjælken, når synk er i conflict, åbner Konfliktløsningsmodalen:

┌──────────────────────────────────────────────────────────┐
│  ⚠  Synk-konflikt                    1 / 2          [×]  │
├──────────────────────────────────────────────────────────┤
│                                                          │
│  "2026-06-03-standup.md" blev ændret på en anden enhed.  │
│                                                          │
│  ┌────────────────────────┐  ┌────────────────────────┐  │
│  │ ✎  Rediger manuelt     │  │ ✦  Agent-flet           │  │
│  └────────────────────────┘  └────────────────────────┘  │
│                                                          │
└──────────────────────────────────────────────────────────┘

Du har to muligheder:

Rediger manuelt — åbner konfliktfilen i dit systems standardeditor med Gits standard <<<<<<< / ======= / >>>>>>>-markører på plads. Rediger filen for at løse dem, gem, og kom derefter tilbage til SeaMeet og klik Færdig. SeaMeet stager den løste fil og fortsætter rebasen.

Agent-flet (kun BYOK Pro, kræver AI-agent konfigureret) — sender begge versioner til din konfigurerede AI-agent (GitHub Copilot eller Claude Code, se Kapitel 36: BYOK-opsætningsguide) og beder den om at producere en flettet version, der bevarer begge siders hensigt. Agentens output staget automatisk; du vil se en "Afslutter synk..."-spinner, mens rebasen afsluttes.

Hvis der er flere konflikter på én gang, viser modalen en tæller (1 / 2, 2 / 2) og chevron-pile i Sync-indstillingernes konfliktpanel, så du kan træde gennem dem én ad gangen.

"Behold mine" / "Behold deres" / "Behold begge"-muligheder kommer som naturlige valg, når du er inde i den manuelle editor: efterlad kun din versions tekst mellem markørerne, kun fjernversionens tekst eller intersperse begge. Agent-flet-knappen gør effektivt "behold begge, intelligent."

Hvad hvis du laver en fejl? Synk-konflikter er ikke-destruktive. Git beholder det originale "ours" og "theirs"-indhold i indekset, og getConflictVersions(filePath) kan hente begge på et hvilket som helst tidspunkt under løsning. Du vil ikke ved et uheld miste arbejde.


Sync-indstillingspanelet

Når du er forbundet, giver Sync-indstillinger (Indstillinger → Sync) dig en enkelt skærm med alt på ét sted:

┌─────────────────────────────────────────────────────────────┐
│  ✓ Synk og backup                                           │
│  Dine noter og wiki synkroniseres automatisk til GitHub.   │
│  Lydoptagelser, videooptagelser og skærmbilleder            │
│  synkroniseres ikke.                                        │
├─────────────────────────────────────────────────────────────┤
│  ⓘ  https://github.com/you/seameet-work-notes                │
│  🕒 Sidste synk: for 4 minutter siden                       │
├─────────────────────────────────────────────────────────────┤
│  Auto-synk                                       [ TIL ◉ ]  │
│  Synk-interval                                  [ 5 min ▾ ] │
│  Branch                                              main   │
│  Sidst synket                          for 4 minutter siden │
├─────────────────────────────────────────────────────────────┤
│  Auto-synk ved ændringer                         [ TIL ◉ ]  │
│  Synk ved opstart                                [ TIL ◉ ]  │
├─────────────────────────────────────────────────────────────┤
│  [ ⤓ Synk nu ]                                              │
├─────────────────────────────────────────────────────────────┤
│  [ ↗ Se på GitHub ]    [ Frakobl ]                          │
└─────────────────────────────────────────────────────────────┘

Kontrollerne, fra top til bund:

  • Auto-synk — master-skifter til baggrunds-commit-timeren. Fra betyder, at SeaMeet kun committer, når du klikker Synk nu.
  • Synk-interval — hvor ofte commit-timeren affyrer. Valg er 1 / 5 / 10 / 30 minutter. Standard er 5 minutter. Et 1-minuts interval er fint til aktiv notetagning; 30 minutter er godt til lav-redigerings-arbejdsområder, hvor du hellere vil batche commits.
  • Branch — Git-branchen, SeaMeet synkroniserer til. Næsten altid main. Skrivebeskyttet i UI'en.
  • Sidst synket — relativ tidsstempel for det sidste vellykkede push.
  • Auto-synk ved ændringer — når til, sker push straks efter hver lokal commit (den typiske sag). Når fra, committer SeaMeet lokalt, men skubber kun, når du klikker Synk nu. Nyttig, hvis du vil batche push (f.eks. på en målt forbindelse).
  • Synk ved opstart — når til, trækker SeaMeet fra GitHub i det øjeblik appen lanceres. Anbefales, medmindre du har en meget langsom forbindelse.
  • Synk nu — tving en øjeblikkelig commit-og-push-cyklus. Venter ikke på timeren. Nyttig, før du lukker din laptop.
  • Se på GitHub — åbner repo'et i din browser.
  • Frakobl — rydder det gemte OAuth-token, sletter den krypterede tokenfil og fjerner origin fra dit lokale Git-repo. Dine lokale Markdown-filer og Git-historik er uberørt — kun linket til GitHub er skåret.

Hvad der bliver synkroniseret (og hvad ikke)

Dette er dokumenteret i del-indekset, men det er værd at gentage her:

SynkroniseretIkke synkroniseret
Noter (.md-filer)Lydoptagelser (.webm, .mp3)
Wiki-sider (.md-filer)Videooptagelser (.webm, .mp4)
Optagelsesmanifester (metadata JSON)Skærmbilleder (.png, .jpg)
AI-sammendrag og transskriptionerCachede AI-genereringer
Wikilink-grafApp-indstillinger
.gitignoreEditor-scratch-tilstand

.gitignore, SeaMeet skriver, udelukker alle de store binære kategorier. Dette er bevidst: GitHubs gratis private repos kapper ved 1 GB, og en 30-minutters video ville æde det alene. SeaMeet beholder medier på din lokale disk og synkroniserer kun den letvægts Markdown.

Hvis du vil have fuld mediesynk, er det Sync Pro-tier — se kapitel 35.


Fejlfinding

"Autorisation mislykkedes" lige efter klik på Opsæt GitHub-synk

Årsager og rettelser:

  • Pop-up-blokering — hvis intet browservindue åbnede, kan dit OS eller browser have blokeret lanceringen. Klik Opsæt GitHub-synk igen, og bekræft eventuelle pop-up-prompts.
  • Du nægtede GitHub-app-tilladelser — gå tilbage gennem flowet og acceptér contents: write + administration: write-scopes. Uden administration: write kan SeaMeet ikke oprette repo'et for dig.
  • Tilstands-mismatch-fejl — luk eventuelle andre SeaMeet-vinduer, der kan løbe på det samme OAuth-flow, og prøv derefter igen.

"Repo-tilladelser"-fejl under opsætning

Fejlen lyder noget i retning af "GitHub-appen har 'contents: read'-tilladelse, men har brug for 'contents: write'." Dette betyder, at du installerede en ældre version af appen.

Fix:

  1. Åbn github.com/settings/installations
  2. Find SeaMeet i listen, og klik Configure
  3. Under Repository permissions skal du ændre Contents og Administration til Read and write
  4. Gem, og afinstallér og geninstallér derefter appen — GitHub anvender kun nye tilladelser ved geninstallation
  5. Genkør Opsæt GitHub-synk i SeaMeet

"Kunne ikke nå GitHub" / synk stuck på "Offline"

Netværksfejl. SeaMeet vil automatisk prøve igen, når:

  • Du foretager en hvilken som helst filændring (udløser et øjeblikkeligt genprøvningsforsøg)
  • 60 sekunder forløber siden sidste genprøvning

Hvis dit netværk er tilbage, og synk stadig viser Offline efter et par minutter:

  1. Klik Synk nu for at tvinge et genprøvningsforsøg
  2. Hvis det timer ud: tjek, at din firewall ikke blokerer github.com
  3. Som en sidste udvej, genstart SeaMeet — opstartssynkningen vil affyre ved lancering

Synk stuck på "Afventer"

Dette betyder normalt, at auto-commit-timeren ikke har affyret endnu. Som standard affyrer den hvert 5. minut. Vil du ikke vente? Klik Synk nu.

Hvis Synk nu ikke flytter synk forbi Afventer, tjek:

  • Er du på et faktureringsniveau, der inkluderer synk? Åbn Sync-indstillinger — hvis du ser abonner-banneret, er synk deaktiveret på rettighedslaget.
  • Er der ucommittede ændringer uden for Markdown-træet? Auto-commit-timeren affyrer kun, når _pendingChanges ikke er tom.

"Jeg ser token-expired-kortet"

Dette er den forventede slutning af OAuth-opdateringslivscyklussen — dit 6-måneders opdateringstoken er udløbet, eller du har tilbagekaldt GitHub-appen, eller du har ændret din GitHub-adgangskode (som ugyldiggør alle OAuth-tokens).

Fix: klik Re-autorisér GitHub i kortet. Flowet er det samme som den indledende opsætning, men springer GitHub-app-installationstrinet over (du har allerede installeret det). Tager omkring 10 sekunder.

Konfliktløsningspanel vil ikke lukke

Panelet lukker kun, når alle konflikter i listen er løst. Hvis du ser tælleren (1 / 3), så brug chevron-pilene i Sync-indstillingernes konfliktpanel til at træde gennem de resterende filer. Hver enkelt har brug for en eksplicit løsning (manuel redigering + Færdig eller Agent-flet).

Hvis panelet insisterer på, at der er konflikter, men du ikke ser nogen markører i dine filer, så klik Synk nu — en forældet conflict-tilstand vil blive ryddet ved det næste vellykkede synk-forsøg.

"Push afvist"-loops

Hvis synk veksler mellem pushing og pulling gentagne gange, afviser GitHub dine push, fordi remoten fortsætter med at bevæge sig fremad. Dette kan ske, hvis:

  • En anden SeaMeet-instans kører mod det samme repo og skubber hurtigere, end denne kan indhente — luk den anden instans.
  • Nogen (eller et eller andet værktøj) committer til GitHub-repo'et uden for SeaMeet — pause det eksterne værktøj, indtil din lokale klon indhenter.

Sikkerhedsnoter

Hvor OAuth-tokenet er gemt: i dit OS-nøglering via Electrons safeStorage API. På Windows er det DPAPI, på macOS er det Keychain Services, på Linux er det libsecret. Den krypterede blob skrives til <userData>/github-token.enc med filtilstand 0o600. Filen indeholder adgangstokenet, opdateringstokenet, udløbs-tidsstemplet og GitHub-appens klient-ID, klienthemmelighed og slug.

Hvad der ikke er gemt i argv: OAuth-tokenet sendes aldrig som et -c http.extraHeader=...-argument til git, fordi argv er synlig for andre brugere via ps aux. I stedet injiceres Authorization-headeren gennem GIT_CONFIG_PARAMETERS-miljøvariablen, som er privat for processen. Andre brugere på den samme maskine kan ikke se dit token.

Hvad der ender på disken i repo'et: almindelige Markdown-filer. Ingen tokens, ingen hemmeligheder, ingen legitimationsoplysninger. .gitignore udelukker mediefiler, men du bør stadig undgå at indsætte hemmeligheder i note-kroppe — disse vil synkronisere.

Tilbagekaldelse af adgang: for at skære SeaMeets adgang til et repo straks, afinstallér SeaMeet GitHub-appen på github.com/settings/installations. Det næste synk-forsøg vil fejle med token-expired, og SeaMeet vil rydde sit lokale token. Dine lokale noter er uberørt.


Hurtig reference

┌─────────────────────────────────────────────────────────────┐
│                  GITHUB-SYNK                                │
│                  Hurtig reference                           │
├─────────────────────────────────────────────────────────────┤
│  Åbn Sync-indstil.   │ Indstillinger → Sync                 │
│  Førstegangsopsætning│ Klik "Opsæt GitHub-synk"             │
│  Påkrævede scopes    │ contents: write, admin: write        │
│  Repo-navngivning    │ Et privat repo pr. arbejdsområde     │
├─────────────────────────────────────────────────────────────┤
│  Standard synk-interval│ 5 minutter (1 / 5 / 10 / 30)       │
│  Tving en synk       │ "Synk nu"-knap                       │
│  Auto-synk ved push  │ Til (skifter i Sync-indstillinger)   │
│  Synk ved opstart    │ Til (skifter i Sync-indstillinger)   │
├─────────────────────────────────────────────────────────────┤
│  OAuth opdaterings-margen│ 5 minutter før udløb            │
│  Git-kommando-timeout │ 60 sekunder (AbortController)       │
│  Auto-genprøvningsgrænse│ 5 forsøg, eksp. backoff          │
│  Tokenlagring        │ OS-nøglering (safeStorage)           │
├─────────────────────────────────────────────────────────────┤
│  Konflikt-UI         │ Klik på statusbjælken ved konflikt   │
│  Manuel løs          │ Rediger markører → Færdig            │
│  Agent-flet          │ BYOK Pro + AI-agent konfigureret     │
├─────────────────────────────────────────────────────────────┤
│  Frakobl             │ Sync-indstillinger → Frakobl         │
│  Tilbagekald fra GitHub│ github.com/settings/installations  │
│  Se repo             │ "Se på GitHub"-link                  │
└─────────────────────────────────────────────────────────────┘

Sidst opdateret: 2026-06-04

Kapitel 37: GitHub Copilot-udbyder | (slutning af manual — vend tilbage til Indeks)

Published: