microsoft / microsoft/VFSForGit

Mac: authentication failed due to "credential-osxkeychain is not a git command"

Open
#1,192 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
6.1k
Forks
474
Avg merge
2d 4h
Merged PRs (30d)
8

Description

We've extended gitlab with gvfs protocol and encountered this error during "gvfs clone".

With debug mode of git-credential-manager on, the detailed log is as follows:

Clone parameters:
Repo URL: http://gitlab.example.com/hal/demo.git
Branch: Default
Cache Server: Default
Local Cache: /Users/Hal/.gvfsCache
Destination: /Users/Hal/gvfs/demo.git
Authenticating...—
Authenticating...
Authenticating...
Authenticating...|
Authenticating...|
Authenticating.../
Authenticating.../
Authenticating...—
Authenticating...Failed. Run 'gvfs log /Users/Hal/gvfs/demo.git' for more info.
Cannot clone because authentication failed: git: 'credential-osxkeychain' is not a git command. See 'git --help'.
Configuration::loadGitConfiguration
Configuration::ParseGitConfig
credential.helper = !/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin/java -Ddebug=true -Djava.net.useSystemProxies=true -jar /usr/local/Cellar/git-credential-manager/2.0.4/libexec/git-credential-manager-2.0.4.jar
diff.tool = Kaleidoscope
difftool.Kaleidoscope.cmd = ksdiff --partial-changeset --relative-path "$MERGED" -- "$LOCAL" "$REMOTE"
difftool.prompt = false
merge.tool = Kaleidoscope
mergetool.Kaleidoscope.cmd = ksdiff --merge --output "$MERGED" --base "$BASE" -- "$LOCAL" --snapshot "$REMOTE" --snapshot
mergetool.Kaleidoscope.trustexitcode = true
mergetool.keepBackup = false
mergetool.prompt = false
user.email = xxxx@xxx.com
user.name = Hal
Program::loadOperationArguments
Configuration::tryGetEntry
Configuration::tryGetEntry
Configuration::tryGetEntry
Configuration::tryGetEntry
Configuration::tryGetEntry
Configuration::tryGetEntry
Program::EnableTraceLogging
Program::get
targetUri = http://gitlab.example.com/
Program::ComponentFactory::createSecureStore
Getting a persistent token store that must be secure
Getting a persistent credential store that must be secure
Program::createAuthentication
detecting authority type
BaseVsoAuthentication::getAuthentication
BaseVsoAuthentication::detectAuthority
failed detection
authority is basic
BasicAuthentication::getCredentials
SecretStore::getTargetName
Secret::uriToName
target name = gcm4ml:git:http://gitlab.example.com
SecretStore::readCredentials
SecretCache::readCredentials
SecretCache::_getTargetName
Secret::uriToName
target name = gcm4ml:git:http://gitlab.example.com
BaseSecureStore::readCredentials
fatal: could not read Username for 'http://gitlab.example.com/': terminal prompts disabled

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 with the reported gvfs clone authentication path and reproduce the failure on macOS using the supplied GitLab URL. Inspect the configured credential.helper and the git-credential-manager debug log, then verify that authentication completes without the credential-osxkeychain error and terminal-prompt failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, macos
Domain
authentication, cli, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.