infra/git-bridge

Git Bridge

Phase 1 provides a deterministic, one-shot forward sync from Gitea Main to GitHub Main. The job refuses divergence and never force-pushes.

Run after this change is merged and deployed:

docker compose --profile git-bridge run --rm --no-deps git-bridge

GitHub remains a development workspace. Production deployment continues to use only Gitea Main.

GitHub branch import

Import one reviewed cloud-development branch at a time:

sudo env GITHUB_BRANCH=codex/example \
  /volume2/docker/infra/git-bridge/bin/import-github-branch.sh

Accepted prefixes are codex/, grok/, and cloud/. Before a normal push to the same Gitea branch and creation of a Gitea pull request, the importer checks that both Main branches match, the candidate descends from Main, an existing Gitea branch can fast-forward, the canonical Compose renders, shell scripts parse, and no known secret or runtime-data path is tracked. It never merges, deploys, force-pushes, deletes a branch, or writes Main.