Where most secrets start
A repository secret is a key/value pair stored encrypted at rest in your repo's settings, available to workflows running in that repo. They're the default place to put a credential when you need one.
Set them via:
- Repo Settings → Secrets and variables → Actions → New repository secret.
- Or via CLI:
gh secret set NAME --body "value". - Or via API for automation.
Properties
- Encrypted at rest (libsodium sealed box).
- Visible to workflows triggered by people with write access. Crucially, they are not available to workflows triggered by PRs from forks (
pull_requestfrom outside contributors). - Names are uppercase by convention. Limited charset: alphanumeric + underscore. No starting with digit. No starting with
GITHUB_(reserved). - Up to 64 KB per secret.
- Up to 100 secrets per repo, 1000 per org (different limits at the environment level).