本文主要介绍了如何使用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