| # Copyright (c) 2023 Sebastian Pipping <sebastian@pipping.org> |
| # Licensed under the Apache License Version 2.0 |
| |
| name: Keep pre-commit hooks up to date |
| |
| on: |
| schedule: |
| - cron: '0 16 * * 5' # Every Friday 4pm |
| workflow_dispatch: |
| |
| # NOTE: This will drop all permissions from GITHUB_TOKEN except metadata read, |
| # and then (re)add the ones listed below: |
| permissions: |
| contents: write |
| pull-requests: write |
| |
| jobs: |
| pre_commit_autoupdate: |
| name: Detect outdated pre-commit hooks |
| runs-on: ubuntu-22.04 |
| steps: |
| - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 |
| |
| - name: Set up Python 3.11 |
| uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1 # v4.7.0 |
| with: |
| python-version: 3.11 |
| |
| - name: Install pre-commit |
| run: |- |
| pip install \ |
| --disable-pip-version-check \ |
| --no-warn-script-location \ |
| --user \ |
| pre-commit |
| echo "PATH=${HOME}/.local/bin:${PATH}" >> "${GITHUB_ENV}" |
| |
| - name: Check for outdated hooks |
| run: |- |
| pre-commit autoupdate |
| git diff -- .pre-commit-config.yaml |
| |
| - name: Create pull request from changes (if any) |
| id: create-pull-request |
| uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5.0.2 |
| with: |
| author: 'pre-commit <pre-commit@tools.invalid>' |
| base: main |
| body: |- |
| For your consideration. |
| |
| :warning: Please **CLOSE AND RE-OPEN** this pull request so that [further workflow runs get triggered](https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs) for this pull request. |
| branch: precommit-autoupdate |
| commit-message: "pre-commit: Autoupdate" |
| delete-branch: true |
| draft: true |
| labels: enhancement |
| title: "pre-commit: Autoupdate" |
| |
| - name: Log pull request URL |
| if: "${{ steps.create-pull-request.outputs.pull-request-url }}" |
| run: | |
| echo "Pull request URL is: ${{ steps.create-pull-request.outputs.pull-request-url }}" |