Conversation
📝 WalkthroughWalkthroughAdds change-detection gating to the pre-release PR workflow and refactors the reusable release workflow: updates checkout, introduces an associated-pr step with PR validation and app aliasing, and standardizes git tag and changelog handling via app_alias. Changes
Sequence Diagram(s)sequenceDiagram
participant Workflow as Workflow
participant Git as Git (repo)
participant Action as associated-pr action
participant GH as GitHub API
Workflow->>Git: run `git status --porcelain` (set has_changes)
alt has_changes == false
Workflow-->>Workflow: skip check/commit/create steps
else has_changes == true
Workflow->>Action: run associated-pr (find PR_NUMBER/PR_TITLE)
Action->>GH: fetch PR details
GH-->>Action: PR metadata (title, files)
Action-->>Workflow: export PR_NUMBER, PR_TITLE
Workflow->>GH: check existing PR (conditional)
GH-->>Workflow: existing PR result
alt need to create tag/PR
Workflow->>Git: prepare commit & tag (use app_alias/v<version>)
Workflow->>GH: create PR and/or tag
GH-->>Workflow: PR number / tag created
end
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 🧹 Recent nitpick comments
📜 Recent review detailsConfiguration used: defaults Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (4)
✏️ Tip: You can disable this entire section by setting Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In @.github/workflows/reusable-create-github-release.yml:
- Around line 79-83: Remove the dead pre-refactor assignment to git_tag that
uses an undefined current_version: delete the line setting
git_tag="$current_version" so git_tag is only set after computing app_alias and
current_version (the later assignment git_tag="$app_alias/v$current_version"
should remain); update or verify the surrounding block that uses APP_ALIASES,
APP_NAME, and package_file so git_tag is only defined once using app_alias and
current_version.
- Around line 53-61: Replace the POSIX [ ] test with a Bash [[ ]] glob match for
PR_TITLE and use a "starts with" pattern; specifically, change the conditional
that currently reads the bracket test against PR_TITLE to use [[ $PR_TITLE !=
chore\(release\):\ update\ versions\ and\ changelogs* ]] (or the equivalent [[
$PR_TITLE != "chore(release): update versions and changelogs"* ]]) so glob
pattern matching works as intended and the script correctly exits when PR_TITLE
does not start with the release prefix; keep the PR_NUMBER check as-is and only
modify the PR_TITLE conditional that uses the PR_TITLE variable and the existing
conditional block.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
.github/workflows/create-pre-release-pr.yml.github/workflows/reusable-create-github-release.yml
🧰 Additional context used
🪛 GitHub Actions: GitHub Actions Linting
.github/workflows/reusable-create-github-release.yml
[error] 52-52: shellcheck reported issue: SC2081: '...globs' can't match [ .. ]. Use [[ .. ]] or case statement. (in script invoked by 'gh actionlint')
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (8)
.github/workflows/create-pre-release-pr.yml (4)
96-105: LGTM - Effective early exit when no releasable changes.The change detection logic using
git status --porcelainis correct and addresses the PR objective of avoiding failures when there are no releasable changes. The step properly outputs the result for downstream conditional execution.
107-109: LGTM - Proper gating of PR check.Correctly skips the existing PR check when there are no changes to release.
123-124: LGTM - Correct conditional for commit step.Ensures the commit step only runs when there are actual changes to commit.
163-164: LGTM - Combined conditions are logically correct.The condition
env.pr_number == '' && steps.check-changes.outputs.has_changes == 'true'ensures a PR is created only when:
- There are changes to release
- No existing release PR exists
When
has_changesis false, the "Check Existing PR" step is skipped, leavingpr_numberunset, but the second condition already prevents PR creation in that case..github/workflows/reusable-create-github-release.yml (4)
40-51: LGTM - Good use of conditional gating and environment variables.The conditional on line 40 and the structured environment variables for PR context and app aliases are well organized.
63-72: LGTM - Robust app release detection.Using
gh pr viewto check if the app's CHANGELOG.md was modified in the PR is a reliable way to determine if the app was released. This addresses the PR objective of exiting early when the app is not released.
86-98: LGTM - Tag creation and changelog extraction logic is correct.The tag existence check and multiline changelog output using heredoc syntax are properly implemented.
32-37: No action needed.actions/checkout@v6is the latest released version and is valid as of January 2026.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
3604541 to
78c2318
Compare
78c2318 to
277f6e6
Compare
What
scriptsfield update which trigger release on push to main (not on merge of release PR)Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.