diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 2c1c8febb..323121cd0 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -18,6 +18,11 @@ jobs: steps: - name: Checkout code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + # For dependabot PRs, we need to checkout with a token that can push changes + token: ${{ github.actor == 'dependabot[bot]' && secrets.GITHUB_TOKEN || github.token }} + # Fetch full history for dependabot PRs to allow commits + fetch-depth: ${{ github.actor == 'dependabot[bot]' && 0 || 1 }} - name: Set up Python uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 @@ -33,11 +38,27 @@ jobs: SKIP: no-commit-to-branch RUFF_OUTPUT_FORMAT: github + - name: Commit changes for dependabot PRs + if: github.actor == 'dependabot[bot]' + run: | + if ! git diff --exit-code || [ -n "$(git ls-files --others --exclude-standard)" ]; then + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + git add -A + git commit -m "Apply pre-commit fixes" + git push + echo "Pre-commit fixes committed and pushed" + else + echo "No changes to commit" + fi + - name: Verify if there are any diff files after pre-commit + if: github.actor != 'dependabot[bot]' run: | git diff --exit-code || (echo "There are uncommitted changes, run pre-commit locally and commit again" && exit 1) - name: Verify if there are any new files after pre-commit + if: github.actor != 'dependabot[bot]' run: | unstaged_files=$(git ls-files --others --exclude-standard) if [ -n "$unstaged_files" ]; then