gitgo

could not read Username for 'https://github.com': terminal prompts disabled on windows


I was trying to fetch some dependencies from a private repository using go get -u <github_private_repo_link> but it keeps on failing with this error:

server response:
not found: github.com/..../v3@v3.11.1: invalid version: git ls-remote -q origin in /tmp/gopath/pkg/mod/cache/vcs/168bff8af96cdfac9cbe3ad64f7753732f8a19d99f7f1e897f19371e1ea453d9: exit status 128:
fatal: could not read Username for 'https://github.com': terminal prompts disabled
Confirm the import path was entered correctly.
If this is a private repository, see https://golang.org/doc/faq#git_https for additional information.

I've tried to export set GIT_TERMINAL_PROMPT=1 but nothing happens, the same error is issued. Is there any way go get will ignore the value of this variable on windows for go 1.13?


Solution

  • Try setting a temporary credential handler for GitHub:

    GIT_USER="your-github-username-or-email"
    GIT_PASS="PAT"
    
    git config --global credential.helper "!f() { echo \`"username=`${GIT_USER}`npassword=`${GIT_PASS}\`"; }; f"
    

    Or install the github cli and authenticate to github using gh auth login.

    And check out the docs mentioned in the error message for other options:

    Git can be configured to authenticate over HTTPS or to use SSH in place of HTTPS. To authenticate over HTTPS, you can add a line to the $HOME/.netrc file that git consults:

    machine github.com login USERNAME password APIKEY
    

    For GitHub accounts, the password can be a personal access token.

    Git can also be configured to use SSH in place of HTTPS for URLs matching a given prefix. For example, to use SSH for all GitHub access, add these lines to your ~/.gitconfig:

    [url "ssh://git@github.com/"]
        insteadOf = https://github.com/