Azure Devops REST API 删除

Azure Devops REST API DELETE

是否有使用 Azure Devops REST API DELETE 删除单个提交的示例?我在文档中看到了这个:

https://docs.microsoft.com/en-us/rest/api/azure/devops/wiki/pages/delete%20page?view=azure-devops-rest-6.0

删除

https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis/{wikiIdentifier}/pages?path={path}&comment={comment}&versionDescriptor.version={versionDescriptor.version}&versionDescriptor.versionOptions={versionDescriptor.versionOptions}&versionDescriptor.versionType={versionDescriptor.versionType}&api-version=6.0

但是,当我尝试使用邮递员针对 devops 执行此操作时,出现此错误:

{
    "$id": "1",
    "innerException": null,
    "message": "The version '{0}' either is invalid or does not exist.\r\nParameter name: versionDescriptor",
    "typeName": "Microsoft.TeamFoundation.SourceControl.WebServer.InvalidArgumentValueException, Microsoft.TeamFoundation.SourceControl.WebServer",
    "typeKey": "InvalidArgumentValueException",
    "errorCode": 0,
    "eventId": 0
}

我使用本地历史记录中显示的 ID 作为版本(即:“2e45375d”),使用“commit”作为版本类型,使用“previousChange”作为版本选项。

我可以使用 REST API 删除整个页面,但是我希望能够删除特定的提交。

您不能通过 REST API 端点执行此操作。简单地说,没有端点可以删除提交。但是,您可以重新设置回购协议以删除该提交。请检查此 here on another SO question - How to really delete a commit on VSTS / Azure-devops

我们无法通过 REST API 删除单个提交,我们可以尝试通过 git cmd git rebase -i <commit>~1git rebase -p --onto SHA^ SHA 删除提交,我们可以参考这个doc了解更多详情。

这将在交互模式下启动变基 -i 在您要重击的提交之前的那个点。编辑器将开始列出此后的所有提交。删除包含要删除的提交的行并保存文件。 Rebase 将完成其余的工作,仅删除该提交,并将所有其他提交重放回日志中。

此外,commit id(SHA) 是 40 个字符而不是 2e45375d

我们可以 copy the 40 character commit SHA,方法是单击 将完整 SHA 复制到剪贴板 按钮