Implement draft-release workflow#69
Conversation
📝 WalkthroughWalkthroughThe draft-release.yml GitHub Actions workflow is renamed and rewritten from a placeholder echo job into a functional pipeline. It adds workflow-level concurrency and write permissions, then computes the next semver tag, generates release notes, updates pyproject.toml and CHANGELOG.md, and opens a release PR and draft GitHub release. ChangesDraft Release Workflow
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Trigger
participant Workflow as draft-release.yml
participant Repo as main branch
participant GitHub as GitHub API
Trigger->>Workflow: Trigger workflow run
Workflow->>Workflow: Install uv, read current version
Workflow->>Workflow: Compute next semver tag
Workflow->>GitHub: Check if tag exists
GitHub-->>Workflow: Tag existence result
Workflow->>Workflow: Generate release notes from merged PRs
Workflow->>Repo: Update pyproject.toml and CHANGELOG.md
Workflow->>Repo: Commit and push changes
Workflow->>GitHub: Open release PR
Workflow->>GitHub: Create draft GitHub release
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.github/workflows/draft-release.yml (1)
44-86: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winPin the
railsware/github-actions/*steps to immutable SHAs.
.github/workflows/draft-release.yml:44-83still uses six@masterrefs, so this workflow can drift unexpectedly and is harder to reproduce. Pin each action to a commit SHA.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/draft-release.yml around lines 44 - 86, The workflow in draft-release still uses mutable railsware/github-actions references, which can change unexpectedly over time. Update each of the listed action uses in the release job—compute-next-semver, abort-if-tag-exists, generate-release-notes, prepend-changelog, open-sdk-release-pr, and create-draft-github-release—to immutable commit SHAs instead of `@master` so the behavior stays reproducible and stable.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/draft-release.yml:
- Around line 60-62: The version update step expands the step output directly
inside the run command, which should be avoided; update the workflow step that
runs uv version to pass steps.bump.outputs.next through env instead. Keep the
existing condition on steps.notes.outputs.release_notes, bind the computed
version to an environment variable in the same job, and reference that variable
in the Update version in pyproject.toml step so the shell only sees a quoted env
value.
---
Nitpick comments:
In @.github/workflows/draft-release.yml:
- Around line 44-86: The workflow in draft-release still uses mutable
railsware/github-actions references, which can change unexpectedly over time.
Update each of the listed action uses in the release job—compute-next-semver,
abort-if-tag-exists, generate-release-notes, prepend-changelog,
open-sdk-release-pr, and create-draft-github-release—to immutable commit SHAs
instead of `@master` so the behavior stays reproducible and stable.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: abb29b89-934f-4ab0-bef3-81275a17c285
📒 Files selected for processing (1)
.github/workflows/draft-release.yml
Motivation
Release automation
Changes
How to test
Summary by CodeRabbit