fix(gha): switch to eps1lon action and fix fork PR failures - #2748
Merged
FonduemangVI merged 1 commit intoMay 21, 2026
Merged
Conversation
The mschilde/auto-label-merge-conflicts action used pull_request events, which give read-only tokens for fork PRs, causing conflict labeling to fail silently. The eps1lon/actions-label-merge-conflict action uses pull_request_target (no code checkout, so safe) and supports removing the conflict label when authors rebase. - Replace mschilde/auto-label-merge-conflicts@v2.0 with eps1lon/actions- label-merge-conflict@v3.0.3 - Switch trigger from pull_request to pull_request_target with synchronize type - Scope push trigger to master branch since only base branch changes create conflicts - Move fork guard to job-level if condition - Update input names to dirtyLabel and repoToken per new action API
rcdailey
marked this pull request as ready for review
May 21, 2026 15:02
Contributor
Reviewer's guide (collapsed on small PRs)Reviewer's GuideUpdates the Label Conflicts GitHub Actions workflow to use a maintained action, tighten triggers, and centralize fork-handling logic so conflict labels work reliably, including for fork-based PRs, without unsafe permissions. Flow diagram for updated conflicts CI workflowflowchart LR
A[push on master] --> C{repository.fork == false}
B[pull_request_target synchronize] --> C
C --> D[triage job]
D --> E[eps1lon/actions-label-merge-conflict]
E --> F[apply Status: Conflicted label via repoToken]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Contributor
|
Deploying with ⚡ Cloudflare Pages
|
FonduemangVI
approved these changes
May 21, 2026
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.
The Label Conflicts workflow was failing on fork-based PRs (like #2740) because GitHub restricts
GITHUB_TOKENto read-only onpull_requestevents from forks, regardless of what the workflow declares.The
mschilde/auto-label-merge-conflictsaction scans all open PRs for merge conflicts on every run. When it found a conflicted PR and tried to call theaddLabelsToLabelableGraphQL mutation, it hit:Previous runs on the same branch "passed" only because no PRs had conflicts at the time, so the mutation was never called.
Changes:
mschilde/auto-label-merge-conflicts(dormant since 2020) witheps1lon/actions-label-merge-conflict@v3.0.3, which is actively maintained and handles this casepushtrigger tomasteronly (feature branch pushes can't create conflicts in other PRs)pull_request_target: [synchronize]so the conflict label gets removed when authors rebase (safe because the workflow never checks out PR code)pull_requesttrigger that caused the fork failuresSummary by Sourcery
Update the merge-conflict labeling workflow to use a maintained action and avoid fork-related permission failures.
CI: