From aea6c75c98979b000b7132f629d501bbca205039 Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Sun, 23 Oct 2022 21:29:17 -0700 Subject: [PATCH 1/3] Suppress "detached head" advice during checkout Checking out certain `ref` values will result in a warning about a detached `HEAD`: ``` You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false ``` However, this warning isn't useful in a CI environment... so suppress it. I realize on the original bug report that one user mentioned this warning highlighted a bug in his actions flow, but I consider that a super rare / happy accident. 99% of use cases will be _intentionally_ checking out a specific ref where the detached head state is inevitable, so the warning is pure noise. Passing the config this way sets it _only_ for this command. Note that it must be set [_before_ calling `checkout`](https://stackoverflow.com/a/72588008/770425). Resolve: https://github.com/actions/checkout/issues/494 --- src/git-command-manager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/git-command-manager.ts b/src/git-command-manager.ts index 699a963..1198169 100644 --- a/src/git-command-manager.ts +++ b/src/git-command-manager.ts @@ -123,7 +123,7 @@ class GitCommandManager { } async checkout(ref: string, startPoint: string): Promise { - const args = ['checkout', '--progress', '--force'] + const args = ['-c advice.detachedHead=false', 'checkout', '--progress', '--force'] if (startPoint) { args.push('-B', ref, startPoint) } else { From 009b9ae9e446ad8d9b8c809870b0fbcc5e03573e Mon Sep 17 00:00:00 2001 From: Ben Wells Date: Thu, 16 Jan 2025 14:14:48 -0500 Subject: [PATCH 2/3] Documentation update - add recommended permissions to Readme (#2043) * Update README.md * Update README.md Co-authored-by: Josh Gross --------- Co-authored-by: Josh Gross --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index b0f6224..f28fec7 100644 --- a/README.md +++ b/README.md @@ -311,6 +311,16 @@ jobs: git commit -m "generated" git push ``` + +## Recommended permissions + +When using the `checkout` action in your GitHub Actions workflow, it is recommended to set the following `GITHUB_TOKEN` permissions to ensure proper functionality, unless alternative auth is provided via the `token` or `ssh-key` inputs: + +```yaml +permissions: + contents: read +``` + *NOTE:* The user email is `{user.id}+{user.login}@users.noreply.github.com`. See users API: https://api.github.com/users/github-actions%5Bbot%5D From 85e6279cec87321a52edac9c87bce653a07cf6c2 Mon Sep 17 00:00:00 2001 From: Josh Gross Date: Thu, 16 Jan 2025 15:56:18 -0500 Subject: [PATCH 3/3] Adjust positioning of user email note and permissions heading (#2044) --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f28fec7..64dc025 100644 --- a/README.md +++ b/README.md @@ -312,7 +312,9 @@ jobs: git push ``` -## Recommended permissions +*NOTE:* The user email is `{user.id}+{user.login}@users.noreply.github.com`. See users API: https://api.github.com/users/github-actions%5Bbot%5D + +# Recommended permissions When using the `checkout` action in your GitHub Actions workflow, it is recommended to set the following `GITHUB_TOKEN` permissions to ensure proper functionality, unless alternative auth is provided via the `token` or `ssh-key` inputs: @@ -321,9 +323,6 @@ permissions: contents: read ``` -*NOTE:* The user email is `{user.id}+{user.login}@users.noreply.github.com`. See users API: https://api.github.com/users/github-actions%5Bbot%5D - - # License The scripts and documentation in this project are released under the [MIT License](LICENSE)