Skip to content

Forced case sensitivity on Windows based runners #2345

@Notten02

Description

@Notten02

TLDR

The checkout action V6 introduced forced case sensitivity on windows while the OS itself is case insensitive by default. This behavior was not in V5.

Explanation

Checkout makes use of the includeIf. in git-auth-helper.ts this command is case sensitive, even if your OS is not. It also ignores the ignoreCase=true flag of your git config. The Github action runner agent also seems to be pretty loose with the use of upper and lower cases witch results in a workspacedir variable that might not have matching cases.

what happens from a users perspective:

  • We trigger a pipeline with checkout@v6 running on a self hosted windows runner
  • The action starts, checkout runs and fails on a popup

what happened from the systems perspective:

  • A action was triggered and scheduled on a self hosted windows runner
  • The Github runner agent creates a folder on D:\Workspaces\repository and allows the pipeline to run
  • The checkout@v6 action starts running and wants to authenticate. Somewhere along the lines it wants the .git folder. It looks for it at D:/workspaces/TestCheckoutV6/TestCheckoutV6/.git.path using includeIf
  • includeIf cannot find the path provided. D:\workspaces does not exist on the windows runner
  • The git authentication fumbles trough its failed authentication attempts and eventually prompts the user for a username/password but also fails in this step as it cannot be done in headless mode and exits with a !0 exit code
  • The Github action runner notices the exit code and fails the build

Why are the public runners not affected
Github uses the workspace folder a (lower case). If the workspace folder is in all lower case there is no issue.

Workaround
Renaming the folder D:\Workspaces to D:\workspaces 'fixes' the issue

Logs and more

Logs of failed build Take note of the includeIf's, for example line 190.
2025-12-12T08:33:40.6201918Z Current runner version: '2.329.0'
2025-12-12T08:33:40.6211789Z Runner name: 'DEV-GHBLD-02'
2025-12-12T08:33:40.6212577Z Runner group name: 'windows'
2025-12-12T08:33:40.6213332Z Machine name: 'DEV-GHBLD-02'
2025-12-12T08:33:40.6216720Z ##[group]GITHUB_TOKEN Permissions
2025-12-12T08:33:40.6219653Z Contents: read
2025-12-12T08:33:40.6220249Z Metadata: read
2025-12-12T08:33:40.6220755Z Packages: read
2025-12-12T08:33:40.6221248Z ##[endgroup]
2025-12-12T08:33:40.6223416Z Secret source: Actions
2025-12-12T08:33:40.6224528Z Prepare workflow directory
2025-12-12T08:33:40.7218379Z Prepare all required actions
2025-12-12T08:33:40.7280993Z Getting action download info
2025-12-12T08:33:41.2665364Z Download action repository 'actions/checkout@v6' (SHA:8e8c483db84b4bee98b60c0593521ed34d9990e8)
2025-12-12T08:33:42.2502215Z Complete job name: checkout-clr
2025-12-12T08:33:42.3530436Z A job started hook has been configured by the self-hosted runner administrator
2025-12-12T08:33:42.3761559Z ##[group]Run 'D:\runnerScripts/pre_job_steps.ps1'
2025-12-12T08:33:42.3799112Z shell: C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.EXE -command ". '{0}'"
2025-12-12T08:33:42.3800470Z ##[endgroup]
2025-12-12T08:33:51.0738465Z ##[group]Run Write-Host D:\workspaces\_temp
2025-12-12T08:33:51.0739533Z �[36;1mWrite-Host D:\workspaces\_temp�[0m
2025-12-12T08:33:51.0792203Z shell: C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.EXE -command ". '{0}'"
2025-12-12T08:33:51.0793074Z env:
2025-12-12T08:33:51.0793544Z   GIT_TRACE_CURL: 1
2025-12-12T08:33:51.0793921Z   GIT_TRACE: 1
2025-12-12T08:33:51.0794297Z ##[endgroup]
2025-12-12T08:33:51.6305334Z D:\workspaces\_temp
2025-12-12T08:33:51.7714809Z ##[group]Run Get-ChildItem -Path D:\workspaces\_temp
2025-12-12T08:33:51.7715466Z �[36;1mGet-ChildItem -Path D:\workspaces\_temp�[0m
2025-12-12T08:33:51.7745313Z shell: C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.EXE -command ". '{0}'"
2025-12-12T08:33:51.7745751Z env:
2025-12-12T08:33:51.7745938Z   GIT_TRACE_CURL: 1
2025-12-12T08:33:51.7746126Z   GIT_TRACE: 1
2025-12-12T08:33:51.7746294Z ##[endgroup]
2025-12-12T08:33:52.2500072Z 
2025-12-12T08:33:52.2501948Z 
2025-12-12T08:33:52.2506099Z     Directory: D:\workspaces\_temp
2025-12-12T08:33:52.2506744Z 
2025-12-12T08:33:52.2506875Z 
2025-12-12T08:33:52.2520696Z Mode                 LastWriteTime         Length Name                                                                 
2025-12-12T08:33:52.2525263Z ----                 -------------         ------ ----                                                                 
2025-12-12T08:33:52.2536480Z d-----        12/12/2025   9:33 AM                _github_workflow                                                     
2025-12-12T08:33:52.2557394Z d-----        12/12/2025   9:33 AM                _runner_file_commands                                                
2025-12-12T08:33:52.2743388Z -a----        12/12/2025   9:33 AM            149 93d0fd73-660b-445c-8106-8ed972cc277d.ps1                             
2025-12-12T08:33:52.2759142Z -a----        12/12/2025   9:33 AM            140 c6d1544f-c5a5-4fe9-8df2-0665df90191c.ps1                             
2025-12-12T08:33:52.2795912Z 
2025-12-12T08:33:52.2796487Z 
2025-12-12T08:33:52.3668604Z ##[group]Run actions/checkout@v6
2025-12-12T08:33:52.3669084Z with:
2025-12-12T08:33:52.3669354Z   repository: voortman-steel-machinery/TestCheckoutV6
2025-12-12T08:33:52.3669934Z   token: ***
2025-12-12T08:33:52.3670101Z   ssh-strict: true
2025-12-12T08:33:52.3670278Z   ssh-user: git
2025-12-12T08:33:52.3670470Z   persist-credentials: true
2025-12-12T08:33:52.3670674Z   clean: true
2025-12-12T08:33:52.3670867Z   sparse-checkout-cone-mode: true
2025-12-12T08:33:52.3671091Z   fetch-depth: 1
2025-12-12T08:33:52.3671266Z   fetch-tags: false
2025-12-12T08:33:52.3671435Z   show-progress: true
2025-12-12T08:33:52.3671613Z   lfs: false
2025-12-12T08:33:52.3671761Z   submodules: false
2025-12-12T08:33:52.3671936Z   set-safe-directory: true
2025-12-12T08:33:52.3674730Z env:
2025-12-12T08:33:52.3674890Z   GIT_TRACE_CURL: 1
2025-12-12T08:33:52.3675043Z   GIT_TRACE: 1
2025-12-12T08:33:52.3675213Z ##[endgroup]
2025-12-12T08:33:52.5625649Z Syncing repository: voortman-steel-machinery/TestCheckoutV6
2025-12-12T08:33:52.5627136Z ##[group]Getting Git version info
2025-12-12T08:33:52.5627538Z Working directory is 'D:\workspaces\TestCheckoutV6\TestCheckoutV6'
2025-12-12T08:33:52.5778758Z [command]"C:\Program Files\Git\cmd\git.exe" version
2025-12-12T08:33:52.6760435Z 09:33:52.671745 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:52.6918418Z 09:33:52.689743 git.c:502               trace: built-in: git version
2025-12-12T08:33:52.6921033Z git version 2.51.2.windows.1
2025-12-12T08:33:52.6987108Z ##[endgroup]
2025-12-12T08:33:52.7002993Z Copying 'C:\Users\svc_tfs_build\.gitconfig' to 'D:\workspaces\_temp\81cdc341-e206-42af-9bd4-f4d50f46dda3\.gitconfig'
2025-12-12T08:33:52.7048565Z Temporarily overriding HOME='D:\workspaces\_temp\81cdc341-e206-42af-9bd4-f4d50f46dda3' before making global git config changes
2025-12-12T08:33:52.7049524Z Adding repository directory to the temporary git global config as a safe directory
2025-12-12T08:33:52.7058105Z [command]"C:\Program Files\Git\cmd\git.exe" config --global --add safe.directory D:\workspaces\TestCheckoutV6\TestCheckoutV6
2025-12-12T08:33:52.7890125Z 09:33:52.779740 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:52.8010244Z 09:33:52.799742 git.c:502               trace: built-in: git config --global --add safe.directory 'D:\workspaces\TestCheckoutV6\TestCheckoutV6'
2025-12-12T08:33:52.8166835Z Deleting the contents of 'D:\workspaces\TestCheckoutV6\TestCheckoutV6'
2025-12-12T08:33:52.8184592Z ##[group]Initializing the repository
2025-12-12T08:33:52.8196503Z [command]"C:\Program Files\Git\cmd\git.exe" init D:\workspaces\TestCheckoutV6\TestCheckoutV6
2025-12-12T08:33:52.9118410Z 09:33:52.906744 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:52.9261487Z 09:33:52.924746 git.c:502               trace: built-in: git init 'D:\workspaces\TestCheckoutV6\TestCheckoutV6'
2025-12-12T08:33:53.0072691Z Initialized empty Git repository in D:/Workspaces/TestCheckoutV6/TestCheckoutV6/.git/
2025-12-12T08:33:53.0157544Z [command]"C:\Program Files\Git\cmd\git.exe" remote add origin https://github.com/voortman-steel-machinery/TestCheckoutV6
2025-12-12T08:33:53.1004247Z 09:33:53.097748 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:53.1206501Z 09:33:53.119750 git.c:502               trace: built-in: git remote add origin https://github.com/voortman-steel-machinery/TestCheckoutV6
2025-12-12T08:33:53.1400793Z ##[endgroup]
2025-12-12T08:33:53.1401308Z ##[group]Disabling automatic garbage collection
2025-12-12T08:33:53.1412248Z [command]"C:\Program Files\Git\cmd\git.exe" config --local gc.auto 0
2025-12-12T08:33:53.2257102Z 09:33:53.222752 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:53.2535513Z 09:33:53.252751 git.c:502               trace: built-in: git config --local gc.auto 0
2025-12-12T08:33:53.2649706Z ##[endgroup]
2025-12-12T08:33:53.2650100Z ##[group]Setting up auth
2025-12-12T08:33:53.2650465Z Removing SSH command configuration
2025-12-12T08:33:53.2662933Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp core\.sshCommand
2025-12-12T08:33:53.3569795Z 09:33:53.354753 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:53.3813533Z 09:33:53.380754 git.c:502               trace: built-in: git config --local --name-only --get-regexp 'core\.sshCommand'
2025-12-12T08:33:53.3905058Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\""
2025-12-12T08:33:53.4877507Z 09:33:53.484756 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:53.5076912Z 09:33:53.506757 git.c:807               trace: exec: git-submodule foreach --recursive 'sh -c "git config --local --name-only --get-regexp '\''core\.sshCommand'\'' && git config --local --unset-all '\''core.sshCommand'\'' || :"'
2025-12-12T08:33:53.5082396Z 09:33:53.507760 run-command.c:674       trace: run_command: git-submodule foreach --recursive 'sh -c "git config --local --name-only --get-regexp '\''core\.sshCommand'\'' && git config --local --unset-all '\''core.sshCommand'\'' || :"'
2025-12-12T08:33:53.5083912Z 09:33:53.507760 run-command.c:935       trace: start_command: git-submodule foreach --recursive 'sh -c "git config --local --name-only --get-regexp '\''core\.sshCommand'\'' && git config --local --unset-all '\''core.sshCommand'\'' || :"'
2025-12-12T08:33:53.8991219Z 09:33:53.895766 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:54.3202767Z 09:33:54.318118 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:54.3296953Z 09:33:54.328120 git.c:807               trace: exec: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
2025-12-12T08:33:54.3297620Z 09:33:54.329123 run-command.c:674       trace: run_command: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
2025-12-12T08:33:54.3298240Z 09:33:54.329123 run-command.c:935       trace: start_command: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
2025-12-12T08:33:54.3709097Z 09:33:54.369120 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:54.4238958Z 09:33:54.421776 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:54.4323093Z 09:33:54.431776 git.c:807               trace: exec: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
2025-12-12T08:33:54.4324117Z 09:33:54.431776 run-command.c:674       trace: run_command: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
2025-12-12T08:33:54.4324712Z 09:33:54.431776 run-command.c:935       trace: start_command: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
2025-12-12T08:33:54.4729961Z 09:33:54.471124 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:54.6907213Z 09:33:54.685126 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:54.7010016Z 09:33:54.691781 git.c:502               trace: built-in: git rev-parse --git-dir
2025-12-12T08:33:54.8339913Z 09:33:54.831784 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:54.8392446Z 09:33:54.838784 git.c:502               trace: built-in: git rev-parse --git-path objects
2025-12-12T08:33:55.0813425Z 09:33:55.079098 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:55.0872776Z 09:33:55.086098 git.c:502               trace: built-in: git rev-parse --show-prefix
2025-12-12T08:33:55.1850434Z 09:33:55.182792 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:55.1929032Z 09:33:55.192098 git.c:502               trace: built-in: git rev-parse --show-toplevel
2025-12-12T08:33:55.4737703Z 09:33:55.471797 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:55.4823379Z 09:33:55.481802 git.c:502               trace: built-in: git submodule--helper foreach --recursive -- 'sh -c "git config --local --name-only --get-regexp '\''core\.sshCommand'\'' && git config --local --unset-all '\''core.sshCommand'\'' || :"'
2025-12-12T08:33:55.4976034Z Removing HTTP extra header
2025-12-12T08:33:55.4985118Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2025-12-12T08:33:55.5911283Z 09:33:55.588800 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:55.6172513Z 09:33:55.616799 git.c:502               trace: built-in: git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader'
2025-12-12T08:33:55.6276835Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "sh -c \"git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :\""
2025-12-12T08:33:55.7152498Z 09:33:55.712802 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:55.7349540Z 09:33:55.733803 git.c:807               trace: exec: git-submodule foreach --recursive 'sh -c "git config --local --name-only --get-regexp '\''http\.https\:\/\/github\.com\/\.extraheader'\'' && git config --local --unset-all '\''http.https://github.com/.extraheader'\'' || :"'
2025-12-12T08:33:55.7352414Z 09:33:55.733803 run-command.c:674       trace: run_command: git-submodule foreach --recursive 'sh -c "git config --local --name-only --get-regexp '\''http\.https\:\/\/github\.com\/\.extraheader'\'' && git config --local --unset-all '\''http.https://github.com/.extraheader'\'' || :"'
2025-12-12T08:33:55.7355799Z 09:33:55.733803 run-command.c:935       trace: start_command: git-submodule foreach --recursive 'sh -c "git config --local --name-only --get-regexp '\''http\.https\:\/\/github\.com\/\.extraheader'\'' && git config --local --unset-all '\''http.https://github.com/.extraheader'\'' || :"'
2025-12-12T08:33:56.1204971Z 09:33:56.117812 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:56.5338460Z 09:33:56.531819 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:56.5422898Z 09:33:56.541818 git.c:807               trace: exec: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
2025-12-12T08:33:56.5423743Z 09:33:56.541818 run-command.c:674       trace: run_command: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
2025-12-12T08:33:56.5424365Z 09:33:56.541818 run-command.c:935       trace: start_command: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
2025-12-12T08:33:56.5849129Z 09:33:56.582819 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:56.6361917Z 09:33:56.633821 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:56.6442585Z 09:33:56.643822 git.c:807               trace: exec: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
2025-12-12T08:33:56.6443256Z 09:33:56.643822 run-command.c:674       trace: run_command: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
2025-12-12T08:33:56.6443918Z 09:33:56.643822 run-command.c:935       trace: start_command: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
2025-12-12T08:33:56.6824900Z 09:33:56.679824 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:56.9101213Z 09:33:56.907827 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:56.9156677Z 09:33:56.914828 git.c:502               trace: built-in: git rev-parse --git-dir
2025-12-12T08:33:57.0476992Z 09:33:57.045829 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:57.0531754Z 09:33:57.052832 git.c:502               trace: built-in: git rev-parse --git-path objects
2025-12-12T08:33:57.3142735Z 09:33:57.311836 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:57.3213893Z 09:33:57.320837 git.c:502               trace: built-in: git rev-parse --show-prefix
2025-12-12T08:33:57.4221322Z 09:33:57.419837 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:57.4270319Z 09:33:57.425839 git.c:502               trace: built-in: git rev-parse --show-toplevel
2025-12-12T08:33:57.6626335Z 09:33:57.660845 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:57.6711415Z 09:33:57.669845 git.c:502               trace: built-in: git submodule--helper foreach --recursive -- 'sh -c "git config --local --name-only --get-regexp '\''http\.https\:\/\/github\.com\/\.extraheader'\'' && git config --local --unset-all '\''http.https://github.com/.extraheader'\'' || :"'
2025-12-12T08:33:57.6852449Z Removing includeIf entries pointing to credentials config files
2025-12-12T08:33:57.6863417Z [command]"C:\Program Files\Git\cmd\git.exe" config --local --name-only --get-regexp ^includeIf\.gitdir:
2025-12-12T08:33:57.7594340Z 09:33:57.757845 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:57.7806710Z 09:33:57.779847 git.c:502               trace: built-in: git config --local --name-only --get-regexp '^includeIf\.gitdir:'
2025-12-12T08:33:57.7896234Z [command]"C:\Program Files\Git\cmd\git.exe" submodule foreach --recursive "git config --local --show-origin --name-only --get-regexp remote.origin.url"
2025-12-12T08:33:57.9065187Z 09:33:57.897234 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:57.9291662Z 09:33:57.928239 git.c:807               trace: exec: git-submodule foreach --recursive 'git config --local --show-origin --name-only --get-regexp remote.origin.url'
2025-12-12T08:33:57.9293564Z 09:33:57.928849 run-command.c:674       trace: run_command: git-submodule foreach --recursive 'git config --local --show-origin --name-only --get-regexp remote.origin.url'
2025-12-12T08:33:57.9295366Z 09:33:57.928849 run-command.c:935       trace: start_command: git-submodule foreach --recursive 'git config --local --show-origin --name-only --get-regexp remote.origin.url'
2025-12-12T08:33:58.2864559Z 09:33:58.284855 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:58.6740252Z 09:33:58.672229 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:58.6819740Z 09:33:58.681234 git.c:807               trace: exec: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
2025-12-12T08:33:58.6820936Z 09:33:58.681234 run-command.c:674       trace: run_command: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
2025-12-12T08:33:58.6822162Z 09:33:58.681234 run-command.c:935       trace: start_command: git-sh-i18n--envsubst --variables 'usage: $dashless $USAGE'
2025-12-12T08:33:58.7206926Z 09:33:58.718865 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:58.7745538Z 09:33:58.772232 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:58.7846362Z 09:33:58.784231 git.c:807               trace: exec: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
2025-12-12T08:33:58.7847192Z 09:33:58.784231 run-command.c:674       trace: run_command: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
2025-12-12T08:33:58.7848049Z 09:33:58.784231 run-command.c:935       trace: start_command: git-sh-i18n--envsubst 'usage: $dashless $USAGE'
2025-12-12T08:33:58.8256316Z 09:33:58.823866 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:59.0671373Z 09:33:59.065236 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:59.0724382Z 09:33:59.071873 git.c:502               trace: built-in: git rev-parse --git-dir
2025-12-12T08:33:59.1988396Z 09:33:59.196874 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:59.2041408Z 09:33:59.203876 git.c:502               trace: built-in: git rev-parse --git-path objects
2025-12-12T08:33:59.4269342Z 09:33:59.424879 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:59.4322945Z 09:33:59.431879 git.c:502               trace: built-in: git rev-parse --show-prefix
2025-12-12T08:33:59.5158836Z 09:33:59.514246 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:59.5211203Z 09:33:59.520250 git.c:502               trace: built-in: git rev-parse --show-toplevel
2025-12-12T08:33:59.7550601Z 09:33:59.753253 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:33:59.7635033Z 09:33:59.762887 git.c:502               trace: built-in: git submodule--helper foreach --recursive -- 'git config --local --show-origin --name-only --get-regexp remote.origin.url'
2025-12-12T08:33:59.7811060Z [command]"C:\Program Files\Git\cmd\git.exe" config --file D:\workspaces\_temp\git-credentials-e4e25948-2257-4bfc-92a0-68ba74ea1669.config http.https://github.com/.extraheader "AUTHORIZATION: basic ***"
2025-12-12T08:33:59.8727421Z 09:33:59.858888 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:33:59.8839167Z 09:33:59.881889 git.c:502               trace: built-in: git config --file 'D:\workspaces\_temp\git-credentials-e4e25948-2257-4bfc-92a0-68ba74ea1669.config' http.https://github.com/.extraheader 'AUTHORIZATION: basic ***'
2025-12-12T08:33:59.9109229Z [command]"C:\Program Files\Git\cmd\git.exe" config --local includeIf.gitdir:D:/workspaces/TestCheckoutV6/TestCheckoutV6/.git.path D:\workspaces\_temp\git-credentials-e4e25948-2257-4bfc-92a0-68ba74ea1669.config
2025-12-12T08:34:00.0050159Z 09:34:00.000892 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:34:00.0321094Z 09:34:00.030894 git.c:502               trace: built-in: git config --local includeIf.gitdir:D:/workspaces/TestCheckoutV6/TestCheckoutV6/.git.path 'D:\workspaces\_temp\git-credentials-e4e25948-2257-4bfc-92a0-68ba74ea1669.config'
2025-12-12T08:34:00.0453241Z [command]"C:\Program Files\Git\cmd\git.exe" config --local includeIf.gitdir:D:/workspaces/TestCheckoutV6/TestCheckoutV6/.git/worktrees/*.path D:\workspaces\_temp\git-credentials-e4e25948-2257-4bfc-92a0-68ba74ea1669.config
2025-12-12T08:34:00.1372820Z 09:34:00.134894 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:34:00.1606572Z 09:34:00.159899 git.c:502               trace: built-in: git config --local 'includeIf.gitdir:D:/workspaces/TestCheckoutV6/TestCheckoutV6/.git/worktrees/*.path' 'D:\workspaces\_temp\git-credentials-e4e25948-2257-4bfc-92a0-68ba74ea1669.config'
2025-12-12T08:34:00.1729718Z [command]"C:\Program Files\Git\cmd\git.exe" config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-e4e25948-2257-4bfc-92a0-68ba74ea1669.config
2025-12-12T08:34:00.2623239Z 09:34:00.259897 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:34:00.2818538Z 09:34:00.280898 git.c:502               trace: built-in: git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-e4e25948-2257-4bfc-92a0-68ba74ea1669.config
2025-12-12T08:34:00.2930565Z [command]"C:\Program Files\Git\cmd\git.exe" config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-e4e25948-2257-4bfc-92a0-68ba74ea1669.config
2025-12-12T08:34:00.3697387Z 09:34:00.367900 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:34:00.3885807Z 09:34:00.387901 git.c:502               trace: built-in: git config --local 'includeIf.gitdir:/github/workspace/.git/worktrees/*.path' /github/runner_temp/git-credentials-e4e25948-2257-4bfc-92a0-68ba74ea1669.config
2025-12-12T08:34:00.4005107Z ##[endgroup]
2025-12-12T08:34:00.4005643Z ##[group]Fetching the repository
2025-12-12T08:34:00.4020225Z [command]"C:\Program Files\Git\cmd\git.exe" -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +95079154a9d8efcae22364ce1d83d0d5a99e7d89:refs/remotes/origin/no
2025-12-12T08:34:00.4902055Z 09:34:00.487902 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
2025-12-12T08:34:00.5121402Z 09:34:00.511232 git.c:502               trace: built-in: git fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +95079154a9d8efcae22364ce1d83d0d5a99e7d89:refs/remotes/origin/no
2025-12-12T08:34:00.5238127Z 09:34:00.522902 run-command.c:674       trace: run_command: GIT_DIR=.git git remote-https origin https://github.com/voortman-steel-machinery/TestCheckoutV6
2025-12-12T08:34:00.5242621Z 09:34:00.522902 run-command.c:935       trace: start_command: git remote-https origin https://github.com/voortman-steel-machinery/TestCheckoutV6
2025-12-12T08:34:00.5654511Z 09:34:00.563311 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:34:00.5730512Z 09:34:00.571911 git.c:807               trace: exec: git-remote-https origin https://github.com/voortman-steel-machinery/TestCheckoutV6
2025-12-12T08:34:00.5731786Z 09:34:00.571911 run-command.c:674       trace: run_command: git-remote-https origin https://github.com/voortman-steel-machinery/TestCheckoutV6
2025-12-12T08:34:00.5732969Z 09:34:00.571911 run-command.c:935       trace: start_command: git-remote-https origin https://github.com/voortman-steel-machinery/TestCheckoutV6
2025-12-12T08:34:00.6451573Z 09:34:00.641913 exec-cmd.c:266          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
2025-12-12T08:34:00.7786688Z 09:34:00.777922 http.c:915              == Info: Couldn't find host github.com in the .netrc file; using defaults
2025-12-12T08:34:00.7998255Z 09:34:00.799235 http.c:915              == Info: Host github.com:443 was resolved.
2025-12-12T08:34:00.7998944Z 09:34:00.799235 http.c:915              == Info: IPv6: (none)
2025-12-12T08:34:00.7999633Z 09:34:00.799235 http.c:915              == Info: IPv4: 140.82.121.3
2025-12-12T08:34:00.8000230Z 09:34:00.799235 http.c:915              == Info:   Trying 140.82.121.3:443...
2025-12-12T08:34:00.8098832Z 09:34:00.809234 http.c:915              == Info: schannel: disabled automatic use of client certificate
2025-12-12T08:34:00.8157998Z 09:34:00.815236 http.c:915              == Info: ALPN: curl offers http/1.1
2025-12-12T08:34:00.8420957Z 09:34:00.841240 http.c:915              == Info: ALPN: server accepted http/1.1
2025-12-12T08:34:00.8421926Z 09:34:00.841240 http.c:915              == Info: Established connection to github.com (140.82.121.3 port 443) from 10.100.2.80 port 56950 
2025-12-12T08:34:00.8422771Z 09:34:00.841240 http.c:915              == Info: using HTTP/1.x
2025-12-12T08:34:00.8425526Z 09:34:00.841240 http.c:862              => Send header, 0000000257 bytes (0x00000101)
2025-12-12T08:34:00.8426667Z 09:34:00.841240 http.c:874              => Send header: GET /voortman-steel-machinery/TestCheckoutV6/info/refs?service=git-upload-pack HTTP/1.1
2025-12-12T08:34:00.8427673Z 09:34:00.841240 http.c:874              => Send header: Host: github.com
2025-12-12T08:34:00.8428437Z 09:34:00.841908 http.c:874              => Send header: User-Agent: git/2.51.2 (github-actions-checkout)
2025-12-12T08:34:00.8429174Z 09:34:00.841908 http.c:874              => Send header: Accept: */*
2025-12-12T08:34:00.8429910Z 09:34:00.841908 http.c:874              => Send header: Accept-Encoding: deflate, gzip, br, zstd
2025-12-12T08:34:00.8430641Z 09:34:00.841908 http.c:874              => Send header: Pragma: no-cache
2025-12-12T08:34:00.8431958Z 09:34:00.841908 http.c:874              => Send header: Git-Protocol: version=2
2025-12-12T08:34:00.8432553Z 09:34:00.841908 http.c:874              => Send header:
2025-12-12T08:34:00.8434025Z 09:34:00.843100 http.c:915              == Info: Request completely sent off
2025-12-12T08:34:00.8511207Z 09:34:00.850239 http.c:915              == Info: schannel: remote party requests renegotiation
2025-12-12T08:34:00.8511746Z 09:34:00.850239 http.c:915              == Info: schannel: renegotiating SSL/TLS connection
2025-12-12T08:34:00.8515168Z 09:34:00.851235 http.c:915              == Info: schannel: SSL/TLS connection renegotiated
2025-12-12T08:34:00.8516436Z 09:34:00.851235 http.c:915              == Info: schannel: remote party requests renegotiation
2025-12-12T08:34:00.8517248Z 09:34:00.851235 http.c:915              == Info: schannel: renegotiating SSL/TLS connection
2025-12-12T08:34:00.8518191Z 09:34:00.851235 http.c:915              == Info: schannel: SSL/TLS connection renegotiated
2025-12-12T08:34:00.9570036Z 09:34:00.955924 http.c:862              <= Recv header, 0000000027 bytes (0x0000001b)
2025-12-12T08:34:00.9570521Z 09:34:00.955924 http.c:874              <= Recv header: HTTP/1.1 401 Unauthorized
2025-12-12T08:34:00.9570940Z 09:34:00.955924 http.c:862              <= Recv header, 0000000026 bytes (0x0000001a)
2025-12-12T08:34:00.9571317Z 09:34:00.955924 http.c:874              <= Recv header: Server: GitHub-Babel/3.0
2025-12-12T08:34:00.9571683Z 09:34:00.955924 http.c:862              <= Recv header, 0000000054 bytes (0x00000036)
2025-12-12T08:34:00.9572139Z 09:34:00.955924 http.c:874              <= Recv header: Content-Security-Policy: default-src 'none'; sandbox
2025-12-12T08:34:00.9572574Z 09:34:00.955924 http.c:862              <= Recv header, 0000000041 bytes (0x00000029)
2025-12-12T08:34:00.9572979Z 09:34:00.955924 http.c:874              <= Recv header: Content-Type: text/plain; charset=UTF-8
2025-12-12T08:34:00.9573371Z 09:34:00.955924 http.c:862              <= Recv header, 0000000040 bytes (0x00000028)
2025-12-12T08:34:00.9574367Z 09:34:00.955924 http.c:874              <= Recv header: www-authenticate: Basic realm="GitHub"
2025-12-12T08:34:00.9574802Z 09:34:00.955924 http.c:862              <= Recv header, 0000000020 bytes (0x00000014)
2025-12-12T08:34:00.9575547Z 09:34:00.955924 http.c:874              <= Recv header: Content-Length: 21
2025-12-12T08:34:00.9576166Z 09:34:00.955924 http.c:862              <= Recv header, 0000000037 bytes (0x00000025)
2025-12-12T08:34:00.9576955Z 09:34:00.955924 http.c:874              <= Recv header: Date: Fri, 12 Dec 2025 08:34:01 GMT
2025-12-12T08:34:00.9577793Z 09:34:00.955924 http.c:862              <= Recv header, 0000000023 bytes (0x00000017)
2025-12-12T08:34:00.9578527Z 09:34:00.955924 http.c:874              <= Recv header: X-Frame-Options: DENY
2025-12-12T08:34:00.9579445Z 09:34:00.955924 http.c:862              <= Recv header, 0000000073 bytes (0x00000049)
2025-12-12T08:34:00.9580496Z 09:34:00.955924 http.c:874              <= Recv header: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
2025-12-12T08:34:00.9581517Z 09:34:00.955924 http.c:862              <= Recv header, 0000000057 bytes (0x00000039)
2025-12-12T08:34:00.9583480Z 09:34:00.955924 http.c:874              <= Recv header: X-GitHub-Request-Id: DE76:E951:262ACC4:2156E1E:693BD378
2025-12-12T08:34:00.9584390Z 09:34:00.955924 http.c:862              <= Recv header, 0000000002 bytes (0x00000002)
2025-12-12T08:34:00.9584883Z 09:34:00.955924 http.c:874              <= Recv header:
2025-12-12T08:34:00.9585409Z 09:34:00.955924 http.c:888              <= Recv data, 0000000021 bytes (0x00000015)
2025-12-12T08:34:00.9586131Z 09:34:00.955924 http.c:903              <= Recv data: Repository not found.
2025-12-12T08:34:00.9586977Z 09:34:00.955924 http.c:915              == Info: Connection #0 to host github.com:443 left intact
2025-12-12T08:34:00.9611634Z ##[error]fatal: could not read Username for 'https://github.com': terminal prompts disabled
2025-12-12T08:34:00.9716457Z The process 'C:\Program Files\Git\cmd\git.exe' failed with exit code 128
2025-12-12T08:34:00.9717126Z Waiting 11 seconds before trying again
[more of the same]
Used pipeline for testing
name: Windows Hosted Checkout

on:
  push:
jobs:
  checkout-clr:
    runs-on: [self-hosted, DEV-GHBLD-01]
    env: 
      GIT_TRACE_CURL: 1
      GIT_TRACE: 1
    steps:
      - name: echo temp dir
        run: Write-Host ${{ runner.temp }}
        shell: powershell

      - name: echo temp contents
        run: Get-ChildItem -Path ${{ runner.temp }}
        shell: powershell

      - name: Checkout repository
        uses: actions/checkout@v6
        
      - name: Get additional data
        if: always()
        run: |
          Write-Host "Local git config:"
          cd .git
          git config --local --list
          cd ..

          $gitCredentials = Get-Content -Path "${{ runner.temp }}\git-credentials-*"
          Write-Host "Contents of .git-credentials files:"
          Write-Host $gitCredentials

  checkout-clr-sanity: # still oke with v5?
    runs-on: [self-hosted, DEV-GHBLD-01]
    env:
      GIT_TERMINAL_PROMPT: 0
    steps:
      - name: echo temp dir
        run: Write-Host ${{ runner.temp }}
        shell: powershell

      - name: echo temp contents
        run: Get-ChildItem -Path ${{ runner.temp }}
        shell: powershell

      - name: Checkout repository
        uses: actions/checkout@v5

  checkout-windows-github-hosted:
    runs-on: windows-latest
    env: 
      GIT_TRACE_CURL: 1
      GIT_TRACE: 1
    steps:
      - name: echo temp dir
        run: Write-Host ${{ runner.temp }}
        shell: powershell

      - name: echo temp contents
        run: Get-ChildItem -Path ${{ runner.temp }}
        shell: powershell

      - name: Checkout repository
        uses: actions/checkout@v6
        
      - name: Get additional data
        if: always()
        run: |
          Write-Host "Local git config:"
          cd .git
          git config --local --list
          cd ..

          $gitCredentials = Get-Content -Path "${{ runner.temp }}\git-credentials-*"
          Write-Host "Contents of .git-credentials files:"
          Write-Host $gitCredentials

How it looks on the build node's filesystem:

Image Image

Tested and noted the behaviour on

  • Windows server 2019
  • Windows server 2022
  • Widnows server 2025

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions