如何为时间点恢复自动创建 Azure DevOps Boards 备份?

How to automatically create Azure DevOps Boards backups for point in time restore?

Azure DevOps 服务没有现成的 feature 来支持 Azure Boards 的时间点 backup/restore。因此,我想知道如何通过 APIs?

做到这一点

我愿意接受任何可以自动安排的选项。例如,在计划的基础上(管道)创建并存储一个备份,将来可能用于执行手动触发的恢复。

尽管 UI 支持 exporting/importing 工作项数据 to/from CSV,但我找不到相应的 API。

根据你的描述,我进一步检查了这个问题。目前,没有用于从 .CSV 文件导入工作项的 REST API。请检查此user voice,然后您可以直接对其进行投票和评论。

有关解决方法,请检查以下步骤:

  1. PowerShell 任务调用 REST API 以获取平面工作项查询的结果,我们可以从响应正文中获取所有工作项 ID。

  2. 使用工作项id调用REST API,获取工作项的详细信息

  3. 将批量获取的工作项详情的响应体保存到json文件中,然后使用Publish Pipeline Artifacts任务来将此文件发布到Artifact,达到备份的目的。

  4. 使用下载管道工件任务下载工件文件。

  5. 使用PowerShell任务调用下面的REST API达到恢复的目的

例如:

PATCH https://{organization}.visualstudio.com/_apis/wit/$batch?api-version=4.1

正文:

[{
        
        "method": "PATCH",
        
        "uri": "/{project}/_apis/wit/workitems/${work item type}?api-version=4.1",
        "headers": {
            "Content-Type": "application/json-patch+json"
        },
        "body": [{
                "op": "add",
                "path": "/id",
                "value": "-1"
            },
            {
                "op": "add",
                "path": "/fields/System.Title",
                "from": null,
                "value": "Sample 1"
            }
        ]
    },
    {
        "method": "PATCH",
        "uri": "/{project}/_apis/wit/workitems/${work item type}?api-version=4.1",
        "headers": {
            "Content-Type": "application/json-patch+json"
        },
        "body": [{
                "op": "add",
                "path": "/id",
                "value": "-2"
            },
            {
                "op": "add",
                "path": "/fields/System.Title",
                "from": null,
                "value": "Sample 2"
            }
        ]
    }]

configure the scheduled trigger for a pipeline,请检查以下步骤:

  1. 切换到Triggers选项卡,点击Scheduled后面的Add按钮添加一个schedule。

  2. Select 您想要 运行 构建的日期和时间。