Guider
Git og GitHub i sandkassen
Hva agenten kan gjøre med git og gh i cplt, og hva du må gjøre selv.
brew update brew upgrade navikt/tap/nav-pilot navikt/tap/cplt copilot update # Copilot CLI opencode upgrade # hvis du bruker opencode
Før første økt
SSH-nøklene dine er stengt i sandkassen, så git må bruke HTTPS med tokenet fra gh. Kjør dette i terminalen, utenfor cplt:
gh auth login gh auth setup-git git remote -v # skal vise https://github.com/...
Viser git remote -v git@github.com:, se Permission denied (publickey).
Push og pull request
Agenten kan committe, lage grener, hente, rebase og pushe egne grener. Be den pushe med grennavnet og oppgi grenen når den lager pull requesten:
git push origin HEAD:min-gren gh pr create --head min-gren
Uten terminal pusher ikke gh pr create for deg. På macOS fjerner cplt -u fra git push -u, så grenen får ingen upstream.
Det cplt stopper
To vakter står på som standard:
- Git-vakta stopper push til standardgrenen og force push.
mainogmasterer alltid beskyttet. Med sikkerhetsnivåetstrictstopper den all push. - gh-vakta lar agenten jobbe mot repoet den startet i, og stopper
gh pr merge.
Du merger selv. Hvilke nivåer som finnes, står i Sandkassen.
Andre repoer
Skal agenten jobbe i et repo til, legg det til. cplt finner utsjekkingen på maskinen og sjekker at origin er det repoet du ba om:
cplt link navikt/annet-repo
Repoet får samme tilgang som prosjektmappa: lese, skrive og kjøre.
Kjør dette utenfor cplt
På macOS er .git/config og .git/hooks skrivebeskyttet, fordi de kan få git til å kjøre kode utenfor sandkassen. Disse må du kjøre selv, i en vanlig terminal:
git configoggit config --globalgit remote addoggit remote set-urlgit clone,git initoggit submodule add- å lage eller endre git-hooks
Feilmeldingene står under Git og GitHub i Feil i sandkassen.
Push fra OpenCode
Gjelder macOS. gh auth login legger tokenet i nøkkelringen. Copilot når den, OpenCode gjør ikke, så git push fra OpenCode får ikke noe token. cplt fjerner også GH_TOKEN fra miljøet til OpenCode. Send det inn:
cplt config set sandbox.pass_env GH_TOKEN export GH_TOKEN=$(gh auth token) # i skallet du starter nav-pilot fra
Da ligger tokenet ditt i miljøet til agenten, og den kan bruke det mot GitHub uten å gå via gh-vakta.
Signerte commits
~/.gnupg og ~/.ssh er stengt, så cplt slår av signering i sandkassen. Commitene til agenten blir usignerte. Krever grenbeskyttelsen signerte commits, kan du slippe agenten til GPG-agenten din:
cplt config set sandbox.allow_gpg_signing true --force
Den private nøkkelen er fortsatt stengt, men agenten kan be GPG-agenten signere hva som helst mens økten varer. Signering med SSH-nøkkel (gpg.format=ssh) virker ikke.