From b60508539ebcf437c28258601a2a50e134f91cd0 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 29 Apr 2022 10:04:33 +0200 Subject: [PATCH] gh actions: Approve renovate lock file changes Signed-off-by: Johan Haals --- .../workflows/sync_approve_renovate_pr.yaml | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/sync_approve_renovate_pr.yaml diff --git a/.github/workflows/sync_approve_renovate_pr.yaml b/.github/workflows/sync_approve_renovate_pr.yaml new file mode 100644 index 0000000000..d1cb50d9ea --- /dev/null +++ b/.github/workflows/sync_approve_renovate_pr.yaml @@ -0,0 +1,42 @@ +name: Approve renovate lock file changes +on: + pull_request_target: + paths: + - '.github/workflows/sync_renovate-changesets.yml' + - '**/yarn.lock' + +jobs: + generate-changeset: + runs-on: ubuntu-latest + if: github.actor == 'renovate[bot]' && github.repository == 'backstage/backstage' + steps: + - name: Approve + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} + script: | + const owner = 'backstage'; + const repo = 'backstage'; + + if (context.payload.pull_request.changed_files !== 1) { + console.log('Skipping approval because multiple files are changed in this PR'); + return; + } + + const r = await octokit.rest.pulls.listFiles({ + owner, + repo, + pull_number: context.issue.number, + }); + + if (r.data.every((f) => f.filename.endsWith("yarn.lock"))) { + console.log('skipping approval since some files are not yarn.lock'); + return; + } + + await github.rest.pulls.createReview({ + owner, + repo, + pull_number: context.issue.number, + event: 'APPROVE' + })