git-credential-azure M Hickford
winget install --id=hickford.git-credential-azure -e
A Git credential helper for Azure Repos
Git Credential Azure is a specialized Git credential helper designed to streamline authentication with Azure Repos, a component of Azure DevOps. This tool simplifies the process of securely accessing repositories hosted on Azure, ensuring seamless integration into your development workflow.
Key Features:
- Azure Repos Authentication: Specifically engineered to authenticate with Azure Repos, providing secure access to your codebase.
- Browser-Based Login: Initiate authentication through a browser window for a user-friendly experience during the first setup.
- Non-Interactive Subsequent Logins: After initial configuration, subsequent authentications occur without user intervention, enhancing efficiency.
- Cross-Platform Compatibility: Installable via winget on Windows, ensuring availability across different operating systems.
Audience & Benefits: Ideal for Git developers and teams utilizing Azure Repos, this tool offers:
- Enhanced Security: Secure authentication methods protect your credentials and repository access.
- Streamlined Workflow: Integrates effortlessly with existing Git workflows, minimizing disruptions.
- Platform Flexibility: Supports various platforms, ensuring compatibility with your development environment.
By leveraging Git Credential Azure, users benefit from secure, efficient, and integrated authentication solutions tailored to their Azure Repos needs.
README
git-credential-azure
git-credential-azure is a Git credential helper that authenticates to Azure Repos (dev.azure.com). Azure Repos is part of Azure DevOps.
The first time you authenticate, the helper opens a browser window to Microsoft login. Subsequent authentication is non interactive.
Installation
All platforms
Download binary from https://github.com/hickford/git-credential-azure/releases.
Then test that Git can find the application:
git credential-azure
If you have problems, make sure that the binary is located in the path and is executable.
Linux
Several Linux distributions include a git-credential-azure package:
Windows
Install with winget:
winget install hickford.git-credential-azure
Go users
Go users can install the latest release to ~/go/bin
with:
go install github.com/hickford/git-credential-azure@latest
Configuration
How it works
Git is cleverly designed to support multiple credential helpers. To fill credentials, Git calls each helper in turn until it has the information it needs. git-credential-azure is a read-only credential-generating helper, designed to be configured in combination with a storage helper.
To configure together with git-credential-cache:
git config --global --unset-all credential.helper
git config --global --add credential.helper "cache --timeout 21600" # six hours
git config --global --add credential.helper azure
# to also use git-credential-oauth
git config --global --add credential.helper oauth
You may choose a different storage helper such as osxkeychain
, wincred
or libsecret
, but git-credential-azure must be configured last. This ensures Git checks for stored credentials before generating new credentials.
Windows users are recommended to use storage helper wincred
.
Manual config
Edit your global git config ~/.gitconfig
to include the following lines:
[credential]
helper = cache --timeout 21600 # six hours
helper = azure
Browserless systems
On systems without a web browser, set the -device
flag to authenticate on another device using OAuth device flow.
[credential]
helper = cache --timeout 21600 # six hours
helper = azure -device
Subtleties with multiple users or organizations
If you use more than one user or organization across Azure Repos, make sure that the remote URLs include usernames. This is the default if you copied the URLs from the Azure Repos web interface.
Alternatively, you can set credential.useHttpPath to store separate credentials for each repo:
git config --global credential.https://dev.azure.com.useHttpPath true
Unconfiguration
Run:
git config --global --unset-all credential.helper azure
Development
Install locally with go install .
.
Debugging
Use the -verbose
flag to print more details:
git config --global --unset-all credential.helper azure
git config --global --add credential.helper "azure -verbose"
See also
- Git Credential Manager: a Git credential helper that authenticates to Azure Repos (and other hosts)
- Caveats: no support for Linux arm64
- git-credential-oauth (sister project): a Git credential helper that authenticates to GitHub, GitLab, BitBucket and other hosts using OAuth