我正在用给定的golang代码克隆公共gitrepo:(工作良好)
_, err = git.PlainClone(projectRoot, false, &git.CloneOptions{
URL: e.Repo,
Progress: os.Stdout,
})
对于私有git仓库,我正在生成一个OAuth令牌和下面给出的代码:
_, err = git.PlainClone(projectRoot, false, &git.CloneOptions{
Auth: &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"
_, err = git.PlainClone(projectRoot, false, &git.CloneOptions{
Auth: &gitHttp.BasicAuth{Username: <username>, Password: <oauth-token>},
URL: e.Repo,
Progress: os.Stdout,
})