Nyheter
Praksis

27. mai 2026

gh guard og git guard: blokkér destruktive kommandoer i sandbox

cplt kan nå blokkere destruktive GitHub- og git-operasjoner når AI-agenter kjører i sandbox. Én kommando skrur det på — ingen manuell config-redigering.

Problemet

Agenter er svært ivrige på å pushe koden de har skrevet — gjerne rett til main — uten review. En annen agent som fikk i oppgave å rydde opp i gamle branches, kjørte gh pr merge som del av en «cleanup-rutine» ingen hadde bedt om. Brukere kjører med fulle tilganger i gh og git på alle lokale terminaler, og det er ingen innebygde mekanismer for å begrense hva en agent kan gjøre når den først har tilgang til å kjøre kommandoer.

Kom i gang

cplt config set gh_guard.enabled true
cplt config set git_guard.enabled true

Det er alt. Neste gang du kjører cplt, blokkeres destruktive operasjoner automatisk.

Vil du teste forsiktig først?

Start i audit-modus for å se hva agenten prøver å gjøre, uten å blokkere noe:

cplt config set gh_guard.mode audit
cplt config set git_guard.mode audit

Gå til warn når du vil se advarsler, og block når du er klar til å håndheve:

cplt config set gh_guard.mode block
cplt config set git_guard.mode block

Engangskjøring uten å endre config

CLI-flagg overstyrer config for én enkelt kjøring:

cplt --gh-guard --git-guard

Hva blokkeres?

gh guard — trelagsmodell

gh guard er en default-deny policy engine som klassifiserer over 150 gh-kommandoer i tre nivåer:

NivåEksemplerTilgang
Readgh issue list, gh pr viewFungerer fritt
Writegh pr create, gh issue editBare i eget repo
Destruktivgh repo delete, gh pr mergeAlltid blokkert

gh api-kall begrenses til /repos/{current-repo}/.... Org-level og cross-repo API-tilgang blokkeres.

git guard — push-beskyttelse

git guard blokkerer git push, git request-pull og git send-pack. Alt annet — commit, branch, rebase, stash — fungerer som normalt.

Trenger agenten å pushe til en feature branch?

cplt config set git_guard.protect_default_branch_only true

Eller legg til et strukturert unntak i ~/.config/cplt/config.toml:

[[git_guard.allow_push]]
remote = "fork"
branches = ["agent/*"]
force = false

Hva ser agenten?

⛔ sandbox restriction: `gh pr merge` is not allowed.
This command is classified as destructive and blocked by gh guard.
Please make a note of this for the human operator and continue with your remaining work.

Agenten får beskjed om å rapportere tilbake til deg — ingen retry-loops.

Slik fungerer det

  • Token-isolasjon: Tokenet slettes fra filsystemet etter første lesing. Subprosesser kan ikke nå det.
  • API-scoping: Samme repo-avgrensing som over — subprosesser arver ikke bredere tilgang.
  • Sikkerhetsmodell: Policy bakes inn i wrapper-scriptet ved sandbox-oppstart. Agenten kan ikke endre reglene innenfra.

Anbefalt oppsett

For de fleste anbefaler vi dette oppsettet:

cplt config set gh_guard.enabled true
cplt config set gh_guard.mode block   # default
cplt config set git_guard.enabled true
cplt config set git_guard.mode block   # default

Fire kommandoer, full beskyttelse.


Se PR #67 for implementasjonsdetaljer og full testdekning.

Alle nyheter