Adds a single load-env.sh helper that loads the CI product's tracked .env.public before the local secret .testenv, and switches every OpenCode launcher plus the Gitea API helpers to use it. The OpenCode systemd service now reads both files in that order.
Why
GITEA_USERNAME, TINFOIL_MODEL, and TINFOIL_BASE_URL are public configuration, not credentials. Moving them out of /secrets removes 49 misleading secret-scan findings while preserving the secret boundary for passwords, API keys, and tokens. The tracked public file landed in cc-ci PR #22.
Python compilation, Bash syntax, TOML parse, and Nix syntax: PASS.
Full secret audit: 58 secret values scanned; 0 findings.
## What changed
Adds a single `load-env.sh` helper that loads the CI product's tracked `.env.public` before the local secret `.testenv`, and switches every OpenCode launcher plus the Gitea API helpers to use it. The OpenCode systemd service now reads both files in that order.
## Why
`GITEA_USERNAME`, `TINFOIL_MODEL`, and `TINFOIL_BASE_URL` are public configuration, not credentials. Moving them out of `/secrets` removes 49 misleading secret-scan findings while preserving the secret boundary for passwords, API keys, and tokens. The tracked public file landed in cc-ci PR #22.
## Evidence
- Combined shell loader: PASS.
- Python callers (`pr-survey`, `recipe-report`, `advisory-scan`): PASS.
- Python compilation, Bash syntax, TOML parse, and Nix syntax: PASS.
- Full secret audit: 58 secret values scanned; 0 findings.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What changed
Adds a single
load-env.shhelper that loads the CI product's tracked.env.publicbefore the local secret.testenv, and switches every OpenCode launcher plus the Gitea API helpers to use it. The OpenCode systemd service now reads both files in that order.Why
GITEA_USERNAME,TINFOIL_MODEL, andTINFOIL_BASE_URLare public configuration, not credentials. Moving them out of/secretsremoves 49 misleading secret-scan findings while preserving the secret boundary for passwords, API keys, and tokens. The tracked public file landed in cc-ci PR #22.Evidence
pr-survey,recipe-report,advisory-scan): PASS.