【问题标题】:How to automatically create Azure DevOps Boards backups for point in time restore?如何自动创建 Azure DevOps Boards 备份以进行时间点还原?
【发布时间】:2020-11-11 01:58:14
【问题描述】:

Azure DevOps 服务没有开箱即用的 feature 来支持 Azure Boards 的时间点备份/恢复。因此,我想知道如何通过 API 做到这一点?

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

虽然 UI 支持 exporting/importing 工作项数据与 CSV 之间的往来,但我找不到相应的 API。

【问题讨论】:

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


    【解决方案1】:

    根据您的描述,我进一步检查了这个问题。目前,没有用于从 .CSV 文件导入工作项的 REST API。请查看此user voice,然后您可以直接在上面投票和添加cmets。

    如需解决方法,请检查以下步骤:

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

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

    3. 将批量获取的work item details的response body保存到json文件中,然后使用Publish Pipeline Artifacts任务将该文件发布到Artifact,达到备份的目的。 p>

    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按钮添加一个时间表。

    2. 选择您要运行构建的日期和时间。

    【讨论】:

    • 感谢您的彻底回复。我对用户声音进行了投票。我喜欢管道工件选项,但另一种选择是存储在 git repo 中(差异可能有用)。
    • 我还添加了一个新功能请求并编辑了我的问题以链接到它:developercommunity.visualstudio.com/idea/1249654/…
    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2016-09-06
    • 2015-10-13
    相关资源
    最近更新 更多