diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 377ad517..313fb411 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -134,100 +134,6 @@ jobs: - name: "Run friendsofphp/php-cs-fixer" run: "tools/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --dry-run --verbose" - merge: - name: "Merge" - - runs-on: "ubuntu-latest" - - needs: - - "backward-compatibility" - - "code-coverage" - - "coding-standards" - - "static-code-analysis" - - "tests" - - if: > - github.event_name == 'pull_request' && - github.event.pull_request.draft == false && ( - github.event.action == 'opened' || - github.event.action == 'reopened' || - github.event.action == 'synchronize' - ) && ( - (github.actor == 'dependabot[bot]' && startsWith(github.event.pull_request.title, 'composer(deps-dev)')) || - (github.actor == 'dependabot[bot]' && startsWith(github.event.pull_request.title, 'github-actions(deps)')) || - (github.actor == 'localheinz' && contains(github.event.pull_request.labels.*.name, 'merge')) - ) - - steps: - - name: "Request review from @ergebnis-bot" - uses: "actions/github-script@v2" - with: - github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - - const reviewers = [ - "ergebnis-bot", - ] - - await github.pulls.createReviewRequest({ - owner: repository.owner, - pull_number: pullRequest.number, - repo: repository.repo, - reviewers: reviewers, - }) - - - name: "Assign @ergebnis-bot" - uses: "actions/github-script@v2" - with: - github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - - const reviewers = [ - "ergebnis-bot", - ] - - await github.issues.addAssignees({ - assignees: reviewers, - issue_number: pullRequest.number, - owner: repository.owner, - repo: repository.repo, - }) - - - name: "Approve pull request" - uses: "actions/github-script@v2" - if: "github.actor != 'ergebnis-bot'" - with: - github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - - await github.pulls.createReview({ - event: "APPROVE", - owner: repository.owner, - pull_number: pullRequest.number, - repo: repository.repo, - }) - - - name: "Merge pull request" - uses: "actions/github-script@v2" - with: - github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - - await github.pulls.merge({ - merge_method: "merge", - owner: repository.owner, - pull_number: pullRequest.number, - repo: repository.repo, - }) - static-code-analysis: name: "Static Code Analysis" diff --git a/.github/workflows/merge.yaml b/.github/workflows/merge.yaml new file mode 100644 index 00000000..433fdc65 --- /dev/null +++ b/.github/workflows/merge.yaml @@ -0,0 +1,49 @@ +# https://docs.github.com/en/actions + +name: "Merge" + +on: # yamllint disable-line rule:truthy + workflow_run: + types: + - "completed" + workflows: + - "Integrate" + +jobs: + merge: + name: "Merge" + + runs-on: "ubuntu-latest" + + timeout-minutes: 5 + + if: > + github.event.workflow_run.event == 'pull_request' && + github.event.workflow_run.conclusion == 'success' && + github.actor == 'dependabot[bot]' && ( + startsWith(github.event.workflow_run.head_commit.message, 'composer(deps-dev)') || + startsWith(github.event.workflow_run.head_commit.message, 'github-actions(deps)') + ) + + steps: + - name: "Request review from @ergebnis-bot" + uses: "ergebnis/.github/actions/github/pull-request/request-review@1.9.2" + with: + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + reviewer: "ergebnis-bot" + + - name: "Assign @ergebnis-bot" + uses: "ergebnis/.github/actions/github/pull-request/add-assignee@1.9.2" + with: + assignee: "ergebnis-bot" + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + + - name: "Approve pull request" + uses: "ergebnis/.github/actions/github/pull-request/approve@1.9.2" + with: + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + + - name: "Merge pull request" + uses: "ergebnis/.github/actions/github/pull-request/merge@1.9.2" + with: + github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}"