From 8b8bb7d3d4929b40339a278c9a6cecfe1f6b0ce7 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Thu, 16 Sep 2021 10:47:12 +0300 Subject: [PATCH] enable automerge Signed-off-by: Vasiliy Tolstov --- .github/stale.sh | 13 ----- .github/workflows/dependabot-automerge.yml | 65 ++++++++++++++++++++++ 2 files changed, 65 insertions(+), 13 deletions(-) delete mode 100755 .github/stale.sh create mode 100644 .github/workflows/dependabot-automerge.yml diff --git a/.github/stale.sh b/.github/stale.sh deleted file mode 100755 index 8a345c4..0000000 --- a/.github/stale.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -ex - -export PATH=$PATH:$(pwd)/bin -export GO111MODULE=on -export GOBIN=$(pwd)/bin - -#go get github.com/rvflash/goup@v0.4.1 - -#goup -v ./... -#go get github.com/psampaz/go-mod-outdated@v0.6.0 -go list -u -m -mod=mod -json all | go-mod-outdated -update -direct -ci || true - -#go list -u -m -json all | go-mod-outdated -update diff --git a/.github/workflows/dependabot-automerge.yml b/.github/workflows/dependabot-automerge.yml new file mode 100644 index 0000000..b9628e7 --- /dev/null +++ b/.github/workflows/dependabot-automerge.yml @@ -0,0 +1,65 @@ +name: "Pull Request Auto Merge" + +on: + workflow_run: + workflows: ["prbuild", "CodeQL"] + types: + - completed + +permissions: + contents: write + pull-requests: write + +jobs: + Dependabot-Automerge: + runs-on: ubuntu-latest + # Contains workaround to execute if dependabot updates the PR by checking for the base branch in the linked PR + # The the github.event.workflow_run.event value is 'push' and not 'pull_request' + if: >- + github.event.workflow_run.conclusion == 'success' + && github.actor == 'dependabot[bot]' + && github.event.sender.login == 'dependabot[bot]' + && github.event.sender.type == 'Bot' + && (github.event.workflow_run.event == 'pull_request' + || (github.event.workflow_run.event == 'push' && github.event.workflow_run.pull_requests[0].base.ref == github.event.repository.default_branch )) + steps: + - name: Approve Changes and Merge changes if label 'dependencies' is set + uses: actions/github-script@v4 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + console.log(context.payload.workflow_run); + + var labelNames = await github.paginate( + github.issues.listLabelsOnIssue, + { + repo: context.repo.repo, + owner: context.repo.owner, + issue_number: context.payload.workflow_run.pull_requests[0].number, + }, + (response) => response.data.map( + (label) => label.name + ) + ); + + console.log(labelNames); + + if (labelNames.includes('dependencies')) { + console.log('Found label'); + + await github.pulls.createReview({ + repo: context.repo.repo, + owner: context.repo.owner, + pull_number: context.payload.workflow_run.pull_requests[0].number, + event: 'APPROVE' + }); + console.log('Approved PR'); + + await github.pulls.merge({ + repo: context.repo.repo, + owner: context.repo.owner, + pull_number: context.payload.workflow_run.pull_requests[0].number, + }); + + console.log('Merged PR'); + }