From ca62fae508a1b9322668ca80b0c7624a8e5265f9 Mon Sep 17 00:00:00 2001 From: "Anuraag (Rag) Agrawal" Date: Fri, 21 Jun 2024 10:24:20 +0900 Subject: [PATCH 1/4] Fix step name in committer string example --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 57c2021..1594311 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ jobs: app-id: ${{ vars.APP_ID }} private-key: ${{ secrets.PRIVATE_KEY }} - id: committer - run: echo "string=${{steps.app-auth.outputs.app-slug}}[bot] <${{ steps.app-auth.outputs.installation-id }}+${{ steps.app-auth.outputs.app-slug }}[bot]@users.noreply.github.com>" >> "$GITHUB_OUTPUT" + run: echo "string=${{steps.app-token.outputs.app-slug}}[bot] <${{ steps.app-token.outputs.installation-id }}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>" >> "$GITHUB_OUTPUT" - run: echo "committer string is ${{steps.committer.outputs.string}}" ``` From afde745e09fe7962d86c5fc20093099368285a8f Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 24 Jun 2024 10:11:12 +0900 Subject: [PATCH 2/4] Add git config example --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/README.md b/README.md index 1594311..fe6ff38 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,34 @@ jobs: - run: echo "committer string is ${{steps.committer.outputs.string}}" ``` +### Configure git CLI for an app's bot user + +```yaml +on: [pull_request] + +jobs: + auto-format: + runs-on: ubuntu-latest + steps: + - uses: actions/create-github-app-token@v1 + id: app-token + with: + # required + app-id: ${{ vars.APP_ID }} + private-key: ${{ secrets.PRIVATE_KEY }} + - run: | + git config --global user.name '${{steps.app-token.outputs.app-slug}}[bot]' + git config --global user.email '+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>' + # git commands like commit work using the bot user + - run: | + git add . + git commit -m "Auto-generated changes" + git push +``` + +The `` is the numeric user ID of the app's bot user, which can be found under `https://api.github.com/users/%5Bbot%5D`. +For example, we can check at `https://api.github.com/users/dependabot%5Bbot%5D` to see the user ID of dependabot is 49699333. + ### Create a token for all repositories in the current owner's installation ```yaml From eded610234d234f88be9071bbe830acfa5edd7da Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 28 Jun 2024 10:21:33 +0900 Subject: [PATCH 3/4] Use gh cli to get user ID --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fe6ff38..30b989b 100644 --- a/README.md +++ b/README.md @@ -99,9 +99,14 @@ jobs: # required app-id: ${{ vars.APP_ID }} private-key: ${{ secrets.PRIVATE_KEY }} + - name: Retrieve 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 }} - run: | git config --global user.name '${{steps.app-token.outputs.app-slug}}[bot]' - git config --global user.email '+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>' + git config --global user.email '${{steps.get-user-id.outputs.user-id}}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>' # git commands like commit work using the bot user - run: | git add . From 4e95586d030f7daff70d582cd62d742aa2785e87 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 28 Jun 2024 12:55:02 +0900 Subject: [PATCH 4/4] Update existing doc and fix typo --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 30b989b..3d3060d 100644 --- a/README.md +++ b/README.md @@ -79,8 +79,13 @@ jobs: # required app-id: ${{ vars.APP_ID }} private-key: ${{ secrets.PRIVATE_KEY }} + - name: Retrieve 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.app-token.outputs.token }} - id: committer - run: echo "string=${{steps.app-token.outputs.app-slug}}[bot] <${{ steps.app-token.outputs.installation-id }}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>" >> "$GITHUB_OUTPUT" + run: echo "string=${{steps.app-token.outputs.app-slug}}[bot] <${{steps.get-user-id.outputs.user-id}}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>" >> "$GITHUB_OUTPUT" - run: echo "committer string is ${{steps.committer.outputs.string}}" ``` @@ -103,7 +108,7 @@ jobs: 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 }} + GH_TOKEN: ${{ steps.app-token.outputs.token }} - run: | git config --global user.name '${{steps.app-token.outputs.app-slug}}[bot]' git config --global user.email '${{steps.get-user-id.outputs.user-id}}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>'