我正在使用正确的令牌登录 az cli:
echo my_pat | az devops login
但是在获取项目中的现有存储库时,我看到以下错误:
az repos list --org {ado_org_url} --project {ado_project} --query '[*].name'
错误:请求的资源需要用户身份验证:https://dev.azure.com/my_org/my_project/\_apis/git/repositories
我在设置拍拍时是否缺少任何设置?我怎样才能摆脱这个错误?
如果您已经设置了 AZURE_DEVOPS_EXT_PAT 环境变量,则您不想使用 az devops 登录。如果您未设置 AZURE_DEVOPS_EXT_PAT 环境变量,请先设置它并执行 CLI 任务。
az devops
命令现在可以使用az login
登录,如果您已经使用az login
交互登录或使用用户名和密码登录,则无需提供令牌。但是,您无法使用 az login
以服务主体身份登录。在这种情况下需要 PAT。
如果您仍然需要使用 az devops login 登录,则需要 用户身份验证。为此,您必须使用服务原则登录
"user": {
"name": "***",
"type": "servicePrincipal"
}
参考文献构建: 工件、定义、请求、对构建进行排队并更新构建属性 权限:阅读
代码: 源代码、存储库、拉取请求和通知 权限:阅读
管道资源: 管理管道运行对管道资源的访问 权限:使用
发布: 读取、更新和删除版本、发布管道和阶段 权限:阅读
确认您的 PAT 具有这些权限后,您就可以成功使用 Azure CLI 命令。确保根据需要重新生成 PAT 并更新 Azure DevOps CLI 配置以使用新令牌。
以下是如何重新生成 PAT 的示例:
转到您的 Azure DevOps 组织设置。 导航至个人访问令牌页面。 生成具有上面列出的所需权限的新令牌。 更新 Azure DevOps CLI 配置以使用新令牌。 更新 PAT 并配置 Azure DevOps CLI 后,您应该能够运行 az repos list 命令,而不会遇到身份验证错误。