name: Update pre-commit hooks

on:
  schedule:
    - cron: '0 0 * * *'
  workflow_dispatch:

env:
  FORCE_COLOR: 1

jobs:
  auto-update:
    name: Update pre-commit hooks
    if: ${{ github.repository == 'vacanza/holidays' }}
    permissions:
      contents: write
      pull-requests: write
    runs-on: ubuntu-24.04
    steps:
      - name: Check out repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

      - name: Install uv
        uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b
        with:
          python-version: '3.14'
          version: '0.9.16'

      - name: Install Python
        run: uv python install "$UV_PYTHON"

      - name: Run pre-commit automatic update
        run: |
          uv tool run --with pre-commit-uv pre-commit autoupdate
          uv tool run --with pre-commit-uv pre-commit run --all-files

      - uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0
        with:
          base: dev
          body: Update pre-commit hooks to their latest versions.
          branch: update-pre-commit-hooks
          commit-message: 'chore: Update pre-commit hooks'
          committer: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
          delete-branch: true
          title: Update pre-commit hooks
          token: ${{ github.token }}
