Overview
Fieldkit’sweb-app repo owns shipd.config.ts. On every PR they fail CI if the file drifted from production. On merge to main they push.
Management keys (shipd_mgmt_…) carry org + project + environment. The server rejects a push to a different environment than the key’s binding.
Create the key
In app.useshipd.com create a management API key forfieldkit / web-app / production. Store it as SHIPD_API_KEY.
--org (or SHIPD_ORG) must match the key’s organization when set. It cannot switch orgs.
Check drift on PRs
.github/workflows/flags-diff.yml
Push on main
.github/workflows/flags-push.yml
--ci is the same as --yes. CI=1 or SHIPD_CI=1 also skip confirmation.
After a conflict
--force overrides CAS and is audited. Prefer pull.
Next
- How-to: Push from CI · Resolve a conflict
- CLI reference