Skip to content

Lock file maintenance #776

Lock file maintenance

Lock file maintenance #776

name: Renovate Auto-approve
on:
pull_request:
types: [opened, synchronize, reopened, auto_merge_enabled]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
auto-approve:
name: Renovate Auto-Approve
runs-on: ubuntu-latest
environment: renovate
if: github.event.pull_request.user.login == 'renovate-updater[bot]'
steps:
- uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
id: app-token
with:
client-id: ${{ vars.RENOVATE_APPROVER_CLIENT_ID }}
private-key: ${{ secrets.RENOVATE_APPROVER_APP_PRIVATE_KEY }}
permission-pull-requests: write
- name: Check and approve
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
env:
RENOVATE_APPROVER_APP_NAME: renovate-pr-approver[bot]
with:
github-token: ${{ steps.app-token.outputs.token }}
script: |
const { owner, repo } = context.repo;
const pull_number = context.payload.pull_request.number;
const { data: pr } = await github.rest.pulls.get({ owner, repo, pull_number });
if (!pr.auto_merge) {
console.log("Auto-merge not enabled, skipping");
process.exit(0);
}
const { data: reviews } = await github.rest.pulls.listReviews({ owner, repo, pull_number });
const prApproved = reviews.some(
(review) =>
review.state === "APPROVED" && review.user.login === process.env.RENOVATE_APPROVER_APP_NAME
);
if (prApproved) {
console.log("Already approved, skipping");
process.exit(0);
}
await github.rest.pulls.createReview({ owner, repo, pull_number, event: "APPROVE" });