我正在尝试使用https://github.com/libgit2/git2go从GCP源存储库克隆存储库
但是,我得到了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容器中。
我打赌你使用的git2go库不能在/tmp/repo/.git/
上创建目录。确保自己先mkdir/tmp/repo
?也许/tmp
不存在?