Skip to content

Releases: git-ecosystem/git-credential-manager

GCM 3.0.0

GCM 3.0.0 Pre-release
Pre-release

Choose a tag to compare

@mjcheetham mjcheetham released this 24 Sep 10:43

Git Credential Manager 3.0 brings native ahead-of-time compilation, Microsoft authentication broker support across Windows, macOS, and Linux, and a refreshed terminal experience.

These notes cover changes since GCM 2.9.1.

Important

This release changes supported operating systems and the default Azure Repos authentication experience. Review the breaking changes before upgrading.

Breaking changes and upgrade notes

Updated platform and .NET requirements

GCM now targets .NET 10 on all platforms. Windows builds no longer use .NET Framework.

Platform or installation method Requirement
Windows Windows 10 or later; Windows Server 2016 or later
macOS macOS 14 or later
Linux A distribution supported by .NET 10
.NET tool Install the .NET 10 SDK before installing or updating GCM

See the [supported environments][supported-environments] and [.NET 10 support matrix][dotnet-support] for details. Standalone platform packages do not require a separate .NET installation.

Windows 7 and Windows 8.x are no longer supported by GCM 3.x. GCM 2.9.x will receive minimal, security-only maintenance for those systems, but no new features. Upgrading Windows is recommended. ([#2365][pr-2365], [#2367][pr-2367])

Azure Repos uses OAuth tokens by default

GCM now returns Microsoft identity OAuth tokens, rather than creating personal access tokens (PATs), by default for Azure Repos. OAuth tokens are automatically refreshed as needed.

Explicit credential-type settings are still respected. If you need the previous PAT behavior, set:

git config --global credential.azreposCredentialType pat

The equivalent environment variable is GCM_AZREPOS_CREDENTIALTYPE=pat. See [Azure Repos users and tokens][azrepos-tokens]. ([#2449][pr-2449])

Microsoft authentication uses the OS broker by default

Broker integration is now enabled by default wherever supported, rather than requiring an opt-in. This applies to Microsoft authentication, such as Azure Repos; it does not change authentication for GitHub, Bitbucket, or GitLab.

On macOS, broker authentication requires Company Portal and device enrollment. On Linux, it requires the supported Intune setup, a GNOME desktop, and Microsoft Edge; headless and WSL environments do not support the Linux broker.

Warning

Depending on your organization's policies, broker sign-in can prompt you to join or enroll your device. On Windows, signing in with a personal Microsoft account can also affect the account linked to your local Windows user. Review the [broker documentation][broker] before proceeding, especially on personal devices.

To opt out:

git config --global credential.msauthUseBroker false

The equivalent environment variable is GCM_MSAUTH_USEBROKER=false. When the broker is in use, it takes precedence over credential.msauthFlow. ([#2449][pr-2449])

Azure Repos uses a dedicated GCM Entra application

GCM now signs in using its own first-party Microsoft Entra application instead of the Visual Studio application. This enables broker support on macOS and Linux, in addition to Windows.

If you encounter a client-application configuration error, GCM provides guidance for retrying with the legacy application; it does not silently switch back. For a one-command compatibility retry:

git -c credential.azreposUseLegacyClientId=true fetch

Please report the original failure if this workaround succeeds. The legacy application does not support broker authentication on macOS or Linux. Managed identity, service-principal, and workload-identity federation flows are unaffected by the application change.

The undocumented developer overrides credential.azreposDevClientId and credential.azreposDevAuthorityBaseUri, and their environment-variable equivalents GCM_DEV_AZREPOS_CLIENTID and GCM_DEV_AZREPOS_AUTHORITYBASEURI, have been removed. The [legacy-client setting][legacy-client] is a focused compatibility option, not an arbitrary client-ID or authority override. ([#2416][pr-2416])

The embedded Microsoft sign-in web view has been removed

The Windows-only embedded web view depended on .NET Framework and is no longer available. Use the broker, system browser, or device-code flow instead. If you previously forced credential.msauthFlow=embedded or GCM_MSAUTH_FLOW=embedded, change it to auto, system, or devicecode. Disable broker integration as described above if you specifically need to force a non-broker flow. ([#2365][pr-2365])

Terminal and diagnostic output has changed

Terminal selection prompts now use arrow-key navigation instead of numbered input, and diagnose has a new output format. Automation that drives interactive menus or parses diagnostic text may need updating. Git's credential-protocol input and output remain separate from interactive prompts. ([#2377][pr-2377], [#2425][pr-2425])

Features and improvements

  • Native ahead-of-time builds. Published platform packages compile GCM to native code to reduce startup overhead. The .NET tool remains a framework-dependent distribution. ([#2366][pr-2366], [#2367][pr-2367])
  • Cross-platform Microsoft single sign-on. The authentication broker can reuse OS accounts on supported Windows, macOS, and Linux installations. When a default OS account can be used, GCM asks for confirmation unless automatic use is explicitly enabled, or enabled by default in environments such as Microsoft Dev Box. Set credential.msauthUseDefaultAccount=false to skip the default-account attempt. See the [broker documentation][broker]. ([#2379][pr-2379], [#2416][pr-2416])
  • Optional isolated Azure Repos token cache. Set credential.azreposUseMicrosoftSharedCache=false, or GCM_AZREPOS_USE_MSFT_CACHE=false, to use a GCM-specific cache. Sharing with other Microsoft developer tools remains the default. ([#2415][pr-2415])
  • Support for Bitbucket Cloud's updated OAuth tokens. Rotating refresh tokens are now consistently saved against the resolved Bitbucket username, avoiding repeated sign-ins caused by reusing an old refresh token. Large access and refresh tokens are split across credential entries when needed, so Windows users can keep the default wincredman store without switching to another credential store. ([#2433][pr-2433], [#2440][pr-2440])
  • Generic OAuth beyond HTTP(S). Generic OAuth configuration now works for non-HTTP credential requests, such as SMTP authentication for git send-email. Windows Integrated Authentication remains HTTP(S)-only. ([#2445][pr-2445])
  • Refreshed terminal prompts and diagnostics. Interactive prompts use Spectre.Console, and Ctrl+C during a prompt restores the terminal and exits cleanly with status 130. git-credential-manager diagnose distinguishes passed, warning, failed, and skipped checks, reports the actual credential store, and summarizes generated logs. Add --strict to return a non-zero exit code for warnings as well as errors; without it, only errors fail. ([#2377][pr-2377], [#2423][pr-2423], [#2425][pr-2425])
  • More complete Trace2 diagnostics. Expanded instrumentation covers command execution, configuration, credential storage, UI startup, and authentication. Entra tracing now records broker, cache, and interaction-mode decisions alongside timings, using the existing Git Trace2 settings. ([#2408][pr-2408], [#2450][pr-2450])
  • Newer Git credential-protocol support. GCM supports capability negotiation and the state[] and continue fields introduced in Git 2.46, providing infrastructure for multi-stage authentication. Existing authentication flows and compatibility with older Git versions are preserved. ([#2357][pr-2357])

Fixes

  • Improve dispatcher failure and shutdown handling without starting the UI framework for operations that do not need it. ([#2451][pr-2451])
  • Respect Git configuration include and includeIf files in scoped queries, avoiding duplicate configuration entries when settings already exist in an included file. ([#2345][pr-2345])

Installation and contributor changes

  • The install-from-source helper now supports both macOS and Linux at build/install-from-source.sh. It defaults to a trimmed, self-contained build; use --aot to opt into native compilation and its additional toolchain requirements. See the [installation instructions][install-from-source].
  • Source builds now use git-credential-manager.slnx, with libraries and tests directly under src/ and packaging scripts under build/. A solution build no longer runs packaging; use the per-platform distribution projects for that. See the [development guide][development]. ([#2367][pr-2367])
  • Windows x64 and ARM64 packages use the 64-bit Inno Setup installer; x86 packages retain a 32-bit installer. ([#2380][pr-2380])
  • Internal credential-helper actions (get, store, erase, and capability) are hidden from --help, but remain available for...
Read more

GCM 2.9.1

Choose a tag to compare

@mjcheetham mjcheetham released this 14 Jul 17:02

Announcements:

Note

This is planned to be the last release major release (2.x) that supports Windows 7 and 8.x. We will be moving off of .NET Framework to .NET (Core) on Windows this year with version 3.0.

Changes:

  • Use AbsoluteUri to open URIs in the system browser to avoid double encoded URLs on macOS (90884de)

GCM 2.9.0

Choose a tag to compare

@mjcheetham mjcheetham released this 14 Jul 17:01
194ba29

Announcements:

Note

This is planned to be the last release major release (2.x) that supports Windows 7 and 8.x. We will be moving off of .NET Framework to .NET (Core) on Windows this year with version 3.0.

Changes:

  • Update MSAL.NET libraries to 4.82.2 (a4743f9)
  • Use default native redirect URL for embedded webview and device flows with Microsoft authentication (2774321)
  • Add support for form_post and fragment OAuth2 response modes to the generic provider (194ba29)

GCM 2.8.0

Choose a tag to compare

@mjcheetham mjcheetham released this 28 Apr 13:42
d5e8a34

Announcements:

Note

This is planned to be the last release major release that supports Windows 7 and 8.x. We will be moving off of .NET Framework to .NET (Core) on Windows this year.

Changes:

  • Workload Identity Federation for Azure Repos (#2297)
  • Git config caching to reduce git process calls
  • Dark theme support for OAuth authentication response pages (#2325)
  • Allow installing on Azure Linux (#2269)
  • Fix GPG ID lookup for .gpg-id in subdirectories (#2274)
  • Fix CS0121 string.Split call ambiguity with .NET 8.0 (#2287)
  • Fix SYSLIB0057 warning for X509Certificate2Collection.Import (#2326)
  • Fix several small bugs (#2303)
  • Migrate to .NET 10 (Mac/Linux) and adopt Central Package Management (#2313)
  • Bump Tmds.DBus.Protocol from 0.16.0 to 0.21.3 (#2316)
  • Azure Pipelines: specify pool.hostArchitecture correctly (#2323)
  • Documentation updates
  • Actions dependency updates

GCM 2.7.3

Choose a tag to compare

@mjcheetham mjcheetham released this 10 Mar 19:51

Announcements:

Note

This is planned to be the last release major release that supports Windows 7 and 8.x. We will be moving off of .NET Framework to .NET (Core) on Windows this year.

Changes:

  • Emit new warning when Git has built-in NTLM support disabled.

    As part of the fix for CVE-2025-66413, Git for Windows now disables built-in NTLM support by default.
    Only if http.allowNTLMAuth is explicitly enabled will Git use NTLM authentication.

    GCM will now display a warning message when it detects this scenario and presents options for re-enabling NTLM.

GCM 2.7.2

GCM 2.7.2 Pre-release
Pre-release

Choose a tag to compare

@mjcheetham mjcheetham released this 11 Feb 15:23
072a76d

Announcements:

Note

This is planned to be the last release major release that supports Windows 7 and 8.x. We will be moving off of .NET Framework to .NET (Core) on Windows this year.

Changes:

  • Make Linux browser detection more robust (support VSCode remote connections over SSH)

GCM 2.7.1

GCM 2.7.1 Pre-release
Pre-release

Choose a tag to compare

@mjcheetham mjcheetham released this 04 Feb 10:08
aff4a59

Announcements:

Note

This is planned to be the last release major release that supports Windows 7 and 8.x. We will be moving off of .NET Framework to .NET (Core) on Windows this year.

Changes:

GCM 2.7.0

Choose a tag to compare

@mjcheetham mjcheetham released this 14 Jan 11:35
d1dd8a4

Announcements:

Note

Thanks to all our contributors who've been waiting for this release. It's been a year since the last release, which as many will note is highly unusual. Ownership issues of the project have meant that there was a freeze on releases and maintenance. This has now been resolved and we expect regular releases (approximately every 12 weeks; aligned with Git's release schedule), and engagement on our part with the community. Thank you for your patience.

Note

The code ownership/responsibility model of the Git Credential Manager project has changed. Microsoft will now maintain the core GCM platform (responsible for releases, and major architectural changes). The major Git host providers will be responsible for their plugins (e.g., GitHub for GitHub functionality, Azure DevOps for Azure Repos etc).

Note

This is planned to be the last release major release that supports Windows 7 and 8.x. We will be moving off of .NET Framework to .NET (Core) on Windows this year.

Changes:

GCM 2.6.1

Choose a tag to compare

@vdye vdye released this 14 Jan 18:06
786ab03

Security Fixes:

  • CVE-2024-50338
    • Do not treat the lone carriage-return character (CR, \r) as a line terminator in the credential helper protocol

Changes:

  • Fix Linux build scripts (#1752)
  • Documentation fix for broken links (#1722)
  • Permit use of HTTP (not-S) remotes for providers via config (#1721)
  • Omit the client secret for GitLab (#1538)
  • Various workflow action updates (#1725, #1738, #1751, #1750)
  • Fix CentOS install from source workflow (#1746)
  • Add Mariner and Arch Linux distribution validation builds (#1747)
  • Add no-op credential storage option (#1740)

GCM 2.6.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 13:56
3c28096

Changes:

  • Drop no longer needed workflows (#1659)
  • Documentation fixes (#1664, #1697)
  • Configurable GPG store path via Git config (#1698)
  • Fix Visual Studio build problems and update dependencies (#1711)
  • Support sending X5C with certificate auth (#1666)