Part of #4325.
Context
GitHub delivers webhooks to a fixed URL configured on the GitHub App. The cutover moment — the instant live traffic actually starts hitting the new host instead of the current one — is the highest-risk single step in this epic and needs its own explicit plan, separate from "the new host is ready" (which the earlier sub-issues establish).
Requirements
- Decide the cutover mechanism: a DNS/reverse-proxy layer that gets repointed (preferred — the GitHub App's configured webhook URL never changes, only what's behind it) vs. directly editing the GitHub App's webhook URL at cutover time. Write down which, and why.
- Define the rollback: if the new host misbehaves shortly after cutover, what is the exact, fast action to revert traffic to the current host? This must be tested, not just described — a documented rollback that has never been executed is not a validated rollback.
- The current host must remain fully able to resume serving traffic immediately after a rollback — nothing in earlier sub-issues should leave it in a state where it can't (e.g. don't stop its queue consumer or let its Postgres fall permanently behind before cutover is confirmed stable).
Deliverables
Expected outcome
A cutover that can be executed calmly, and reversed quickly and confidently if the new host underperforms in the first hours of real traffic.
Effort
M
Part of #4325.
Context
GitHub delivers webhooks to a fixed URL configured on the GitHub App. The cutover moment — the instant live traffic actually starts hitting the new host instead of the current one — is the highest-risk single step in this epic and needs its own explicit plan, separate from "the new host is ready" (which the earlier sub-issues establish).
Requirements
Deliverables
Expected outcome
A cutover that can be executed calmly, and reversed quickly and confidently if the new host underperforms in the first hours of real traffic.
Effort
M