Let pushes go by an HTTPS token or an SSH deploy key
CI / checks (push) Skipped
CI / checks (pull_request) Failing after 56s

The push credential is either a push-only account's token, handed to git
through a credential helper that names environment variables, never
values, or a deploy key in a short-lived ssh-agent. The remote URL
follows the credential. Configured as gitea.push_user and push_token, or
gitea.push_key.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
This commit is contained in:
dongarandClaude Opus 5.5 committed 2026-10-02 21:59:56 +00:00
1 parent 761ebdb857
commit c931ac939b
15 files changed
+241 -81

No files matched your search

+5 -4
View File
@@ -674,9 +674,10 @@ Installing on any other host is dangerous.
fresh and this one resumes from its branch.
- **Publish only the work:** what the agent changed, counted from where the
milestone started, never build artifacts; anything left out is reported.
- **Pushes run on the build VM** with a key the model's commands never receive
(L12); PRs are opened from the agent's container with its API token, which never
reaches a build VM. Gitea is the only copy that has to survive.
- **Pushes run on the build VM** with a push credential (a deploy key, or a
push-only account's token) the model's commands never receive (L12); PRs are
opened from the agent's container with its API token, which never reaches a
build VM. Gitea is the only copy that has to survive.
- **Publishing is idempotent** (L8). A milestone with no changes is done if it wasn't
expected to change code; otherwise it's raised with the operator.
- **The agent never owns or administers a repository:** whoever does can turn
@@ -727,7 +728,7 @@ execution:
**Secrets are namespaced by project.** A build VM's commands receive only their
project's, and each secret's configuration says whether the model's commands may
see it or only harness operations use it (the push key). Anything the model's
see it or only harness operations use it (the push credential). Anything the model's
commands can see must be scoped for testing, never production.
**Provisioning:** build VMs come from a template via Terraform; eventually at