ci(release): use get_prs_between_tags with fail_on_error - #607
Merged
mokagio merged 4 commits intoAug 27, 2026
Merged
Conversation
15.0.0 is the first release carrying `get_prs_between_tags`' `fail_on_error:` ([wordpress-mobile/release-toolkit#772](wordpress-mobile/release-toolkit#772)), which the next commit adopts. Major bump, so Dependabot's `ruby-minor-and-patch` group would never have proposed it. Its two breaking changes leave this repo alone: no `*_build_preflight` call sites, and `EnvManager` populating the process `ENV` by default is a no-op where no `.env` file ships. For [CMM-2332](https://linear.app/a8c/issue/CMM-2332). --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 5 <noreply@anthropic.com>
Restores the action over the helper it wraps, now that `fail_on_error:` lets the step fail instead of publishing an error message as the release body. Verified against the live API on both paths: a real tag pair returns the notes, and a bogus `previous_tag` now raises `Octokit::BadRequest` where `fail_on_error: false` returns "❌ Error computing the list of PRs…" as the changelog. One visible change: the action rewrites GitHub's `## What's Changed` heading into `## New PRs since [<previous_tag>](<link>)`. For [CMM-2332](https://linear.app/a8c/issue/CMM-2332). --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the CI release tooling to use the get_prs_between_tags Fastlane action again (now that it can fail the lane on API errors), preventing releases from being published with an error string as the GitHub Release body.
Changes:
- Bump
fastlane-plugin-wpmreleasetoolkitfrom14.11.3to15.0.0. - Switch
generated_release_notesfrom callingFastlane::Helper::GithubHelper#generate_release_notesdirectly back toget_prs_between_tags. - Pass
fail_on_error: true(and keep token plumbing) so API failures stop the release step.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| Gemfile | Bumps the release-toolkit plugin constraint to ~> 15.0. |
| Gemfile.lock | Locks the plugin to 15.0.0 with updated checksum. |
| fastlane/Fastfile | Uses get_prs_between_tags(..., fail_on_error: true) for release notes generation to fail hard on API errors. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
XCFramework BuildThis PR's XCFramework is available for testing. Add the following to your .package(url: "https://github.com/wordpress-mobile/GutenbergKit", branch: "pr-build/607")Built from aea5c59 |
iangmaia
approved these changes
Aug 27, 2026
iangmaia
left a comment
Contributor
There was a problem hiding this comment.
👍 Thanks for addressing this.
mokagio
commented
Aug 27, 2026
mokagio
commented
Aug 27, 2026
Co-authored-by: Gio Lodi <giovanni.lodi42@gmail.com>
mokagio
commented
Aug 27, 2026
Co-authored-by: Gio Lodi <giovanni.lodi42@gmail.com>
mokagio
enabled auto-merge (squash)
August 27, 2026 09:16
AliSoftware
approved these changes
Aug 27, 2026
mokagio
deleted the
cmm-2332-use-get_prs_between_tags-for-release-notes-once-release
branch
August 27, 2026 10:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AI-generated below:
What?
Bumps
fastlane-plugin-wpmreleasetoolkitto 15.0.0 and switchesgenerated_release_notesback to theget_prs_between_tagsaction, now passingfail_on_error: true.Closes CMM-2332 / #591.
Why?
#588 deliberately bypassed the action and called
GithubHelper#generate_release_notesdirectly, because the action rescued everyStandardErrorand returned the message as the changelog — a transient API failure would publish a release whose notes read❌ Error computing the list of PRs…. We push the tag before creating the Release, so that has to fail the step instead.release-toolkit#772 added the opt-out, and it has now shipped in 15.0.0, so the workaround can go.
How?
fail_on_error: trueis load-bearing rather than cosmetic, which is the one thing the diff doesn't say on its own — hence the comment that replaces the old workaround note.The major bump is manual: Dependabot only proposes this repo's toolkit updates through the
ruby-minor-and-patchgroup. Neither of 15.0.0's breaking changes reaches this repo — there are no*_build_preflightcall sites, andEnvManagernow populating the processENVby default is a no-op here, where no.envfile ships.Testing Instructions
The release lane only runs on CI, so I exercised the action directly against the live API from this branch:
bundle exec fastlane run get_prs_between_tags \ repository:wordpress-mobile/GutenbergKit tag_name:v0.19.0 \ previous_tag:v0.18.1 fail_on_error:trueReturns the v0.18.1 → v0.19.0 notes. Swapping in a nonexistent
previous_tagexits 1 withOctokit::BadRequest: 400 - Invalid previous_tag parameter, where the same call withfail_on_error:falseexits 0 and hands back the❌ Error computing the list of PRs…string — i.e. exactly the failure this change exists to prevent.Heads-up for whoever reads the next release page: the action rewrites GitHub's
## What's Changedheading into## New PRs since [<previous_tag>](<link>).