Thanks for helping improve SyncBot.
The upstream repository (F3Nation-Community/syncbot) is the shared codebase. Each deployment maintains its own fork:
| Branch | Role |
|---|---|
main |
Tracks upstream. Use it to merge PRs and to sync with the upstream repository (git pull upstream main, etc.). |
test / prod |
On your fork, use these for deployments: GitHub Actions deploy workflows run on push to test and prod (see docs/DEPLOYMENT.md). |
Typical flow: develop on a feature branch → open a PR to main → merge → when ready to deploy, merge main into test or prod on your fork.
- Fork the repository and create a branch from
main. - Open a pull request targeting
mainon the upstream repo (or the repo you were asked to contribute to). - Keep application code provider-neutral: put cloud-specific logic only under
infra/<provider>/and indeploy-<provider>.ymlworkflows. See docs/INFRA_CONTRACT.md (Fork Compatibility Policy).
- Run
pre-commit run --all-files(install withpip install pre-commit && pre-commit installif needed). - Ensure CI passes: requirements export check, SAM template lint, and tests (see .github/workflows/ci.yml).
- If you change dependencies in
pyproject.toml, refresh the lockfile andsyncbot/requirements.txtas described in docs/DEVELOPMENT.md.
Use GitHub Issues for bugs and feature ideas, or check docs/DEPLOYMENT.md for deploy-related questions.