gpt4 book ai didi

git - go-git:如何在远程服务器上进行身份验证?

转载 作者:IT王子 更新时间:2023-10-29 01:41:15 24 4
gpt4 key购买 nike

我正在使用 go 项目 go-git作为 git-client 并希望从通过 gitea 托管的私有(private) git-repository 中获取数据.

执行此操作的适当函数是 func (r *Remote) Fetch(o *FetchOptions) error ,它需要一个 transport.AuthMethod用于身份验证的对象。

我尝试了以下方法:

repo, _ := git.PlainOpen("/path/to/project/folder")
err := repo.Fetch(&git.FetchOptions{
Auth: http.NewBasicAuth("someUser", "andThePassword"),
})

...简单地返回:

invalid auth method

如果我使用

也会发生同样的情况
authenticator, _ := ssh.NewSSHAgentAuth("git")

来自包 "gopkg.in/src-d/go-git.v4/plumbing/transport/ssh"

如果我使用证书:

authenticator, _:= ssh.NewPublicKeysFromFile("gitea name", "/home/name/.ssh/id_rsa", "passphrase")

我如何找出支持的身份验证方法,是否有我可以使用的 transport.AuthMethod 的现有实现?

最佳答案

这里的问题是,我使用了错误的 http 包来获取身份验证器。

我使用了 net/http 包中的 BasicAuth() - 但是,要使用的正确 http 包是 gopkg.in/src-d/go-git.v4/plumbing/transport/http.

当更改导入并从那里使用(兼容的)BasicAuth 身份验证器时,它可以完美地工作。

关于git - go-git:如何在远程服务器上进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47359377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com