diff --git a/.github/workflows/autoLabelPR.yaml b/.github/workflows/autoLabelPR.yaml new file mode 100644 index 00000000..73871ff7 --- /dev/null +++ b/.github/workflows/autoLabelPR.yaml @@ -0,0 +1,15 @@ +name: "Set PR Label" +on: + pull_request: + types: [opened, reopened] + +jobs: + test: + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + steps: + - uses: Naturalclar/issue-action@v2.0.2 + with: + title-or-body: "both" + parameters: '[ {"keywords": ["Important note", "Pull Request Type", "Related issue", "Dependent PR/issue", "Description", "Screenshots", "Testing", "Desktop", "Additional context"], "labels": ["PR: waiting for review"]}]' + github-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/conflicts.yml b/.github/workflows/conflicts.yml new file mode 100644 index 00000000..b2c64031 --- /dev/null +++ b/.github/workflows/conflicts.yml @@ -0,0 +1,22 @@ +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] + +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/.github/workflows/label-changes-requested.yml b/.github/workflows/label-changes-requested.yml new file mode 100644 index 00000000..d842ab95 --- /dev/null +++ b/.github/workflows/label-changes-requested.yml @@ -0,0 +1,19 @@ +name: Changes Requested +on: + pull_request_review: + types: [submitted] + pull_request: + types: [synchronize] + +jobs: + update-pr-labels: + runs-on: ubuntu-latest + name: Update PR Labels + steps: + - name: Update Labels + uses: danilo-delbusso/pr-review-labeller@v1.1.1 + with: + changes-requested-label-name: "PR: changes requested" + updated-pr-label-name: "PR: waiting for review" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/remove-outdated-labels.yml b/.github/workflows/remove-outdated-labels.yml new file mode 100644 index 00000000..59e41593 --- /dev/null +++ b/.github/workflows/remove-outdated-labels.yml @@ -0,0 +1,39 @@ +name: Remove outdated labels +on: + # https://github.community/t/github-actions-are-severely-limited-on-prs/18179/15 + pull_request_target: + types: + - closed + issues: + types: + - closed +jobs: + remove-merged-pr-labels: + name: Remove merged pull request labels + if: github.event.pull_request.merged + runs-on: ubuntu-latest + steps: + - uses: mondeja/remove-labels-gh-action@v1.1.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + labels: | + PR: waiting for review + PR: WIP + PR: changes requested + PR: merge conflicts / rebase needed + PR/Issue: dependent + + remove-closed-pr-labels: + name: Remove closed pull request labels + if: github.event_name == 'pull_request_target' && (! github.event.pull_request.merged) + runs-on: ubuntu-latest + steps: + - uses: mondeja/remove-labels-gh-action@v1.1.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + labels: | + PR: waiting for review + PR: WIP + PR: changes requested + PR: merge conflicts / rebase needed + PR/Issue: dependent