Files
claude-botandClaude Opus 5.5 76a82f7d28
ci/woodpecker/pr/ci-scripts-test Pipeline was successful
review-bot reviewed: comment
ci/woodpecker/pr/ci-manifests-test Pipeline was successful
feat(home-assistant): config-sync authenticates as ha-config-sync, remote from the manifest
The sidecar took its git remote, Gitea API base and token from a URL with an
embedded PAT stored on the config PVC. That state was invisible to git,
unrotated, and would break on the repo transfer to konairius: the live -> main
PR is opened with an API POST, and Gitea API writes do not survive the old-path
redirect (seen with the wiki on notes).

- ha-config-sync: dedicated Gitea account, write collaborator on homeassistant.
  CronJob openbao/ha-config-sync-secret-rotate (quarterly) mints its
  write:repository PAT, verifies pull+push on homeassistant and stores it at
  infrastructure/ha-config-sync#token. Policy/role applied and the path seeded
  on 2026-10-18. Netpol halves gitea-allow-ha-config-sync-rotator and
  rotator-ha-config-sync-egress.
- ExternalSecret home-assistant-config-sync-gitea, mounted as a file (not
  subPath) so a rotation lands in place without restarting Home Assistant.
- config-sync.sh: GITEA_URL/GITEA_REPO/GITEA_USER/GITEA_TOKEN_FILE from the
  manifest; the remote is reset to the credential-free URL on every start; git
  gets the token as an http.extraHeader through GIT_CONFIG_* env, re-read every
  loop; the PR call uses the same token.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 20:28:15 +02:00
..