0

我正在 Azure DevOps Pipeline 中执行一个批处理文件,其中包含以下语句。

git init    
git checkout -b %BranchName%    
git remote add origin %RepoURL%    
git fetch && git checkout %BranchName%

参数从变量中获取值。但我收到以下错误。

"Could not read Password for '<Repository URL>': terminal prompts disabled"

我尝试如下设置 RepoURL 参数的值。

https://<CollectionName>@dev.azure.com/<CollectionName>/<ProjectName>/_git/<RepoName>
https://<PAT>@dev.azure.com/<CollectionName>/<ProjectName>/_git/<RepoName>

此论坛中的许多帖子都建议使用 PAT。于是尝试了如下的 git pull 语句。

git pull %RepoURL%

但没有运气。仍然得到同样的错误。请任何人告诉我如何解决这个问题。

谢谢。

4

2 回答 2

1

根据您的描述,我使用以下方法进行测试,效果很好。

https://{PAT}@dev.azure.com/{organization}/{project}/_git/{repo name}

为了解决这个问题,请检查以下事项:

1.在代理作业选项中启用“<strong>允许脚本访问 OAuth 令牌”。 在此处输入图像描述

在 git remote add origin %RepoURL% 中使用System.AccessToken

git remote add origin %RepoURL%    
 
RepoURL: https://$env:SYSTEM_ACCESSTOKEN@dev.azure.com/{organization}/{project}/_git/{repo name}
  1. 转到 Repos 下的 Project Settings-> Repositories,向构建用户授予权限(在 repo 设置中)。 在此处输入图像描述
于 2020-11-27T06:45:03.000 回答
0

无法读取“存储库 URL”的密码:终端提示已禁用

如果您的 repo 来自另一个项目,您还需要注意关闭设置Limit job authorization scope to referenced Azure DevOps repositories

Project Settings-> Settings

在此处输入图像描述

启用此选项后,它会将所有管道的访问范围缩小到仅由使用该存储库的管道作业中的签出步骤显式引用的 Azure DevOps 存储库。

于 2020-12-02T07:06:03.467 回答