From b60508539ebcf437c28258601a2a50e134f91cd0 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 29 Apr 2022 10:04:33 +0200 Subject: [PATCH 1/5] 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' + }) From 8cdc951bc1786682f1c639e2410a32d2af698ad9 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 29 Apr 2022 10:11:01 +0200 Subject: [PATCH 2/5] gh action: do not approve on Tuesday Signed-off-by: Johan Haals --- .github/workflows/sync_approve_renovate_pr.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/sync_approve_renovate_pr.yaml b/.github/workflows/sync_approve_renovate_pr.yaml index d1cb50d9ea..6f2bf96150 100644 --- a/.github/workflows/sync_approve_renovate_pr.yaml +++ b/.github/workflows/sync_approve_renovate_pr.yaml @@ -18,6 +18,12 @@ jobs: const owner = 'backstage'; const repo = 'backstage'; + const date = new Date(); + if (date.getDay() === 2) { + console.log('Skipping auto approve because Tuesday is release day'); + return; + } + if (context.payload.pull_request.changed_files !== 1) { console.log('Skipping approval because multiple files are changed in this PR'); return; From 2e3166e9908d0317fc55ac5f5c5474da693c58dc Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 29 Apr 2022 10:12:50 +0200 Subject: [PATCH 3/5] gh action: allow for bumps of multiple yarn.lock files Signed-off-by: Johan Haals --- .github/workflows/sync_approve_renovate_pr.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/sync_approve_renovate_pr.yaml b/.github/workflows/sync_approve_renovate_pr.yaml index 6f2bf96150..cc1b46e105 100644 --- a/.github/workflows/sync_approve_renovate_pr.yaml +++ b/.github/workflows/sync_approve_renovate_pr.yaml @@ -24,11 +24,6 @@ jobs: return; } - 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, From b405a9cd99e569d44c65d8d22fa25ee8c0e96f88 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 29 Apr 2022 10:19:16 +0200 Subject: [PATCH 4/5] chore: format Signed-off-by: Johan Haals --- .github/workflows/sync_approve_renovate_pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync_approve_renovate_pr.yaml b/.github/workflows/sync_approve_renovate_pr.yaml index cc1b46e105..66471cc3e9 100644 --- a/.github/workflows/sync_approve_renovate_pr.yaml +++ b/.github/workflows/sync_approve_renovate_pr.yaml @@ -29,7 +29,7 @@ jobs: 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; From 15abf763af14058953c5ab7bab73c2c39731d1be Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Fri, 29 Apr 2022 11:07:24 +0200 Subject: [PATCH 5/5] stricter yarn.lock check Signed-off-by: Johan Haals --- .github/workflows/sync_approve_renovate_pr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync_approve_renovate_pr.yaml b/.github/workflows/sync_approve_renovate_pr.yaml index 66471cc3e9..92e6775f00 100644 --- a/.github/workflows/sync_approve_renovate_pr.yaml +++ b/.github/workflows/sync_approve_renovate_pr.yaml @@ -30,7 +30,7 @@ jobs: pull_number: context.issue.number, }); - if (r.data.every((f) => f.filename.endsWith("yarn.lock"))) { + if (r.data.every((f) => f.filename.split('/').slice(-1)[0] === 'yarn.lock')) { console.log('skipping approval since some files are not yarn.lock'); return; }