【问题标题】:How to solve the release pipeline deployment issue with the artifacts?如何解决工件的发布管道部署问题?
【发布时间】:2020-06-17 21:49:47
【问题描述】:

我正在使用 Azure DevOps REST API 创建发布管道并以编程方式进行部署。触发部署 API 后,它开始发布,但无法下载工件。在工件部分,我已将 Azure Repos 配置为下载代理中的代码。我收到以下错误。

[错误 1] TF401019: 名称或标识符为 21 的 Git 存储库不存在,或者您无权执行您正在执行的操作 尝试。

数字 21 是我尝试完成这项任务的次数。我不知道出了什么问题。

为了创建发布,我在请求正文中使用了以下详细信息。

"definitionId": String(release_definition_id),
"artifacts": [{
     "alias": releaseAlias,
     "instanceReference": {
         "definitionId": release_definition_id,
         "id": buildId,
         "sourceRepositoryId": azureRepoId,
         "sourceRepositoryType": "TfsGit",
         "sourceBranch": "master",
         "sourceVersion": azureRepoCommitId
      }
 }]

在创建版本时,它没有指向正确的存储库 ID。但我在发布定义中提供了所有正确的细节。

【问题讨论】:

  • 你能分享整个 json/script 吗?
  • @ShaykiAbramczyk 这是创建版本的完整请求正文。我是否缺少任何配置?

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline azure-devops-rest-api azure-repos


【解决方案1】:

试试下面的格式:

{
  "definitionId": 11,
  "artifacts": [
    {
      "alias": "_BSC",
      "instanceReference": {
        "sourceBranch": "master",
        "sourceRepositoryId": "ee63d8d0-xxx-0bc08b6712be",
        "sourceRepositoryType": "TfsGit",
        "id": "34a0883b8c-xxxxx-b46c03958b0"
      }
    }
  ]
}

以上定义的要点

alias:如您所述,您在工件部分设置了Azure Repos。这里这个别名值应该是你的repos alias 之一。例如,我的仓库名称是BSC,所以我的仓库别名是_BSC

id:将定义的sourceVersion 更改为id。然后把commit id放在这里。

【讨论】:

  • 感谢@Merlin Liang - MSFT。我正在关注这个官方文档docs.microsoft.com/en-us/rest/api/azure/devops/release/releases/…
  • 在官方文档中,他们提到为id属性提供buildIdvalue。在你回答之后,我明白了并用我的提交 ID 替换。它按预期工作。
  • @KumareshBabuNS。该文档似乎在这里给出了令人困惑的方向。与您分享我在配置此类 api 上的经验。只需从 UI 执行相同的操作,然后从 F12 检查 api 记录。它永远不会让你出错,哈哈 :-) 但无论如何,知道它现在可以正常工作真是太棒了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 2021-12-03
  • 2017-04-02
  • 1970-01-01
相关资源
最近更新 更多