还原已删除的 Wiki

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

如果用户错误地删除了预配的(项目)或已发布(代码)Wiki,则可以还原它。 我们不通过 UI 提供用于删除 Wiki 的选项,但用户可能已使用 REST API 删除与 Wiki 关联的存储库。

注意

已删除的存储库在回收站中保留 30 天,之后它们会被永久删除,无法还原。

先决条件

  • 至少具有恢复 wiki 的基本访问权限。
  • 拥有 创建存储库 将代码发布为 wiki 的权限。 默认情况下,为 项目管理员组的成员设置此权限。
  • 属于参与者安全组成员的任何人都可以添加或编辑 Wiki 页面。 有权访问团队项目的任何人(包括利益干系人)都可以查看 Wiki。
  • 拥有 创建存储库 将代码发布为 wiki 的权限。 默认情况下,为 项目管理员组的成员设置此权限。
  • 属于参与者安全组成员的任何人都可以添加或编辑 Wiki 页面。 有权访问团队项目的任何人(包括利益干系人)都可以查看 Wiki。

恢复完整的 wiki

Wiki(项目和代码)作为存储库存储在 Azure DevOps 中的项目中。 完成以下步骤,使用 REST API 还原完整的 Wiki。

  1. 检索 git 存储库:列出存储库

    使用 includeHidden=true 参数查看 Wiki 存储库。

GET https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/repositories?includeHidden=true&api-version=7.1-preview.1
        {
            "id": "978e3886-64a8-4b6f-96da-6afc2936b04b",
            "name": "fabrikamfiber.wiki",
            "url": https://dev.azure.com/christiechurch/052a83ac-af70-4194-b53f-df073e5f1786/_apis/git/repositories/978e3886-64a8-4b6f-96da-6afc2936b04b,
            "project": {
                "id": "052a83ac-af70-4194-b53f-df073e5f1786",
                "name": "fabrikamfiber",
                "url": https://dev.azure.com/christiechurch/_apis/projects/052a83ac-af70-4194-b53f-df073e5f1786,
                "state": "wellFormed",
                "revision": 421800049,
                "visibility": "organization",
                "lastUpdateTime": "2023-07-18T12:25:29.3Z"
            },
            "defaultBranch": "refs/heads/wikiMaster",
            "size": 193,
            "remoteUrl": https://christiechurch@dev.azure.com/christiechurch/fabrikamfiber/_git/fabrikamfiber.wiki,
            "sshUrl": git@ssh.dev.azure.com:v3/christiechurch/fabrikamfiber/fabrikamfiber.wiki,
            "webUrl": https://dev.azure.com/christiechurch/fabrikamfiber/_git/fabrikamfiber.wiki,
            "isDisabled": false,
            "isInMaintenance": false
        }
  1. 在回收站中搜索您的存储库。
GET https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/recycleBin/repositories?api-version=7.1-preview.1

找到存储库(通常命名为 .wiki)时,请记下存储库 ID。

{
    "value": [
        {
            "id": "978e3886-64a8-4b6f-96da-6afc2936b04b",
            "name": "fabrikamfiber.wiki",
            "project": {
                "id": "052a83ac-af70-4194-b53f-df073e5f1786",
                "name": "fabrikamfiber",
                "url": https://dev.azure.com/christiechurch/_apis/projects/052a83ac-af70-4194-b53f-df073e5f1786,
                "state": "wellFormed",
                "revision": 421800049,
                "visibility": "organization",
                "lastUpdateTime": "2023-07-18T12:25:29.3Z"
            },
            "deletedBy": {
                "displayName": "Christie Church",
                "url": https://spsprodeus23.vssps.visualstudio.com/A1df9d653-bdfb-459b-a0c7-725052b2f944/_apis/Identities/0a0a4b55-9671-440d-87bf-26644f200d8a,
                "_links": {
                    "avatar": {
                        "href": https://dev.azure.com/christiechurch/_apis/GraphProfile/MemberAvatars/aad.MDY4MDk2OGQtYWU5OS03Y2M5LTgxZTEtNTBjMDk4ZTllZTlh
                    }
                },
                "id": "0a0a4b55-9671-440d-87bf-26644f200d8a",
                "uniqueName": christiechurch@fabrikam.com,
                "imageUrl": https://dev.azure.com/christiechurch/_api/_common/identityImage?id=0a0a4b55-9671-440d-87bf-26644f200d8a,
                "descriptor": "aad.MDY4MDk2OGQtYWU5OS03Y2M5LTgxZTEtNTBjMDk4ZTllZTlh"
            },
            "createdDate": "2023-07-18T12:23:55.64Z",
            "deletedDate": "2023-07-18T12:41:38.737Z"
        }
    ],
    "count": 1
}
  1. 从存储库回收站恢复 wiki
PATCH https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/recycleBin/repositories/978e3886-64a8-4b6f-96da-6afc2936b04b?api-version=7.1-preview.1
{
    "deleted": false
}

维基已还原。

恢复 Wiki 页面

  1. 转到你的 repo 的 URL:https://dev.azure.com/<OrgName>/<ProjectName>/_git/classicreleaseoption.wiki

  2. 搜索主分支的历史记录,wikiMain

  3. 查找并选择已删除文件的提交。

  4. 请选择更多操作,然后选择恢复

  5. 创建并完成拉取请求。

Wiki 页面已还原。

使用 CLI 还原 Wiki 页面

如果更喜欢命令行选项,请执行以下步骤。

  1. 将 Wiki 克隆到本地计算机。
  2. 搜索已删除该页面的提交。
  3. 签出该提交。
  4. 复制页面以进行新的提交。

Wiki 页面已还原。

删除存储库

DELETE https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/repositories/052a83ac-af70-4194-b53f-df073e5f1786?api-version=7.1-preview.1

后续步骤