feat: Add GitHub Action for automatic release creation - #614
Conversation
…merge - Creates GitHub releases automatically when PRs are merged to production - Extracts version from PR title or release notes - Reads release notes from dedicated files or PR body - Handles both new releases and updates to existing ones - Posts confirmation comment on PR after release creation This ensures consistent release management and automates the release process for production deployments. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| gh release edit "$VERSION" \ | ||
| --title "Release $VERSION" \ | ||
| --notes "## Release $VERSION | ||
|
|
||
| This release was automatically updated from PR #${{ github.event.pull_request.number }} | ||
|
|
||
| **PR Title:** ${{ github.event.pull_request.title }} | ||
| **Merged by:** @${{ github.event.pull_request.merged_by.login }} | ||
| **Merge Date:** ${{ github.event.pull_request.merged_at }} | ||
|
|
||
| --- | ||
|
|
||
| ${{ steps.release_notes.outputs.notes }} | ||
|
|
||
| --- |
There was a problem hiding this comment.
Escape release notes before passing to gh CLI
The update path shells the release notes directly into gh release edit via --notes "… ${{ steps.release_notes.outputs.notes }} …". Because the expression is interpolated before the script runs, any double quotes, backticks, or command substitutions in the release notes (which can easily appear in PR bodies or markdown files) will break the surrounding quoted string and cause the job to fail whenever it tries to update an existing release. Consider piping the notes through --notes-file or a heredoc so the CLI receives the content without being interpreted by the shell.
Useful? React with 👍 / 👎.
Summary
Features
How it works
productionbranchrelease-notes/Test Plan
Notes
This workflow runs alongside the existing semantic-release workflow and provides a more flexible approach for creating releases from staging-to-production PRs.
🤖 Generated with Claude Code