如何在 VSTS API 中删除带注释的标签(git 标签)?

wdo*_*jos 4 azure-devops azure-devops-rest-api

我能够使用下面的请求成功创建带注释的标签(git 标签),但我无法以编程方式删除它。

POST https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/annotatedtags?api-version=4.1-preview.1
Run Code Online (Sandbox Code Playgroud)

要求:

{
    "name": "wagner-test-3",
    "message": "wagner-test-3",
    "taggedObject": {
        "objectId": "aaaaab6cad84a07b7bd65cf3519142a12f856baa"
    }
}
Run Code Online (Sandbox Code Playgroud)

根据文档,没有删除端点,所以我尝试了删除引用端点,但到目前为止没有运气。它只返回 400(无效请求)。

DELETE https://dev.azure.com/{organization}/{project}/_apis/git/favorites/refs/{favoriteId}?api-version=4.1-preview.1
Run Code Online (Sandbox Code Playgroud)

回复:

{
    "count": 1,
    "value": {
        "Message": "The request is invalid."
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢。

wdo*_*jos 6

我能够弄清楚我自己的问题。删除带注释的标签的方法是使用 Refs API 更新它。但这没有很好的记录。

POST https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/refs?api-version=4.1
Run Code Online (Sandbox Code Playgroud)

要求:

[
    {
        "name": "refs/tags/wagner-test-3",
        "newObjectId": "0000000000000000000000000000000000000000",
        "oldObjectId": "aaaaab6cad84a07b7bd65cf3519142a12f856baa"
    }
]
Run Code Online (Sandbox Code Playgroud)

Azure DevOps 文档: 参考 - 更新参考 创建、更新或删除参考(分支)。