GitHub Command Guide (si github)
si github supports GitHub REST/GraphQL using either GitHub App auth or OAuth token auth.
Related:
Auth policy:
appmode: GitHub App installation tokensoauthmode: OAuth access token / token-based auth (including PAT-style tokens)- Credentials should be injected from
si vault(or compatible env keys).
Credential Keys (Vault-Compatible)
Per account alias<ACCOUNT> (uppercase slug):
GITHUB_<ACCOUNT>_APP_IDGITHUB_<ACCOUNT>_APP_PRIVATE_KEY_PEMGITHUB_<ACCOUNT>_INSTALLATION_ID(optional)GITHUB_<ACCOUNT>_OAUTH_ACCESS_TOKENGITHUB_<ACCOUNT>_TOKEN
GITHUB_APP_IDGITHUB_APP_PRIVATE_KEY_PEMGITHUB_INSTALLATION_IDGITHUB_OAUTH_TOKENGITHUB_TOKENGH_TOKENGITHUB_API_BASE_URLGITHUB_DEFAULT_OWNERGITHUB_DEFAULT_ACCOUNTGITHUB_AUTH_MODEGITHUB_DEFAULT_AUTH_MODE
Context
Git Remotes (No PAT URLs)
Use GitHub App tokens throughsi vault as a Git credential helper, then normalize remotes to PAT-free HTTPS URLs:
--remote <name>: choose a remote other thanorigin--helper-owner <owner>: force a fixed owner in helper calls (default derives from remote path)--no-vault: use direct env lookup instead of wrapping helper calls withsi vault run--dry-run: preview remote/helper changes without writing
Troubleshooting Git App Access
If fetch/push still fails after setup:Repository not foundfor private repos usually means the app installation does not include that repo.github app installation id is requiredmeans owner/repo context could not map to an installation; pass--owner/--helper-owneror setGITHUB_<ACCOUNT>_INSTALLATION_ID.
Repositories
Branches and Protection
Pull Requests
Issues
Workflows
Releases
Secrets
si github fetches the target public key, encrypts plaintext with sealed-box compatible encryption, then upserts the secret.
Raw REST / GraphQL
Error Reporting
On failures,si github surfaces:
- HTTP status
- request id (
X-GitHub-Request-Id) - API message and documentation URL
- structured
errorswhen present - redacted raw body for debugging
