From 3c0ae5528f2031f638c11b72fc5d81568ccbc1e1 Mon Sep 17 00:00:00 2001 From: Daniel Azuma Date: Mon, 9 Nov 2020 11:22:21 -0800 Subject: [PATCH] chore: Implement auto-approval of autosynth PRs (#740) Co-authored-by: Cody Oss <6331106+codyoss@users.noreply.github.com> Co-authored-by: gcf-merge-on-green[bot] <60162190+gcf-merge-on-green[bot]@users.noreply.github.com> --- .github/workflows/autoapprove.yml | 49 +++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/autoapprove.yml diff --git a/.github/workflows/autoapprove.yml b/.github/workflows/autoapprove.yml new file mode 100644 index 00000000000..447cfd355b2 --- /dev/null +++ b/.github/workflows/autoapprove.yml @@ -0,0 +1,49 @@ +name: AutoApprove + +on: + pull_request: + branches: + - master + types: + - opened + +jobs: + auto-approve: + runs-on: ubuntu-latest + if: contains(github.head_ref, 'autosynth') + env: + ENABLE_AUTO_APPROVE: ${{ secrets.ENABLE_AUTO_APPROVE }} + steps: + - name: AutoApprove + uses: actions/github-script@v2 + with: + github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} + script: | + if (context.payload.sender.login != "yoshi-automation") { + core.error("AutoApprove: Not running for this sender."); + return; + } + if (!context.payload.pull_request.title.startsWith("feat(all): auto-regenerate")) { + core.error("AutoApprove: Not running for this PR title."); + return; + } + if (!process.env.ENABLE_AUTO_APPROVE) { + core.error("AutoApprove: PR conditions passed but ENABLE_AUTO_APPROVE is not set."); + return; + } + core.info("AutoApprove: PR conditions passed!"); + await github.pulls.createReview({ + owner: context.repo.owner, + repo: context.repo.repo, + body: "AutoApprove: Rubber stamped client regeneration!", + pull_number: context.payload.pull_request.number, + event: "APPROVE" + }); + core.info("AutoApprove: Rubber stamped client regeneration!"); + await github.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.payload.pull_request.number, + labels: ["automerge"] + }); + core.info("AutoApprove: Applied automerge label!");