GeezerVison is showing github.com — Fix merge conflict handling in the rebuild workflow by henrymercer · Pull Request #4191 · github/codeql-action
Conversation
henrymercer
commented
Oct 2, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
The rebuild workflow is meant to continue when merging the base branch only conflicts in lib, since rebuilding regenerates it. Since #3568, any conflict has failed the merge step instead, for example in this run. Steps run with bash -e, so a conflicting git merge ended the step before its exit code was recorded. The step now runs git merge as an if condition, which -e doesn't apply to, and continues only if MERGE_HEAD shows the merge is still in progress.
Fixing that alone would have exposed a second bug: under pipefail, the check for conflicts outside lib never triggered, because git diff --check exits non-zero whenever it finds a conflict marker, including in lib. The check now lists unmerged paths with git diff --name-only --diff-filter=U, which also catches conflicts without markers, such as modify/delete conflicts.
Risk assessment
For internal use only. Please select the risk level of this change:
- Low risk: Changes are fully under feature flags, or have been fully tested and validated in pre-production environments and are highly observable, or are documentation or test only.
Which use cases does this change impact?
Environments:
- Testing/None - This change does not impact any CodeQL workflows in production.
How did/will you validate this change?
- Other - I ran the merge step's script from the workflow under
bash --noprofile --norc -e -o pipefail against scratch repositories. A clean merge passes, conflicts only in lib continue and set merge-in-progress, and content or modify/delete conflicts in src fail and list the file. I also ran the whole workflow on a temporary branch with the same conflict in lib/entry-points.js as the linked run. It succeeded, and the merge commit it pushed had no conflict markers.
If something goes wrong after this change is released, what are the mitigation and rollback strategies?
- Development/testing only - This change cannot cause any failures in production.
How will you know if something goes wrong after this change is released?
- Other - This change only affects the Rebuild Action workflow, so problems will show up as failed or incorrect rebuild runs.
Are there any special considerations for merging or releasing this change?
- No special considerations - This change can be merged at any time.
Merge / deployment checklist
- Confirm this change is backwards compatible with existing workflows.
- Consider adding a changelog entry for this change.
- Confirm the readme and docs have been updated if necessary.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🟢 Approval recommended
The workflow now safely continues for lib-only conflicts while rejecting conflicts elsewhere.
Review effort: Balanced
Findings: None
What changed in this PR
Fixes rebuild workflow handling for merge conflicts limited to generated lib files.
Changes:
- Preserves
git merge exit status under bash -e.
- Detects all unmerged paths outside
lib, including modify/delete conflicts.
| File |
Description |
.github/workflows/rebuild.yml |
Corrects merge failure handling and conflict-path detection. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🟢 Approval recommended
The focused workflow changes correctly address both failure modes and align with the rebuild process.
Review effort: Balanced
Findings: None
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
mbg
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally makes sense to me and it's a low risk / dev-only change in any case, so we can iterate on it if we find something doesn't quite work.
Ideally, we'd also start moving away from shell for these things and have TS-based scripts in pr-checks for this (which would have avoided the two bugs I think), but not something we should do here as part of this PR obviously.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Oct 8, 2026
Reviewers
mbg
mbg approved these changes
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Labels
size/S
Should be easy to review
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
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.
|