我创建了azure devops管道,需要从另一个git存储库下载代码。根据我在某处阅读的推荐解决方案,我使用git clone命令添加了命令行脚本任务。不幸的是,这行不通。
我得到的错误是: 远程:TF200016:以下项目不存在:My0Test0Project。验证项目名称正确,并且该项目在指定的Azure DevOps服务器上存在。 致命:找不到存储库“ https://dev.azure.com/myCompany/My0Test0Project/_git/Service.Azure.Core/”
我在Azure中的项目有空格,也许天蓝色中存在与此相关的错误?有人知道任何解决方法吗?
这是我已经尝试过的一些代码:
git -c http.extraheader="AUTHORIZATION: Basic bXl1c2VyOmxtNjRpYTYzb283bW1iYXp1bnpzMml2eWxzbXZoZXE2azR1b3V2bXdzbnl5b3R5YWlnY2E=" clone https://dev.azure.com/myCompany/My%20Test%20Project/_git/Service.Azure.Core
git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" clone https://dev.azure.com/myCompany/My%20Test%20Project/_git/Service.Azure.Core
git clone https://oauth:lm64ia63oo7mmbazunzs2ivylsmvheq6k4uouvmwsnyyotyaigca@dev.azure.com/myCompany/My%20Test%20Project/_git/Service.Azure.Core
git clone https://test:$(System.AccessToken)@dev.azure.com/myCompany/My%20Test%20Project/_git/Service.Azure.Core
答案 0 :(得分:1)
原因是因为您需要添加系统访问令牌,以便Azure可以访问外部存储库。 (您的凭据需要访问该存储库)
注意:
我将URL用引号引起来,以转义URL字符串中的%符号,因为Powershell否则将其视为变量。
- powershell: |
git clone -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" "https://{YOUR PIPELINE URL}"
displayName: '{YOUR PIPELINE NAME}'
答案 1 :(得分:1)
我在 bash 脚本中遇到了同样的问题,并通过使用 %
转义 %%
字符解决了这个问题。
所以,你可以使用这个:
git clone https://test:$(System.AccessToken)@dev.azure.com/myCompany/My%%20Test%%20Project/_git/Service.Azure.Core
答案 2 :(得分:0)
您可以尝试将命令行任务更改为类似这样的内容吗?
git clone --single-branch --branch $(branchName) https://$(gitUserName):$(gitPassword)@dev.azure.com/myCompany/My%20Test%20Project/_git
其中$(gitUserName)和$(gitPassword)在以下位置配置为Alternate git credentials your Azure DevOps account。
还想问一下git仓库URL的结尾:
“ ... / _ git / Service.Azure.Core”,您正在尝试指定要克隆的文件夹还是工作目录?您也可以尝试使用之前的代码而无需结尾
https://dev.azure.com/myCompany/My%20Test%20Project/_git
答案 3 :(得分:0)
我在Powershell任务中尝试了此方法,并且有效 非常简单,只需使用
- powershell: |
git config user.email "$(Build.RequestedForEmail)"
git config user.name "$(Build.RequestedFor)"
git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" clone https://<org_Name>.visualstudio.com/<project_name>/_git/<repository_name>;
displayName: "<your task display name>"
答案 4 :(得分:0)
我遇到了基本相同的问题...只是我试图从我的项目中的OWN存储库中克隆...而命令未完成或超时。当我直接在构建服务器上运行它而不是从buidpipe上运行时,这很好。
cd $(system.defaultworkingdirectory)
md dependencies
cd dependencies
git clone http://somecrazy.devops.server.thing/3rdPartyNuget/Newtonsoft.Json/_git/Nancy-For-Newton
rename Nancy-For-Newton Nancy
答案 5 :(得分:0)
这会在您的路径中包含空格字符时发生。
解决方法是不要在URL中使用%20
,而应使用实际的空格字符。由于您的网址现在包含空格字符,因此请确保您的网址用双引号引起来。
所以你
git clone https://dev.azure.com/myCompany/My%20Test%20Project/_git/Service.Azure.Core/
应该是
git clone "https://dev.azure.com/myCompany/My Test Project/_git/Service.Azure.Core/"