Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
重要
请考虑使用更安全的 Microsoft Entra 令牌,而不是风险较高的 个人访问令牌。 有关详细信息,请参阅 减少 PAT 使用情况。 查看 身份验证指南 ,以根据需要选择正确的身份验证机制。
Go 是一种开源编程语言,也称为 Golang。
在 Go 中 install ,可以使用命令下载和安装包和依赖项。
Azure Repos Git 在 Azure Repos Git 存储库中支持 go install 。
使用 go install,可以下载包及其依赖项,其依赖项由导入路径命名。
还可以使用 go 文件中的 import 关键字来指定导入路径,使用以下各节中所述的相同语法。
使用公共项目进行安装
如果 Azure Repos Git 存储库位于 公共项目中,则可以使用以下格式使用 go install Web 存储库 URL。 对于版本,可以使用 latest 或特定版本。
go install dev.azure.com/<organization>/<project>/_git/<repo>.git@<version>
还可以通过追加子文件夹名称在存储库的子文件夹中安装 Go 包,如以下示例所示。
go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1@<version>
go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1/subfolder2@<version>
使用专用项目进行安装
如果 Azure Repos Git 存储库是专用的,则可以使用 SSH 密钥、Microsoft Entra ID 令牌(建议)或个人访问令牌(PAT)进行身份验证。
重要
若要使用 go install专用 Azure Repos Git 存储库访问,必须先设置环境变量 GOPRIVATE=dev.azure.com。 可以在生成或运行之前在本地设置此环境变量。
SSH
若要在go install中使用 SSH,请先将 SSH 密钥设定在 Azure DevOps,具体步骤请参见使用 SSH 密钥身份验证。
设置 SSH 密钥后,将此条目添加到 .gitconfig 文件:
[url "git@ssh.dev.azure.com:v3/<organization>/<project>/<repo>"]
insteadOf = https://dev.azure.com/<organization>/<project>/<repo>
使用此条目和特定的 URL 格式,现在可以使用go install。
注释
请务必在存储库名称之后使用 .git 。
此外, _git 不会包含在要传递给 go install 的包 URL 中,因为使用的是 SSH URL。
go install dev.azure.com/<organization>/<project>/<repo>.git
HTTPS
若要将 HTTPS 与 go install配合使用,可以使用Microsoft Entra ID 令牌(推荐)或个人访问令牌(PAT)进行身份验证。
Microsoft Entra ID 令牌(推荐)
Microsoft Entra ID 令牌提供更好的安全性,并且是推荐的身份验证方法。 可以通过以下方法获取这些令牌:
Azure CLI (用于开发/测试):
az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query "accessToken" --output tsv服务主体 (适用于生产/自动化方案):
- 在 Microsoft Entra ID 中注册应用程序
- 为应用程序创建客户端密码
- 在 Azure DevOps 中向应用程序授予适当的权限
- 使用服务主体凭据以编程方式获取令牌
有关详细信息,请参阅 Microsoft Entra 身份验证。
获取Microsoft Entra ID 令牌后,将此条目添加到 .gitconfig 文件:
[url "https://<user>:<token>@dev.azure.com/<organization>/<project>/_git/<repo>"]
insteadOf = https://dev.azure.com/<organization>/<project>/_git/<repo>
该 <user> 部分可以是任何非空字符串。 请考虑使用 entra 或用户名。
小窍门
从 Azure CLI 获取一次性Microsoft Entra 令牌:可以使用 Azure CLI 快速获取用于 Git作的 Microsoft Entra ID 令牌,这对于开发和测试方案非常有用。 代表服务主体生成令牌时,请确保先 以服务主体身份登录 。
令牌管理:Microsoft Entra ID 令牌具有过期时间,因此可能需要定期刷新它们。 对于自动化工作流,请考虑将服务主体与适当的令牌刷新机制结合使用。
个人访问令牌(替代)
如果你更喜欢使用个人访问令牌 (PAT),请按照使用个人访问令牌进行身份验证访问中的描述创建一个 PAT。 此 PAT 只需要代码(读取)范围。
创建 PAT 后,将此条目添加到 .gitconfig 文件:
[url "https://<user>:<token>@dev.azure.com/<organization>/<project>/_git/<repo>"]
insteadOf = https://dev.azure.com/<organization>/<project>/_git/<repo>
该 <user> 部分可以是任何非空字符串。 请考虑使用 pat。
使用此条目和特定的 URL 格式,现在可以使用go install。
注释
请务必在存储库名称之后使用 .git 。
go install dev.azure.com/<organization>/<project>/_git/<repo>.git@<version>
还可以通过追加子文件夹名称在存储库的子文件夹中安装 Go 包,如以下示例所示。
go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1@<version>
go install dev.azure.com/<organization>/<project>/_git/<repo>.git/subfolder1/subfolder2@<version>