Golang 拉取 Github 私有库的姿势

2021年10月25日 0 条评论 6.76k 次阅读 1 人点赞

我们的 Go 项目拉取依赖时,默认使用的是 https 协议的 git clone 。因此当你的 Golang 项目位于 Github 的私有仓库时,而你本地的项目又依赖这个私有库,此时你应当先设置SSH 保证 Git 能无密码拉取到该依赖。

其次你还必须要设置 GOPRIVATE ,当你设置后, go get 命令在碰到该仓库时,将会不走 Go Proxy 从而进行直连。

示例:

go env -w GOPRIVATE=github.com/xhyonline

那么github.com/xhyonle 组织下的私有库在你使用 go get 命令时,都能被拉取下来,当然你一定需要设置 SSH 或者 Github Token(这两个选一个即可)

GOPRIVATE ,可以填写多个值,例如:

这样 go 命令会把所有包含这个后缀的软件包,包括 git.corp.example.com/xyzzy , rsc.io/private, 和 rsc.io/private/quux 都以私有仓库来对待。

使用 Github Token,使用 Token 的好处在于你可以进行 CI 集成

如果你使用 Github Token 你需要自行进行 Token设置

示例如下:

git config --global url."https://$UserName :$Token@github.com".insteadOf "https://github.com"

其中 $UserName 是你的用户名(注:是用户名,而不是登录 github 的邮箱,我的就是xhyonline)

$Token 是你申请的 Token

申请 Token 地址如下:https://github.com/settings/tokens

当你设置号成功之后你可以通过下面这条命令查看是否设置成功

git config --global --list

当然你也可以重新编辑,使用下面这条命令即可

git config --global --edit

当你使用 Github Action 进行 CI 操作时,你就可以使用 Github Token

.github/workflows/github-action.yml 配置文件如下

相关资料如下:

http://www.phpxs.com/post/7108/?ivk_sa=1024320u

https://gist.github.com/Kovrinic/ea5e7123ab5c97d451804ea222ecd78a

Replace git:// with https://
Rewrite any git:// urls to be https:// but, it won't touch sshurls (git@github.com:)

git config --global url."https://github".insteadOf git://github
or replace with ssh
Use ssh instead of https://

git config --global url."git@github.com:".insteadOf "https://github.com/"

兰陵美酒郁金香

大道至简 Simplicity is the ultimate form of sophistication.

文章评论(0)

你必须 登录 才能发表评论