【问题标题】:Azure Devops REST API DELETEAzure Devops REST API 删除
【发布时间】:2021-04-19 15:35:42
【问题描述】:

是否有使用 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作为版本(IE:“2e45375d”),并使用“commit”作为版本类型,并使用“previousChange”作为版本选项。

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

【问题讨论】:

  • 这是一个删除 wiki 页面的端点,而不是提交。

标签: azure-devops azure-devops-rest-api


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    这将以交互模式启动变基 -i 在您要敲击的提交之前的点。编辑器将开始列出从那时起的所有提交。删除包含要删除的提交的行并保存文件。 Rebase 将完成剩下的工作,只删除该提交,并将所有其他提交重播到日志中。

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

    我们可以通过点击将完整的 SHA 复制到剪贴板按钮来copy the 40 character commitSHA

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 2020-04-04
      • 2022-07-17
      • 1970-01-01
      • 2020-11-26
      • 2020-02-02
      • 1970-01-01
      相关资源
      最近更新 更多