阿里云首页 云效2020

如何使用 Go 依赖管理?

Codeup 的代码托管具备多级组的结构组织能力,同时由于 Codeup 不支持全局公开仓库,因此为了企业数据的安全考虑,在使用 Go 的依赖管理时必须使用鉴权。

在 Go 1.13 改进了对 .netrc 身份验证的支持。如果通过 HTTPS 发出请求并且可以找到匹配的 .netrc 条目,Go 会向请求添加 HTTP 基本身份验证凭据。

未来 Go 可能会增加新的验证访问,我们也会持续跟踪并实现。

什么是 .netrc

.netrc 文件包含自动登录过程使用的登录和初始化信息。它通常驻留在用户的主目录中,但可以使用环境变量设置主目录之外的位置 NETRC 。选择的文件必须是普通文件,否则访问将被拒绝。

识别以下令牌,它们可以用空格、制表符或换行符分隔:

- 'machine name'

标识远程机器名称。自动登录过程搜索 .netrc 用于匹配在 ftp 命令行上指定的远程机器或作为打开命令参数的机器令牌的文件。一旦匹配成功,接下来的 .netrc 令牌被处理,当到达文件末尾或遇到另一台机器或默认令牌时停止。

- 'default'

这与机器名称相同,除了默认匹配任何名称。默认令牌只能有一个,而且必须是所有机器令牌。这通常用作:` 默认登录匿名密码 user@site `从而使用户自动匿名 ftp 登录到未指定的机器 .netrc. 这可以通过使用覆盖 -n 标志禁用自动登录。

default login anonymous password user@site

- 'login name'

识别远程机器上的用户。如果此令牌存在,自动登录过程将使用指定的名称启动登录。

- 'password string'

提供密码。如果此令牌存在,并且远程服务器在登录过程中需要密码,则自动登录过程将提供指定的字符串。请注意,如果此令牌存在于.netrc 匿名用户以外的任何用户的文件, ftp 将中止自动登录过程,如果 .netrc 除了用户之外的任何人都可以阅读。

- 'account string'

提供额外的帐户密码。如果此令牌存在,如果远程服务器需要额外的帐户密码,自动登录进程将提供指定的字符串,否则自动登录进程将启动 ACCT 命令。

Codeup上使用 .netrc 的最佳实践

在 Codeup 上申请可用于HTTP验证密钥或者口令,参考Token 申请

例如,在 Codeup 上申请的可用于读取仓库账号为 foo,token为 bar。那么对应的 .netrc 配置信息为:

machine codeup.aliyun.com login foo password bar

Linux\MacOS

文件应该存放在执行账户的根目录下,即:~/.netrc。

Windows

- 定义环境变量 %HOME%,值为 %USERPROFILE%

- 在 %HOME% 路径下新建一个文件 _netrc

- 在 _netrc 中配置上述的配置信息

machine codeup.aliyun.com
login foo
password bar