Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Azure DevOps, error on store with useHttpPath=false #1619

Open
calle2010 opened this issue May 16, 2024 · 3 comments
Open

Azure DevOps, error on store with useHttpPath=false #1619

calle2010 opened this issue May 16, 2024 · 3 comments
Assignees
Labels
auth-issue An issue authenticating to a host bug A bug in Git Credential Manager host:azure-repos Specific to the Azure Repos (Azure DevOps, VSTS) host provider

Comments

@calle2010
Copy link

Version

2.5.0+d34930736e131ad80e5690e5634ced1808aff3e2

Operating system

Windows

OS version or distribution

Windows 11 Enterprise

Git hosting provider(s)

Azure DevOps

Other hosting provider

No response

(Azure DevOps only) What format is your remote URL?

https://{org}@dev.azure.com/{org}

Can you access the remote repository directly in the browser?

Yes, I can access the repository

Expected behavior

When running a "git fetch", authentication should work trough our Enterprise Sign on and credential should be stored in Windows credential manager so that I am not asked again to authenticate.

Actual behavior

When running a "git fetch", the authentication should works trough our Enterprise Sign on but the credential is not stored in Windows credential manager and on next "git fetch" I have to log on again.

This happens when I use git-credential-manager from within WSL2 (with Git 2.45.1) as well as when using it in Git for Windows 2.45.1 with explicit configuration "useHttpPath=false".

From the logs (see below) I found that the 'get' command works well, but the 'store' command fails.
It seems to me that #1522 only fixed half of the problem.

Output:

$ git fetch
fatal: Cannot determine the organization name for this 'dev.azure.com' remote URL. Ensure the `credential.useHttpPath` configuration value is set, or set the organization name as the user in the remote URL '{org}@dev.azure.com'.
   at Microsoft.AzureRepos.UriHelpers.CreateOrganizationUri(Uri remoteUri, String& orgName)
   at Microsoft.AzureRepos.AzureReposHostProvider.GetServiceName(Uri remoteUri)
   at Microsoft.AzureRepos.AzureReposHostProvider.StoreCredentialAsync(InputArguments input)
   at GitCredentialManager.Commands.StoreCommand.ExecuteInternalAsync(InputArguments input, IHostProvider provider)
   at GitCredentialManager.Commands.GitCommandBase.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Invocation.AnonymousCommandHandler.<InvokeAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass15_0.<<AddMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseVersionOption>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__18_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__5_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<<UseExceptionHandler>b__0>d.MoveNext()

Logs

complete log output as captured through WSL:

14:19:19.895989 git.c:465               trace: built-in: git fetch
14:19:19.896505 run-command.c:657       trace: run_command: GIT_DIR=.git git remote-https origin https://[email protected]/organization-redacted/discovery/_git/discovery
14:19:19.897383 git.c:750               trace: exec: git-remote-https origin https://[email protected]/organization-redacted/discovery/_git/discovery
14:19:19.897421 run-command.c:657       trace: run_command: git-remote-https origin https://[email protected]/organization-redacted/discovery/_git/discovery
14:19:20.065690 run-command.c:657       trace: run_command: '/mnt/c/Users/user.name/AppData/Local/Programs/Git/mingw64/bin/git-credential-manager.exe get'
14:19:20.727094 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:20.798752 git.c:465               trace: built-in: git config --null --list
14:19:20.898266 ...\Application.cs:106  trace: [RunInternalAsync] Version: 2.5.0.0
14:19:20.899267 ...\Application.cs:107  trace: [RunInternalAsync] Runtime: .NET Framework 4.8.9232.0
14:19:20.899267 ...\Application.cs:108  trace: [RunInternalAsync] Platform: Windows (x86-64)
14:19:20.899267 ...\Application.cs:109  trace: [RunInternalAsync] OSVersion: 10.0 (build 22621)
14:19:20.899267 ...\Application.cs:110  trace: [RunInternalAsync] AppPath: C:\Users\user.name\AppData\Local\Programs\Git\mingw64\bin\git-credential-manager.exe
14:19:20.899267 ...\Application.cs:111  trace: [RunInternalAsync] InstallDir: C:\Users\user.name\AppData\Local\Programs\Git\mingw64\bin\
14:19:20.899267 ...\Application.cs:112  trace: [RunInternalAsync] Arguments: get
14:19:20.931795 ...GitCommandBase.cs:32 trace: [ExecuteAsync] Start 'get' command...
14:19:20.941791 ...GitCommandBase.cs:46 trace: [ExecuteAsync] Detecting host provider for input:
14:19:20.943791 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   protocol=https
14:19:20.943791 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   host=dev.azure.com
14:19:20.943791 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   username=organization-redacted
14:19:20.943791 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   wwwauth=Basic realm="https://tfsprodneu1.visualstudio.com/"
14:19:20.947791 ...viderRegistry.cs:149 trace: [GetProviderAsync] Performing auto-detection of host provider.
14:19:20.947791 ...viderRegistry.cs:162 trace: [GetProviderAsync] Auto-detect probe timeout is 2 ms.
14:19:20.948791 ...viderRegistry.cs:170 trace: [GetProviderAsync] Checking against 4 host providers registered with priority 'Normal'.
14:19:20.949791 ...GitCommandBase.cs:49 trace: [ExecuteAsync] Host provider 'Azure Repos' was selected.
14:19:20.953791 ...osHostProvider.cs:99 trace: [GetCredentialAsync] Looking for existing credential in store with service=https://dev.azure.com/organization-redacted account=...
14:19:20.960790 ...sHostProvider.cs:104 trace: [GetCredentialAsync] No existing credentials found.
14:19:20.960790 ...sHostProvider.cs:107 trace: [GetCredentialAsync] Creating new credential...
14:19:20.961792 ...sHostProvider.cs:226 trace: [GeneratePersonalAccessTokenAsync] Determining Microsoft Authentication Authority...
14:19:20.962791 ...eDevOpsRestApi.cs:43 trace: [GetAuthorityAsync] HTTP: HEAD https://dev.azure.com/organization-redacted
14:19:20.964791 ...pClientFactory.cs:60 trace: [CreateClient] Creating new HTTP client instance...
14:19:20.993794 ...pClientFactory.cs:80 trace: [CreateClient] Git's SSL/TLS backend is: OpenSsl
14:19:21.185475 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:21.208475 git.c:465               trace: built-in: git version
14:19:21.404613 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:21.465895 git.c:465               trace: built-in: git config --null --type=path http.https://dev.azure.com.sslCAInfo
14:19:21.661859 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:21.725508 git.c:465               trace: built-in: git config --null --type=path http.dev.azure.com.sslCAInfo
14:19:21.925534 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:21.993821 git.c:465               trace: built-in: git config --null --type=path http.https://azure.com.sslCAInfo
14:19:22.193652 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:22.264084 git.c:465               trace: built-in: git config --null --type=path http.azure.com.sslCAInfo
14:19:22.460114 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:22.526121 git.c:465               trace: built-in: git config --null --type=path http.sslCAInfo
14:19:22.720528 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:22.788340 git.c:465               trace: built-in: git config --null --type=path http.https://dev.azure.com.sslCAInfo
14:19:22.992621 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:23.057598 git.c:465               trace: built-in: git config --null --type=path http.dev.azure.com.sslCAInfo
14:19:23.252429 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:23.321433 git.c:465               trace: built-in: git config --null --type=path http.https://azure.com.sslCAInfo
14:19:23.515787 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:23.580585 git.c:465               trace: built-in: git config --null --type=path http.azure.com.sslCAInfo
14:19:23.775370 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:23.842098 git.c:465               trace: built-in: git config --null --type=path http.sslCAInfo
14:19:23.849097 ...ClientFactory.cs:113 trace: [CreateClient] Custom certificate verification has been enabled with certificate bundle at C:/Users/user.name/AppData/Local/Programs/Git/mingw64/etc/ssl/certs/ca-bundle.crt
14:19:24.041832 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:24.106806 git.c:465               trace: built-in: git config --null --type=path http.https://dev.azure.com.cookieFile
14:19:24.305683 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:24.371262 git.c:465               trace: built-in: git config --null --type=path http.dev.azure.com.cookieFile
14:19:24.574873 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:24.641532 git.c:465               trace: built-in: git config --null --type=path http.https://azure.com.cookieFile
14:19:24.842158 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:24.911038 git.c:465               trace: built-in: git config --null --type=path http.azure.com.cookieFile
14:19:25.110681 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:25.176696 git.c:465               trace: built-in: git config --null --type=path http.cookieFile
14:19:27.709612 ...eDevOpsRestApi.cs:46 trace: [GetAuthorityAsync] HTTP: Response code ignored.
14:19:27.710601 ...eDevOpsRestApi.cs:47 trace: [GetAuthorityAsync] Inspecting headers...
14:19:27.711601 ...eDevOpsRestApi.cs:54 trace: [GetAuthorityAsync] Found WWW-Authenticate header with Bearer authority 'https://login.microsoftonline.com/e0793d39-0939-496d-b129-198edd916feb'.
14:19:27.711601 ...sHostProvider.cs:228 trace: [GeneratePersonalAccessTokenAsync] Authority is 'https://login.microsoftonline.com/e0793d39-0939-496d-b129-198edd916feb'.
14:19:27.711601 ...sHostProvider.cs:231 trace: [GeneratePersonalAccessTokenAsync] Getting Azure AD access token...
14:19:27.720478 ...uthentication.cs:132 trace: [GetTokenForUserAsync] OS broker is not available or enabled.
14:19:27.720478 ...uthentication.cs:138 trace: [GetTokenForUserAsync] MSA passthrough is enabled.
14:19:27.743777 ...uthentication.cs:562 trace: [RegisterTokenCacheAsync] Configuring MSAL token cache...
14:19:27.770749 ...uthentication.cs:617 trace: [RegisterTokenCacheAsync] Token cache configured.
14:19:27.771747 ...uthentication.cs:225 trace: [GetTokenForUserAsync] Performing interactive auth with embedded web view...
14:19:27.815747 ...pClientFactory.cs:60 trace: [CreateClient] Creating new HTTP client instance...
14:19:27.815747 ...pClientFactory.cs:80 trace: [CreateClient] Git's SSL/TLS backend is: OpenSsl
14:19:28.008580 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:28.073812 git.c:465               trace: built-in: git config --null --type=path http.https://dev.azure.com.sslCAInfo
14:19:28.267509 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:28.334503 git.c:465               trace: built-in: git config --null --type=path http.dev.azure.com.sslCAInfo
14:19:28.535069 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:28.602569 git.c:465               trace: built-in: git config --null --type=path http.https://azure.com.sslCAInfo
14:19:28.802087 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:28.867287 git.c:465               trace: built-in: git config --null --type=path http.azure.com.sslCAInfo
14:19:29.065275 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:29.130225 git.c:465               trace: built-in: git config --null --type=path http.sslCAInfo
14:19:29.327068 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:29.390659 git.c:465               trace: built-in: git config --null --type=path http.https://dev.azure.com.sslCAInfo
14:19:29.594764 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:29.659337 git.c:465               trace: built-in: git config --null --type=path http.dev.azure.com.sslCAInfo
14:19:29.867467 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:29.942609 git.c:465               trace: built-in: git config --null --type=path http.https://azure.com.sslCAInfo
14:19:30.152655 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:30.226661 git.c:465               trace: built-in: git config --null --type=path http.azure.com.sslCAInfo
14:19:30.431489 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:30.502998 git.c:465               trace: built-in: git config --null --type=path http.sslCAInfo
14:19:30.509998 ...ClientFactory.cs:113 trace: [CreateClient] Custom certificate verification has been enabled with certificate bundle at C:/Users/user.name/AppData/Local/Programs/Git/mingw64/etc/ssl/certs/ca-bundle.crt
14:19:30.716397 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:30.785421 git.c:465               trace: built-in: git config --null --type=path http.https://dev.azure.com.cookieFile
14:19:31.001503 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:31.078589 git.c:465               trace: built-in: git config --null --type=path http.dev.azure.com.cookieFile
14:19:31.286735 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:31.357806 git.c:465               trace: built-in: git config --null --type=path http.https://azure.com.cookieFile
14:19:31.569837 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:31.637840 git.c:465               trace: built-in: git config --null --type=path http.azure.com.cookieFile
14:19:31.840810 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:31.913808 git.c:465               trace: built-in: git config --null --type=path http.cookieFile
14:19:37.039241 ...sHostProvider.cs:239 trace: [GeneratePersonalAccessTokenAsync] Acquired Azure access token. Account='[email protected]' Token='********'
14:19:37.039241 ...sHostProvider.cs:248 trace: [GeneratePersonalAccessTokenAsync] Creating Azure DevOps PAT with scopes 'vso.code_write, vso.packaging'...
14:19:37.040242 ...DevOpsRestApi.cs:117 trace: [CreatePersonalAccessTokenAsync] Getting Azure DevOps Identity Service endpoint...
14:19:37.041242 ...DevOpsRestApi.cs:167 trace: [GetIdentityServiceUriAsync] HTTP: GET https://dev.azure.com/organization-redacted/_apis/ServiceDefinitions/LocationService2/redacted?api-version=1.0
14:19:37.087379 ...DevOpsRestApi.cs:171 trace: [GetIdentityServiceUriAsync] HTTP: Response 200 [OK]
14:19:37.090420 ...DevOpsRestApi.cs:119 trace: [CreatePersonalAccessTokenAsync] Identity Service endpoint is 'https://spsprodneu1.vssps.visualstudio.com/redacted/'.
14:19:37.090420 ...DevOpsRestApi.cs:123 trace: [CreatePersonalAccessTokenAsync] HTTP: POST https://spsprodneu1.vssps.visualstudio.com/redacted/_apis/token/sessiontokens?api-version=1.0&tokentype=compact
14:19:37.563451 ...DevOpsRestApi.cs:128 trace: [CreatePersonalAccessTokenAsync] HTTP: Response 200 [OK]
14:19:37.571499 ...sHostProvider.cs:253 trace: [GeneratePersonalAccessTokenAsync] PAT created. PAT='********'
14:19:37.571499 ...sHostProvider.cs:109 trace: [GetCredentialAsync] Credential created.
14:19:37.572500 ...\GetCommand.cs:39    trace: [ExecuteInternalAsync] Writing credentials to output:
14:19:37.572500 ...\GetCommand.cs:40    trace: [ExecuteInternalAsync]   protocol=https
14:19:37.572500 ...\GetCommand.cs:40    trace: [ExecuteInternalAsync]   host=dev.azure.com
14:19:37.572500 ...\GetCommand.cs:40    trace: [ExecuteInternalAsync]   [email protected]
14:19:37.572500 ...\GetCommand.cs:40    trace: [ExecuteInternalAsync]   password=********
14:19:37.573452 ...GitCommandBase.cs:53 trace: [ExecuteAsync] End 'get' command...
14:19:38.062907 run-command.c:657       trace: run_command: '/mnt/c/Users/user.name/AppData/Local/Programs/Git/mingw64/bin/git-credential-manager.exe store'
14:19:38.712506 exec-cmd.c:243          trace: resolved executable dir: C:/Users/user.name/AppData/Local/Programs/Git/mingw64/bin
14:19:38.776693 git.c:465               trace: built-in: git config --null --list
14:19:38.880311 ...\Application.cs:106  trace: [RunInternalAsync] Version: 2.5.0.0
14:19:38.880311 ...\Application.cs:107  trace: [RunInternalAsync] Runtime: .NET Framework 4.8.9232.0
14:19:38.880311 ...\Application.cs:108  trace: [RunInternalAsync] Platform: Windows (x86-64)
14:19:38.880311 ...\Application.cs:109  trace: [RunInternalAsync] OSVersion: 10.0 (build 22621)
14:19:38.880311 ...\Application.cs:110  trace: [RunInternalAsync] AppPath: C:\Users\user.name\AppData\Local\Programs\Git\mingw64\bin\git-credential-manager.exe
14:19:38.880311 ...\Application.cs:111  trace: [RunInternalAsync] InstallDir: C:\Users\user.name\AppData\Local\Programs\Git\mingw64\bin\
14:19:38.880311 ...\Application.cs:112  trace: [RunInternalAsync] Arguments: store
14:19:38.916310 ...GitCommandBase.cs:32 trace: [ExecuteAsync] Start 'store' command...
14:19:38.925147 ...GitCommandBase.cs:46 trace: [ExecuteAsync] Detecting host provider for input:
14:19:38.926165 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   protocol=https
14:19:38.926165 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   host=dev.azure.com
14:19:38.926165 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   [email protected]
14:19:38.926165 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   password=********
14:19:38.930117 ...viderRegistry.cs:149 trace: [GetProviderAsync] Performing auto-detection of host provider.
14:19:38.930117 ...viderRegistry.cs:162 trace: [GetProviderAsync] Auto-detect probe timeout is 2 ms.
14:19:38.932113 ...viderRegistry.cs:170 trace: [GetProviderAsync] Checking against 4 host providers registered with priority 'Normal'.
14:19:38.933118 ...GitCommandBase.cs:49 trace: [ExecuteAsync] Host provider 'Azure Repos' was selected.
fatal: Cannot determine the organization name for this 'dev.azure.com' remote URL. Ensure the `credential.useHttpPath` configuration value is set, or set the organization name as the user in the remote URL '{org}@dev.azure.com'.
   at Microsoft.AzureRepos.UriHelpers.CreateOrganizationUri(Uri remoteUri, String& orgName)
   at Microsoft.AzureRepos.AzureReposHostProvider.GetServiceName(Uri remoteUri)
   at Microsoft.AzureRepos.AzureReposHostProvider.StoreCredentialAsync(InputArguments input)
   at GitCredentialManager.Commands.StoreCommand.ExecuteInternalAsync(InputArguments input, IHostProvider provider)
   at GitCredentialManager.Commands.GitCommandBase.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Invocation.AnonymousCommandHandler.<InvokeAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass15_0.<<AddMiddleware>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseVersionOption>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__18_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__5_0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<<UseExceptionHandler>b__0>d.MoveNext()
14:19:38.957889 run-command.c:657       trace: run_command: git rev-list --objects --stdin --not --exclude-hidden=fetch --all --quiet --alternate-refs
14:19:38.962874 run-command.c:1521      run_processes_parallel: preparing to run up to 1 tasks
14:19:38.962952 run-command.c:1549      run_processes_parallel: done
14:19:38.962983 run-command.c:657       trace: run_command: git maintenance run --auto --no-quiet
14:19:38.964187 git.c:465               trace: built-in: git maintenance run --auto --no-quiet

git credential-manager diagnose gives [ OK ] for everything.

@calle2010 calle2010 added the auth-issue An issue authenticating to a host label May 16, 2024
@calle2010
Copy link
Author

For the record, if I set

git config --global "credential.https://dev.azure.com.useHttpPath" true

in WSL, I see no errors. But then the fix in #1522 is also not needed.

@mjcheetham
Copy link
Collaborator

Due to the way Git calls credential helpers, and the way Azure DevOps authentication works GCM needs to know the account/org name to authenticate. Without credential.useHttpPath set to true, GCM doesn't know the org to authenticate against - it only gets "dev.azure.com" from Git which isn't enough information.

As you have found there appears to be a bug in storing..

@mjcheetham mjcheetham added bug A bug in Git Credential Manager host:azure-repos Specific to the Azure Repos (Azure DevOps, VSTS) host provider labels Jun 5, 2024
@mjcheetham mjcheetham self-assigned this Jun 5, 2024
@calle2010
Copy link
Author

calle2010 commented Jun 7, 2024

Thank you for looking into this. Please note that the organization is also included in the userinfo part of the URL:

https://[email protected]/organization-redacted/project/_git/reponame

This is the default format in Azure DevOps. As far as I understand this should make the useHttpPath configuration redundant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auth-issue An issue authenticating to a host bug A bug in Git Credential Manager host:azure-repos Specific to the Azure Repos (Azure DevOps, VSTS) host provider
Projects
None yet
Development

No branches or pull requests

2 participants