name: Scheduled Checks on: schedule: # Every monday at 7 AM - cron: 0 7 * * 1 jobs: update: runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - name: Checkout 🛎 uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Set PY shell: bash run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV - name: Cache uses: actions/cache@v4 with: path: | ~/.cache/pre-commit ~/.cache/pip key: pre-commit-${{ env.PY }}-${{ hashFiles('.pre-commit-config.yaml') }} - name: Install pre-commit shell: bash run: pip install -U pre-commit - name: Run `pre-commit autoupdate` shell: bash run: pre-commit autoupdate --color=always - name: Generate GitHub App Token id: app-token uses: actions/create-github-app-token@v1 with: app-id: ${{ secrets.COMMIT_BOT_APP_ID }} private-key: ${{ secrets.COMMIT_BOT_APP_PRIVATE_KEY }} - name: Create Pull Request id: create-pr uses: peter-evans/create-pull-request@v6 with: token: ${{ steps.app-token.outputs.token }} commit-message: "Update pre-commit hooks" branch: "fix/update-pre-commit-hooks" labels: | chore delete-branch: true base: mealie-next title: "chore(auto): Update pre-commit hooks" body: "Auto-generated by `.github/workflows/scheduled-checks.yml`" - name: Approve PR if: steps.create-pr.outputs.pull-request-number env: GH_TOKEN: ${{ steps.app-token.outputs.token }} PR_NUMBER: ${{ steps.create-pr.outputs.pull-request-number }} REPO: ${{ github.repository }} run: | APPROVED=$(gh pr view "$PR_NUMBER" \ --repo "$REPO" \ --json reviews \ --jq '.reviews[] | select(.state == "APPROVED") | .id' \ | wc -l) if [ "$APPROVED" -gt 0 ]; then echo "PR already approved" exit 0 fi gh pr review "$PR_NUMBER" \ --repo "$REPO" \ --approve \ --body "Auto-approved: Pre-commit hook updates" - name: Enable auto-merge if: steps.create-pr.outputs.pull-request-number env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} PR_NUMBER: ${{ steps.create-pr.outputs.pull-request-number }} REPO: ${{ github.repository }} run: | gh pr merge "$PR_NUMBER" \ --repo "$REPO" \ --auto \ --squash