Azure devops 致命:无法读取

问题描述 投票:0回答:1

在尝试在 Azure 管道中构建时,我收到以下错误:

 fatal: Cannot prompt because user interactivity has been disabled.
 fatal: could not read Username for ****** (an azure repo)

我已将其添加到 yaml 但问题仍然存在:

  - checkout: self
     persistCredentials: true
     clean: true

问题来自 cmake 文件中的几个 FetchContent_Declare。我尝试从同一个 +PAT 重定向到 url,但它不起作用,它是这样的:

git config --global url."https://[email protected]:".insteadOf "https://dev.azure.com"

我能做什么?

git azure
1个回答
0
投票

PAT 代表个人访问令牌。仅当您不使用服务主体或尚未启用 DevOps 托管身份时,您才可以使用此功能。

Azure DevOps YAML 管道中的

persistCredentials 设置控制是否存储并保留管道运行期间使用的凭据,以便在同一代理上运行后续管道。此设置与您可能希望在多次运行中重复使用凭据的自托管代理特别相关。您的 YAML 中不应该需要它。

要配置管道以在 Azure DevOps 中使用其自己的身份进行身份验证,您可以根据您的要求利用托管身份或服务主体。设置方法如下:

使用托管身份:

Azure DevOps 支持 Azure 资源的托管身份。托管身份由 Azure 自动管理,被认为是一种更安全的 Azure 资源身份验证方式。

为 Azure DevOps 启用托管身份:

    在 Azure 门户中,导航到你的 Azure DevOps 组织或项目。
  • 在项目设置下,选择服务连接。
  • 单击新建服务连接并选择 Azure 资源管理器。
  • 选择托管身份作为身份验证方法。
使用服务主体:

如果您更喜欢使用服务主体而不是托管身份:

    创建服务主体:
    使用 Azure CLI 或 Azure 门户创建服务主体。

az ad sp create-for-rbac --name <ServicePrincipalName> --sdk-auth


    保存 appId、tenant、clientSecret 和 subscriptionId。
    将服务主体添加到 Azure DevOps:
    在 Azure DevOps 中,转到项目设置 > 服务连接。
  • 单击新建服务连接并选择 Azure 资源管理器。
  • 选择服务主体(手动)作为身份验证方法。
  • 输入订阅 ID、订阅名称、服务主体 ID (appId) 和服务主体密钥 (clientSecret)。
© www.soinside.com 2019 - 2024. All rights reserved.