diff --git a/conflicts.yml b/conflicts.yml new file mode 100644 index 00000000..63b208eb --- /dev/null +++ b/conflicts.yml @@ -0,0 +1,25 @@ +name: "Conflicts" +on: + # So that PRs touching the same files as the push are updated + push: + # So that the `dirtyLabel` is removed if conflicts are resolve + # We recommend `pull_request_target` so that github secrets are available. + # In `pull_request` we wouldn't be able to change labels of fork PRs + pull_request_target: + types: [synchronize] + workflow_run: + workflows: ['Dummy workflow for conflicts'] + types: [requested] + +jobs: + main: + runs-on: ubuntu-latest + steps: + - name: check if prs are dirty + uses: eps1lon/actions-label-merge-conflict@releases/2.x + with: + dirtyLabel: "PR: merge conflicts / rebase needed" + removeOnDirtyLabel: "PR: waiting for review" + repoToken: "${{ secrets.GITHUB_TOKEN }}" + commentOnDirty: "This pull request has conflicts, please resolve those before we can evaluate the pull request." + commentOnClean: "Conflicts have been resolved. A maintainer will review the pull request shortly." diff --git a/dummy-conflicts.yml b/dummy-conflicts.yml new file mode 100644 index 00000000..ed1fa3f2 --- /dev/null +++ b/dummy-conflicts.yml @@ -0,0 +1,9 @@ +name: Dummy workflow for conflicts +on: + pull_request_review: + types: [submitted] +jobs: + dummy: + runs-on: ubuntu-latest + steps: + - run: echo "this is a dummy workflow that triggers a workflow_run; it's necessary because otherwise the repo secrets will not be in scope for externally forked pull requests"