git-ecosystem / git-ecosystem/git-credential-manager

Multiple Authentication Popups with Azure DevOps OAuth Credential Type

Open
#2,288 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

auth-issue
Dominant language
C#
Stars
9.3k
Forks
2.9k
Avg merge
7d 1h
Merged PRs (30d)
14

Description

Version

2.7.0+d1dd8a4ded75a2b1faae653157ac1699609442ad

Operating system

Windows

OS version or distribution

MacOS Tahoe 26.3.1

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

Problem:
Our mobile application has multiple dependencies hosted within the same Azure DevOps organization. When resolving these dependencies, we encounter the following issues:

Multiple authentication popups - A separate authentication dialog appears for each dependency, rather than authenticating once for the entire organization.

GCM freezes on dismissal - If any popup is closed without completing authentication, Git Credential Manager (GCM) hangs indefinitely. Multiple git-credential-manager processes accumulate in Activity Monitor and do not terminate.

Root Cause:
This behavior started after switching to azreposCredentialType = oauth. Previously, credentials were stored per organization in Keychain using the format git://{org}@dev.azure.com/{org}, which allowed a single authentication to cover all dependencies within that organization.

Actual behavior
  • Parallel authentications for repos within Azure DevOps organization should be grouped internally (gcm) and lead to a single authentication user prompt.
  • Incase of failure to authenticate exit with non zero exit code.
Logs

gitconfig-redacted.txt
gcm-trace-redacted.log
gcm-git-redacted.log

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the attached gitconfig-redacted.txt, gcm-trace-redacted.log, and gcm-git-redacted.log to trace concurrent Azure DevOps OAuth requests and dismissal behavior. Done means requests for repositories in one organization share a single authentication prompt, and failed or dismissed authentication exits with a non-zero status without leaving GCM processes running.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, csharp, git
Domain
authentication, devtools, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.