diff --git a/.github/workflows/dependency-auto-review.yaml b/.github/workflows/dependency-auto-review.yaml deleted file mode 100644 index 8a0eb528e..000000000 --- a/.github/workflows/dependency-auto-review.yaml +++ /dev/null @@ -1,25 +0,0 @@ -name: Auto reviews updates - -on: - pull_request: - types: - - opened - - reopened - -jobs: - auto-merge: - name: Auto reviews updates - runs-on: ubuntu-22.04 - timeout-minutes: 5 - if: github.event.pull_request.user.login == 'renovate[bot]' - - steps: - - uses: actions/github-script@v6 - with: - script: |- - github.rest.pulls.createReview({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: context.payload.pull_request.number, - event: 'APPROVE', - }) diff --git a/.github/workflows/pr-checks.yaml b/.github/workflows/pr-checks.yaml index a3838fc3d..48e057c48 100644 --- a/.github/workflows/pr-checks.yaml +++ b/.github/workflows/pr-checks.yaml @@ -5,9 +5,7 @@ on: types: - opened - reopened - - labeled - - unlabeled - - edit + - edited - synchronize env: diff --git a/.github/workflows/pull-request-automation.yaml b/.github/workflows/pull-request-automation.yaml new file mode 100644 index 000000000..e98a540a9 --- /dev/null +++ b/.github/workflows/pull-request-automation.yaml @@ -0,0 +1,110 @@ +name: Auto reviews, merge and close pull requests + +on: + pull_request: + types: + - opened + - reopened + - closed + pull_request_target: + types: + - closed + +jobs: + auto-merge: + name: Auto reviews, merge and close pull requests + runs-on: ubuntu-22.04 + timeout-minutes: 5 + + steps: + - name: Print event + run: echo "${GITHUB}" | jq + env: + GITHUB: ${{ toJson(github) }} + - name: Print context + uses: actions/github-script@v7 + with: + script: |- + console.log(context); + - name: Auto reviews Renovate updates + uses: actions/github-script@v7 + with: + script: |- + github.rest.pulls.createReview({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.pull_request.number, + event: 'APPROVE', + }) + if: |- + github.event.pull_request.user.login == 'renovate[bot]' + && (github.event.action == 'opened' + || github.event.action == 'reopened') + - name: Auto review and merge snyk auto fix + uses: actions/github-script@v7 + with: + script: |- + github.rest.pulls.createReview({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.pull_request.number, + event: 'APPROVE', + }); + github.graphql(` + mutation { + enablePullRequestAutoMerge(input: { + pullRequestId: "${context.payload.pull_request.node_id}", + mergeMethod: SQUASH, + }) { + pullRequest { + autoMergeRequest { + enabledAt + } + } + } + } + `) + if: |- + github.event.pull_request.user.login == 'c2c-bot-gis-ci' + && startsWith(github.head_ref, 'snyk-fix/') + && (github.event.action == 'opened' + || github.event.action == 'reopened') + - name: Restart audit workflow + uses: actions/github-script@v7 + with: + script: |- + let runs = await github.rest.actions.listWorkflowRuns({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: 'audit.yaml', + per_page: 1, + }); + runs = runs.data.workflow_runs; + if (runs.length == 1 && runs[0].status != 'success') { + console.log(`Rerun workflow ${runs[0].id} ${runs[0].status}`); + github.rest.actions.reRunWorkflowFailedJobs({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: runs[0].id, + }); + } + if: |- + github.event.pull_request.user.login == 'c2c-bot-gis-ci' + && (startsWith(github.head_ref, 'snyk-fix/') + || startsWith(github.head_ref, 'dpkg-update/')) + && github.event.action == 'closed' + && github.event.pull_request.merged == true + - name: Auto close pre-commit.ci autoupdate + uses: actions/github-script@v7 + with: + script: |- + github.rest.pulls.update({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.pull_request.number, + state: 'closed', + }); + if: |- + github.event.pull_request.user.login == 'pre-commit-ci' + && (github.event.action == 'opened' + || github.event.action == 'reopened') diff --git a/ci/config.yaml b/ci/config.yaml index 0799ab165..3c707637f 100644 --- a/ci/config.yaml +++ b/ci/config.yaml @@ -13,6 +13,7 @@ checks: - '1.1' required_workflows: false + codespell: false publish: pypi: packages: