docs: git releases rfc#1014
Conversation
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughA new RFC document was added that describes an approach to auto-create deployment versions from GitHub release webhooks using CEL selectors stored in deployment metadata, including end-to-end flow specifications, webhook verification, selector evaluation logic, and error handling behavior. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Adds a draft RFC describing a proposed GitHub release webhook integration that auto-creates Ctrlplane deployment versions by evaluating a CEL selector stored in deployment metadata.
Changes:
- Introduces RFC 0011 documenting the problem of mapping GitHub releases to deployments (especially for monorepos).
- Proposes a single
git/release-selectorCEL metadata key and an evaluation flow for release events. - Defines the intended CEL evaluation context and outlines basic error-handling behavior.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| previousTag: string | null // compare API | ||
| changedPaths: string[] // compare API | ||
| commits: { sha, message, author }[] // compare API | ||
| ``` | ||
|
|
||
| Only the bottom block requires an API call (`GET /repos/{o}/{r}/compare/{prev}...{tag}`). | ||
|
|
| 1. `release` webhook hits `apps/api/src/routes/github/release.ts`. | ||
| 2. Verify signature, resolve installation. | ||
| 3. Build CEL context. | ||
| 4. For every deployment with `git/release-selector` in metadata, evaluate. | ||
| 5. Match → create deployment version with `release.tag_name` as the version. |
Summary by CodeRabbit