diff --git a/.github/workflows/pre_commit.yml b/.github/workflows/pre_commit.yml index 27d7ac3e..e0d94e6a 100644 --- a/.github/workflows/pre_commit.yml +++ b/.github/workflows/pre_commit.yml @@ -8,7 +8,6 @@ permissions: jobs: pre-commit: - if: ${{ github.event.pull_request.user.login != 'dependabot[bot]' }} runs-on: ubuntu-latest permissions: contents: write @@ -19,6 +18,23 @@ jobs: with: egress-policy: audit + - name: Generate GitHub App Token + id: generate-token + uses: actions/create-github-app-token@c1a285145b9d317df6ced56c09f525b5c2b6f755 # v1.11.1 + with: + app-id: ${{ secrets.GH_APP_ID }} + private-key: ${{ secrets.GH_APP_PRIVATE_KEY }} + + - name: Get GitHub App User ID + id: get-user-id + run: echo "user-id=$(gh api "/users/${{ steps.generate-token.outputs.app-slug }}[bot]" --jq .id)" >> $GITHUB_OUTPUT + env: + GH_TOKEN: ${{ steps.generate-token.outputs.token }} + + - id: committer + run: | + echo "string=${{ steps.generate-token.outputs.app-slug }}[bot] <${{ steps.get-user-id.outputs.user-id }}+${{ steps.generate-token.outputs.app-slug }}[bot]@users.noreply.github.com>" >> "$GITHUB_OUTPUT" + - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -35,25 +51,25 @@ jobs: continue-on-error: true - name: Set up git config run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name ${{ steps.generate-token.outputs.app-slug }}[bot] + git config --global user.email "${{ steps.get-user-id.outputs.user-id }}+${{ steps.generate-token.outputs.app-slug }}[bot]@users.noreply.github.com" - name: git add run: | git add . - git diff --staged --quiet || git commit -m ":file_folder: pre-commit - > Made via .github/workflows/pre_commit.yml" || echo "pre-commit: no changes" + git diff --staged --quiet || echo "CHANGES_DETECTED=true" >> $GITHUB_ENV - name: Create Pull Request + if: env.CHANGES_DETECTED == 'true' uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # v7.0.6 with: - token: ${{ secrets.GITHUB_TOKEN }} - commit-message: "ci: 🤖 format everything with pre-commit" - committer: GitHub Action - author: GitHub Action + token: ${{ steps.generate-token.outputs.token }} + commit-message: ":file_folder: pre-commit" + committer: ${{ steps.committer.outputs.string }} + author: ${{ steps.committer.outputs.string }} signoff: true branch: pre-commit - title: "🤖 format everything with pre-commit by " + title: "🤖 format everything with pre-commit by <${{ steps.generate-token.outputs.app-slug }}>" body: | - Auto-generated by [create-pull-request][1] + Auto-generated by [create-pull-request][1] with **${{ steps.generate-token.outputs.app-slug }}** [1]: https://github.com/peter-evans/create-pull-request draft: false