Используйте токен git OAuth для клонирования репо

# #git #go #oauth-2.0

Вопрос:

Я клонирую публичный gitrepo с заданным кодом golang: (который отлично работает)

 _, err = git.PlainClone(projectRoot, false, amp;git.CloneOptions{
    URL:      e.Repo,
    Progress: os.Stdout,
})
 

Для частного репозитория git я генерирую токен OAuth и код, приведенный ниже:

 _, err = git.PlainClone(projectRoot, false, amp;git.CloneOptions{
    Auth:     amp;gitHttp.TokenAuth{Token: <oauth-token>},
    URL:      e.Repo,
    Progress: os.Stdout,
})
 

Это дает мне что-то вроде :

 unexpected client error: unexpected requesting "https://github.com/.../info/refs?service=git-upload-pack" status code: 400
 

Я использую эти конкретные модули

 git "github.com/go-git/go-git/v5"
gitHttp "github.com/go-git/go-git/v5/plumbing/transport/http"
 

Ответ №1:

 _, err = git.PlainClone(projectRoot, false, amp;git.CloneOptions{
    Auth:     amp;gitHttp.BasicAuth{Username: <username>, Password: <oauth-token>},
    URL:      e.Repo,
    Progress: os.Stdout,
})