Skip to content
Documentation

Documentation

Tokens and permissions

The exact GitHub scope required, what it is used for, and why it is not minimal.

Required scope

A classic GitHub personal access token with the repo scope — the single checkbox covering full control of the repository.

https://github.com/settings/tokens/new?description=Caretaker&scopes=repo

That link opens GitHub’s token creation form with the description and repo scope already filled in.

What it’s used for

The same token clones the repository, pushes the fix branch, opens the pull request, and — only after an explicit, single-use human authorization — merges it. It is encrypted at rest, never sent to your browser, never placed in a URL, never passed through process arguments, and redacted from error messages before they are thrown.

Why this is not minimal

Full repo scope is broader than what the system actually exercises, and we state that plainly rather than describing it as minimal permissions. Fine-grained tokens are not used today because they require selecting contents, pull request, actions, and metadata permissions individually per repository. Narrowing this is real work that has not been done, and it is listed as open on the security model page.

What Caretaker never does

It never uses administrator overrides to bypass branch protection, never dismisses a human review, and never approves its own pull requests.