我正在尝试使用https://github.com/libgit2/git2go从 GCP Source 存储库克隆存储库
但是,我得到failed to resolve path '/tmp/repo/.git/': No such file or directory"
通过使用 gcloud source repo clone,它可以工作。
func initRepo(url, path, auth string) (*git.Repository, error) {
var repo *git.Repository
var err error
osPath := "/tmp/" + path
repo, err = git.OpenRepository(osPath)
if err != nil {
repo, err = git.Clone(url, osPath, &git.CloneOptions{
FetchOptions: &git.FetchOptions{
Headers: []string{auth},
},
})
}
return repo, err
}
func main() {
ctx := context.Background()
ts, err := google.DefaultTokenSource(ctx, sourcerepo.SourceFullControlScope)
if err != nil {
panic(err)
}
token, err := ts.Token()
if err != nil {
panic(err)
}
auth := "Authorization: " + token.Type() + " " + token.AccessToken
gitRepo, err := initRepo("https://source.developers.google.com/p/project/r/repo", "repo", auth)
if err != nil {
panic(err)
}
什么会导致此错误?即使在我的 docker 容器中,它也可以在本地机器上运行。