Skip to content

Azure DevOps - authenticating without user #2077

@cveld

Description

@cveld

Version

2.6.1+786ab03440ddc82e807a97c0e540f5247e44cec6

Operating system

Windows

OS version or distribution

Windows 11 24H2 10.0.26100 N/A Build 26100

Git hosting provider(s)

Azure DevOps

Other hosting provider

No response

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

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

Can you access the remote repository directly in the browser?

Yes, I can access the repository

Expected behavior

First time I expect that GCM pops up with an authentication window.
Second time it should use the dpapi cache.

Actual behavior

First time it immediately fails with fatal: Authentication failed for 'https://dev.azure.com/myorgname/myprojectname/_git/myreponame/'.

Cloning with https://[email protected]/myorgname/myprojectname/_git/myreponame does trigger the authentication dialog and cloning runs fine.
When I run clone again without a username, the dpapi bits removes the cache file and the dpapi folder for this org is left completely empty.

Logs

22:26:51.912745 ...\Application.cs:106  trace: [RunInternalAsync] Version: 2.6.1.0
22:26:51.912745 ...\Application.cs:107  trace: [RunInternalAsync] Runtime: .NET Framework 4.8.9290.0
22:26:51.913748 ...\Application.cs:108  trace: [RunInternalAsync] Platform: Windows (x86-64)
22:26:51.913748 ...\Application.cs:109  trace: [RunInternalAsync] OSVersion: 10.0 (build 26100)
22:26:51.913748 ...\Application.cs:110  trace: [RunInternalAsync] AppPath: C:\Program Files\Git\mingw64\bin\git-credential-manager.exe
22:26:51.913748 ...\Application.cs:111  trace: [RunInternalAsync] InstallDir: C:\Program Files\Git\mingw64\bin\
22:26:51.914745 ...\Application.cs:112  trace: [RunInternalAsync] Arguments: erase
22:26:51.949746 ...GitCommandBase.cs:32 trace: [ExecuteAsync] Start 'erase' command...
22:26:52.007272 ...GitCommandBase.cs:46 trace: [ExecuteAsync] Detecting host provider for input:
22:26:52.009257 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   protocol=https
22:26:52.009257 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   host=dev.azure.com
22:26:52.009257 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   path=myorg/myproject/_git/myrepo
22:26:52.009257 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   username=test
22:26:52.010258 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   password=********
22:26:52.010258 ...GitCommandBase.cs:47 trace: [ExecuteAsync]   wwwauth=Basic realm="https://tfsprodweu5.visualstudio.com/"
22:26:52.013256 ...viderRegistry.cs:149 trace: [GetProviderAsync] Performing auto-detection of host provider.
22:26:52.014256 ...viderRegistry.cs:162 trace: [GetProviderAsync] Auto-detect probe timeout is 2 ms.
22:26:52.015274 ...viderRegistry.cs:170 trace: [GetProviderAsync] Checking against 4 host providers registered with priority 'Normal'.
22:26:52.016256 ...GitCommandBase.cs:49 trace: [ExecuteAsync] Host provider 'Azure Repos' was selected.
22:26:52.019275 ...sHostProvider.cs:180 trace: [EraseCredentialAsync] Erasing stored credential in store with service=https://dev.azure.com/myorg account=...
22:26:52.022273 ...sHostProvider.cs:188 trace: [EraseCredentialAsync] No credential was erased.
22:26:52.022273 ...GitCommandBase.cs:53 trace: [ExecuteAsync] End 'erase' command...```

why is it authenticating with this test user?

Metadata

Metadata

Assignees

Labels

auth-issueAn issue authenticating to a hosthost:azure-reposSpecific to the Azure Repos (Azure DevOps, VSTS) host provider

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions