如何使用Go依赖管理?

本文主要介绍了如何使用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验证密钥或者口令,参考配置 HTTPS 克隆账号密码

例如,在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