Azure Pipeline,无法提示,因为终端提示已被禁用

Ros*_*oss 10 git cmd azure azure-pipelines

我正在尝试将管道设置为仅签出与项目相关的特定文件夹,以便减少签出时间。

我正在使用在许多其他问题上找到的以下代码,但我似乎无法让它工作。

- script: |
    cd $(Build.SourcesDirectory)

    git init
    git remote set-url origin $(Build.Repository.Uri)
    git config core.sparsecheckout true

    echo STARS/Source/ >> .git/info/sparse-checkout

    git pull origin $(Build.SourceBranch)
  displayName: 'Project Specific Checkout'
  env:
    SYSTEM_ACCESSTOKEN: $(System.AccessToken)

Run Code Online (Sandbox Code Playgroud)

我不断在日志中收到以下错误:

Reinitialized existing Git repository in C:/Agent001/_work/20/s/.git/
fatal: Cannot prompt because terminal prompts have been disabled.
fatal: could not read Password for 'https://organization@dev.azure.com/...': terminal prompts disabled
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何启用终端提示。

更新:

根据@Repcak 评论,我更新了代码,但仍然收到错误terminal prompts have been disabled

LeG*_*GEC 6

实际问题不在于是否有交互式终端,而在于提供访问目标存储库的凭据。

要遵循的设置取决于您访问存储库的方式(您似乎使用 https,ssh 是一个选项吗?)以及在某种程度上测试平台(如果您打算在客户端使用凭证管理器)。

  • 通过 https :如果SYSTEM_ACCESSTOKEN是为您的测试环境生成的 PAT,您必须以某种方式在脚本中使用它,就像使用密码一样。

您可以username:password通过在目标 URL 中指定它来传递(您在错误消息中发布的 URL 仅包含该username部分),或者设置凭据管理器,使其包含所述登录的密码,或者找到一种发出身份验证的方法以某种方式标记,或者...

  • 如果您可以切换到 ssh 访问:为您的管道设置 ssh 密钥,并选择一种在测试平台上部署所述 ssh 密钥的方法。


Dis*_*ive 6

不确定这是否能解决您的问题,但我的管道中出现了相同的错误消息,需要将代码推送到存储库中,这只是我的管道中的步骤无法访问构建的令牌。

您是否选中了“允许脚本访问 OAuth 令牌”复选框?

在此输入图像描述