标签: go-get

如何对特定模块使用“go get”或“go modvendor”,而不尝试更新其他模块?

我正在尝试从 github 获取项目的特定包。

但是,当我使用go get [url]or时go mod vendor,由于缺乏对我公司的存储库之一的权限,我收到 git fetch 错误。这个存储库是供应的,这就是我们如何绕过它进行 go test、go build 等。

这是错误消息:

go: private.work.repo.com/project/repo@v0.0.0-20190703160253-9c6eb80851f1: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in C:\Users\NICHOLAS.TAN\go\pkg\mod\cache\vcs\37594aeb10b98234e04b4780cf59f32c4ad7bb9da460f552103ae748cea73aa1: exit status 128:
        fatal: remote error: Repository not found
        The requested repository does not exist, or you do not have permission to
        access it.
Run Code Online (Sandbox Code Playgroud)

有没有办法让我使用go get和/或go mod vendor不使用这些命令来尝试查看其他模块依赖项?

go govendor go-modules go-get

10
推荐指数
1
解决办法
4万
查看次数

前往Google的Cloud Source Repository获取

制作两个不同的go模块

  1. source.cloud.google.com/me/a

  2. source.cloud.google.com/me/b

随着source.cloud.google.com/me/common作为共同LIB依赖(共享模式)

我正在尝试go get source.cloud.google.com/me/common(甚至手动将其写入go.mod文件中),但我一直收到以下错误:

package source.cloud.google.com/me/common: 
unrecognized import path "source.cloud.google.com/me/common" 
(parse https://source.cloud.google.com/me/common?go-get=1: no go-import meta tags ())
Run Code Online (Sandbox Code Playgroud)

我已经gcloud设置为能够使用app deploy和创建新的源存储库。我尝试设置sshGoogle Cloud,并尝试使用手动凭据。这既不能在本地使用,也不能在Google Cloud build服务中使用。

我想做两件事:

  1. 能够go get依靠source.cloud.google.com/me/common
  2. 能够将其集成go get到我的App Engine自动构建渠道中。

任何帮助,将不胜感激。

go gcloud google-cloud-source-repos google-source-repositories go-get

6
推荐指数
1
解决办法
158
查看次数

go get 不适用于引用自定义 gitconfig 的 .gitconfig

我克隆了git clone一个依赖于另一个私有存储库的存储库。在当前的 repo 中,我尝试使用go get该依赖项 ( go get -u ./...) 并抛出一个错误:

致命:无法读取“https://bitbucket.org”的用户名:终端提示已禁用

信息

  • 我曾经git clone git@my-name.bitbucket.org:company/repo.git将 repo 克隆到~/Desktop/BitBucket/Company目录。
  • 我有 GOPRIVATE="bitbucket.org/company/*"
  • 没有includeIf. 如果我用公司 .gitconfig替换.gitconfig它工作正常。但是我需要管理多个帐户...
  • 命令git config --get user.name(在 repo 内)返回My Name. 所以有一个问题go get

我的主要 .gitconfig文件(在 $HOME 目录中):

[includeIf "gitdir/i:~/Desktop/BitBucket/Company/"]
        path = ~/.git/BitBucket/Company/.gitconfig
Run Code Online (Sandbox Code Playgroud)

我的.gitconfig文件(用于公司仓库$HOME/.git/BitBucket/Company/.gitconfig):

[user]
        name = My Name
        email = my.name@company.com
[url "git@my-name.bitbucket.org:"]
        insteadOf = …
Run Code Online (Sandbox Code Playgroud)

git git-config go-get

6
推荐指数
1
解决办法
164
查看次数

使用 HTTPS GRC 从 AWS Codecommit 获取私有存储库

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

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

git clone codecommit::us-west-2://my-module
Run Code Online (Sandbox Code Playgroud)

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

module git-codecommit.us-west-2.amazonaws.com/my-module.git
Run Code Online (Sandbox Code Playgroud)

我尝试这样配置 Git 来实现我的目标:

git config --global url."codecommit::us-west-2://".insteadOf "https://git-codecommit.us-west-2.amazonaws.com/"
Run Code Online (Sandbox Code Playgroud)

设置为私有:

go env -w GOPRIVATE=git-codecommit.us-west-2.amazonaws.com/my-module.git
Run Code Online (Sandbox Code Playgroud)

然后获取存储库:

go get -x git-codecommit.us-west-2.amazonaws.com/my-module.git
Run Code Online (Sandbox Code Playgroud)

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

cd.
git ls-remote https://git-codecommit.us-west-2.amazonaws.com/my-module
Run Code Online (Sandbox Code Playgroud)

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

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

go aws-codecommit go-modules go-get

6
推荐指数
1
解决办法
1996
查看次数

如何指定 go get 使用哪个 ssh 密钥

我在同一台笔记本电脑(运行 Ubuntu 版本 20)上使用两个不同的 github 帐户(个人和工作)。我需要能够使用我的工作 github 帐户的 ssh 密钥从工作中访问私有存储库。

我已经使用一些简洁的 git 配置控件使这一切正常工作,即在我的~/.gitconfig文件中放入:

[url "git@github.com:work_account/"]
    insteadOf = https://github.com/work_account/
[includeIf "gitdir:~/src/github.com/personal_account/"]
    path=~/.gitconfig_personal
[includeIf "gitdir:~/src/github.com/work_account/"]
    path=~/.gitconfig_work
Run Code Online (Sandbox Code Playgroud)

个人配置包含:

[user]
name = Your Name
email = your.name@gmail.com
[core]
sshCommand = ssh -i ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

工作配置包含:

[user]
name = Your Name
email = your.name@work.com
signingkey = <ID of GPG key>
[core]
sshCommand = ssh -i ~/.ssh/id_ecdsa
[commit]
gpgsign = true
[gpg]
program = gpg
Run Code Online (Sandbox Code Playgroud)

这对于从 github 拉取和推送(并使用 gpg 密钥签署工作提交)非常有效,但在go get私人存储库上却失败了。由于某些奇怪的原因,go get …

git github go ssh-keys go-get

5
推荐指数
1
解决办法
4222
查看次数

获取私人 bitbucket 存储库,给出 403 禁止

执行时 go get bitbucket.org/../..

我收到这个错误

yash.jain projectname % go get bitbucket.org/../..
go: bitbucket.org/../..
https://api.bitbucket.org/2.0/repositories/../..?fields=scm: 403 Forbidden
go: error loading module requirements
Run Code Online (Sandbox Code Playgroud)

我尝试过的

尽管如此,我还是遇到了同样的错误。如果我做错了什么,请告诉我。

go go-get

4
推荐指数
1
解决办法
9099
查看次数

为什么 go get 失败并显示“无效版本:未知修订版”?

我发布了一个 Go 模块的更新,将版本升级到 v1.1.0。我创建了一个名为v1.1.0的标签并将该标签推送到 GitHub。

https://github.com/depp/bytesize/releases/tag/v1.1.0

但是,我不能在我的其他项目中使用这个包。我收到一条错误消息,提示“版本无效:未知修订版 v1.1.0”。我不知道为什么修订是“未知的”,因为它被标记了。

$ go get github.com/depp/bytesize@v1.1.0                    
go: downloading github.com/depp/bytesize v1.1.0
go get github.com/depp/bytesize@v1.1.0: github.com/depp/bytesize@v1.1.0: verifying module: github.com/depp/bytesize@v1.1.0: reading https://sum.golang.org/lookup/github.com/depp/bytesize@v1.1.0: 410 Gone
    server response: not found: github.com/depp/bytesize@v1.1.0: invalid version: unknown revision v1.1.0
[Exit: 1]
Run Code Online (Sandbox Code Playgroud)

go go-modules go-get

4
推荐指数
1
解决办法
1308
查看次数

如何在本地运行 pkg.go.dev 作为 godoc 替代品?

godoc自 1.12 以来已从 go 标准安装中删除,并且看起来不会很快更新。pkg.go.dev至少看起来是它的继任者。它还具有其他文档功能,例如抓取README.md文件并将其呈现在文档页面中。

由于这些原因,我希望切换到pkg.go.dev在本地使用来查看和创建小型内部包的文档。主要问题是,godoc似乎没有明确的使用指南。我也不知道pkpg.go.dev这项任务是否完全矫枉过正。所以我想知道:

  1. 可以并且应该pkg.go.dev用作本地godoc替代品吗?
  2. 如果是,我将如何运行它来执行此任务?

go godoc go-get

3
推荐指数
1
解决办法
1707
查看次数

go get 命令会缓存吗?

我试图查找该go get命令是否缓存,但在https://golang.org/cmd/go/ 中找不到任何信息。

我认为没有缓存,但我不确定。

是否go get缓存,如果是,则位于何处?

go go-get

1
推荐指数
1
解决办法
6476
查看次数