git-credential-oauth
brew install git-credential-oauth
v0.17.2
Apache-2.0
Git credential helper that authenticates in browser using OAuth
69
30-day installs · #4023
221
90-day · #4018
1.7k
365-day · #3007
837
★ GitHub stars · updated 7mo ago
Build dependencies
GitHub topics
git
git-credential-helper
usable-security
Links
- https://github.com/hickford/git-credential-oauth
- GitHub: hickford/git-credential-oauth
- Brew formula source: Formula/g/git-credential-oauth.rb
Raw metadata
{
"aliases": [],
"alternatives": [],
"build_dependencies": [
"go"
],
"categories": [],
"caveats": null,
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Git credential helper that authenticates in browser using OAuth",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:38:03+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "git-credential-oauth",
"github_default_branch": "main",
"github_last_commit_at": "2026-01-14T21:21:39Z",
"github_readme_excerpt": "git-credential-oauth\n====================\n\n*No more passwords! No more personal access tokens! No more SSH keys!*\n\ngit-credential-oauth is a Git credential helper that securely authenticates to GitHub, GitLab, BitBucket and Gerrit using [OAuth](https://datatracker.ietf.org/wg/oauth/about/).\n\nThe first time you authenticate, the helper opens a browser window to the host.\nSubsequent authentication within storage lifetime is non interactive.\n\n## Motivation\n\nGit assumes users can type a password from memory, but hosts such as GitHub no longer accept passwords without two-factor authentication.\nPersonal access tokens are easy enough to copy and paste but awkward to store securely.\n[git-credential-cache](https://git-scm.com/docs/git-credential-cache) works well for passwords but not personal access tokens because the token is lost when the cache expires.\nAll in all, the usability is so poor that the [most popular advice on StackOverflow](https://stackoverflow.com/a/35942890/284795) is to insecurely save credentials in plaintext!\n\nOAuth has multiple advantages over personal access tokens or SSH:\n\n| Advantage | OAuth | Personal access token | SSH |\n|--------------------------------------------|-------|-----------------------|-----|\n| Clone public repo without setup | \u2714 | \u2714 | \ud83d\uddd9 |\n| Authenticate to popular hosts without setup| \u2714 | \ud83d\uddd9 | \ud83d\uddd9 |\n| Server authenticity verified automatically | \u2714 | \u2714 | \ud83d\uddd9 |\n| Protections against token theft[^1] | [\u2714](https://www.ietf.org/archive/id/draft-ietf-oauth-security-topics-22.html#name-refresh-token-protection) | \ud83d\uddd9 | *only if key has passphrase* |\n\n[^1]: Scenario: an old disk backup is leaked.\n\n## Features by host\n\n| Host | Preconfigured | OAuth | OAuth device flow |\n|---------------------|---------------|-------------------|-------------------|\n| github.com | \u2714 ",
"github_repo": "hickford/git-credential-oauth",
"github_stars": 837,
"github_topics": [
"git",
"git-credential-helper",
"usable-security"
],
"homepage": "https://github.com/hickford/git-credential-oauth",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 69,
"installs_365d": 1745,
"installs_90d": 221,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "Apache-2.0",
"llm_generated_at": null,
"llm_model": null,
"name": "git-credential-oauth",
"oldnames": [],
"one_liner": null,
"optional_dependencies": [],
"rank_30d": 4023,
"rank_365d": 3007,
"rank_90d": 4018,
"raw_hash": "9c8a27fbd2e26a72",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/g/git-credential-oauth.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": "HEAD",
"version_stable": "0.17.2",
"versioned_formulae": [],
"why_use_this": null
}