{"id":16315387,"url":"https://github.com/hickford/git-credential-azure","last_synced_at":"2026-03-11T19:05:17.326Z","repository":{"id":185404446,"uuid":"673448595","full_name":"hickford/git-credential-azure","owner":"hickford","description":"A Git credential helper for Azure Repos","archived":false,"fork":false,"pushed_at":"2024-05-04T19:44:07.000Z","size":35,"stargazers_count":14,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-18T14:53:40.367Z","etag":null,"topics":["git","git-credential-helper","usable-security"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hickford.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"hickford"}},"created_at":"2023-08-01T16:40:19.000Z","updated_at":"2025-01-28T13:24:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"9821afa5-7319-4f2e-bcea-7a10539beea3","html_url":"https://github.com/hickford/git-credential-azure","commit_stats":null,"previous_names":["hickford/git-credential-azure"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hickford%2Fgit-credential-azure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hickford%2Fgit-credential-azure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hickford%2Fgit-credential-azure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hickford%2Fgit-credential-azure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hickford","download_url":"https://codeload.github.com/hickford/git-credential-azure/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245022479,"owners_count":20548546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","git-credential-helper","usable-security"],"created_at":"2024-10-10T21:57:19.326Z","updated_at":"2026-03-11T19:05:17.267Z","avatar_url":"https://github.com/hickford.png","language":"Go","funding_links":["https://github.com/sponsors/hickford"],"categories":[],"sub_categories":[],"readme":"git-credential-azure\n====================\n\ngit-credential-azure is a Git credential helper that authenticates to [Azure Repos](https://azure.microsoft.com/en-us/products/devops/repos) (dev.azure.com). Azure Repos is part of Azure DevOps.\n\nThe first time you authenticate, the helper opens a browser window to Microsoft login. Subsequent authentication is non interactive.\n\n## Installation\n\n### All platforms\n\n**Download** binary from https://github.com/hickford/git-credential-azure/releases.\n\nThen test that Git can find the application:\n\n\tgit credential-azure\n\nIf you have problems, make sure that the binary is [located in the path](https://superuser.com/a/284351/62691) and [is executable](https://askubuntu.com/a/229592/18504).\n\n### Linux\n\n[Several Linux distributions](https://repology.org/project/git-credential-azure/versions) include a git-credential-azure package:\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/git-credential-azure.svg?exclude_unsupported=1\u0026header=)](https://repology.org/project/git-credential-azure/versions)\n\n### Windows\n\nInstall with [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/):\n\n    winget install hickford.git-credential-azure\n\n### Go users\n\nGo users can install the latest release to `~/go/bin` with:\n\n\tgo install github.com/hickford/git-credential-azure@latest\n\n## Configuration\n\n### How it works\n\nGit is cleverly designed to [support multiple credential helpers](https://git-scm.com/docs/gitcredentials#_custom_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.\n\nTo configure together with [git-credential-cache](https://git-scm.com/docs/git-credential-cache):\n\n```sh\ngit config --global --unset-all credential.helper\ngit config --global --add credential.helper \"cache --timeout 21600\" # six hours\ngit config --global --add credential.helper azure\n# to also use git-credential-oauth\ngit config --global --add credential.helper oauth\n```\n\nYou 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.\n\n**Windows users** are recommended to use storage helper `wincred`.\n\n### Manual config\n\nEdit your [global git config](https://git-scm.com/docs/git-config#FILES) `~/.gitconfig` to include the following lines:\n\n```ini\n[credential]\n\thelper = cache --timeout 21600\t# six hours\n\thelper = azure\n```\n\n### Browserless systems\n\nOn systems without a web browser, set the `-device` flag to authenticate on another device using [OAuth device flow](https://www.rfc-editor.org/rfc/rfc8628).\n\n```ini\n[credential]\n\thelper = cache --timeout 21600\t# six hours\n\thelper = azure -device\n```\n\n### Subtleties with multiple users or organizations\n\nIf 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.\n\nAlternatively, you can set [credential.useHttpPath](https://git-scm.com/docs/gitcredentials#Documentation/gitcredentials.txt-useHttpPath) to store separate credentials for each repo:\n\n```sh\ngit config --global credential.https://dev.azure.com.useHttpPath true\n```\n\n### Unconfiguration\n\nRun:\n\n\tgit config --global --unset-all credential.helper azure\n\n## Development\n\nInstall locally with `go install .`.\n\n### Debugging\n\nUse the `-verbose` flag to print more details:\n\n```sh\ngit config --global --unset-all credential.helper azure\ngit config --global --add credential.helper \"azure -verbose\"\n```\n\n## See also\n\n* [Git Credential Manager](https://github.com/git-ecosystem/git-credential-manager): a Git credential helper that authenticates to Azure Repos (and other hosts)\n  * Caveats: no support for Linux arm64\n* [git-credential-oauth](https://github.com/hickford/git-credential-oauth) (sister project): a Git credential helper that authenticates to GitHub, GitLab, BitBucket and other hosts using OAuth\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhickford%2Fgit-credential-azure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhickford%2Fgit-credential-azure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhickford%2Fgit-credential-azure/lists"}