6

我正在尝试导入位于 AWS codecommit 中的模块。为了克隆存储库,我使用了 HTTPS GRC (Git Remote Codecommit) 方法,该方法使用 Google Suite 凭证来访问 AWS 控制台。

我用来克隆存储库的命令是:

git clone codecommit::us-west-2://my-module

远程模块的go.mod文件包含以下内容:

module git-codecommit.us-west-2.amazonaws.com/my-module.git

我试图实现我的目标,像这样配置 Git:

git config --global url."codecommit::us-west-2://".insteadOf "https://git-codecommit.us-west-2.amazonaws.com/"

设置 GOPRIVATE:

go env -w GOPRIVATE=git-codecommit.us-west-2.amazonaws.com/my-module.git

然后获取存储库:

go get -x git-codecommit.us-west-2.amazonaws.com/my-module.git

但我得到了这个输出(并且执行被卡住了):

cd.
git ls-remote https://git-codecommit.us-west-2.amazonaws.com/my-module

我想提一下,当我git ls-remote https://git-codecommit.us-west-2.amazonaws.com/my-module手动执行命令时,我可以毫无问题地获取分支和标签的信息。

我检查了这个主题,但在这种情况下使用 SSH 协议而不是 HTTP GRC。也许从私有存储库导入模块的唯一方法是通过 SSH?

4

1 回答 1

4

终于找到了解决办法:

设置 Git 凭证助手:

git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true

设置 GOPRIVATE 环境变量:

go env -w GOPRIVATE=git-codecommit.us-west-2.amazonaws.com

在 MacOS 中,禁用 Git 的钥匙串:

helper = osxkeychain在包含该值的文件中添加注释(运行git config -l --show-origin | grep credential以查找目标文件)

运行去获取:

go get git-codecommit.us-west-2.amazonaws.com/v1/repos/my-module.git
于 2021-10-26T08:07:52.377 回答