zoukankan      html  css  js  c++  java
  • 还原Azure DevOps Server (TFS)中误删除的生成流水线

    流水线历史记录

    DevOps Server流水线的历史记录有完善的版本日志,用户可以随时回退到修改过程中的任何一个版本,还能比较差异。这个历史记录功能可以和代码库中的版本控制媲美。

    图一:生成历史记录

    image

    但是,如果实施工程师辛辛苦苦配置的复杂流水线,不小心被一个小白删除了,而你翻遍了Azure DevOps Server 的所有菜单也找不到流水线的回收站菜单,此时估计你跳楼的心都有了。

    图二:生成定义中的删除按钮

    image

    还好,微软为你提供了一瓶后悔药,你还有最后的一种方法还原被删除的流水线,那就是Rest API。但是需要注意,系统只保留4周内被删除的流水线数据,如果超出了4周,流水线将被永久删除。

    下面我们来分别看看如何还原生成和发布流水线:

    还原生成流水线

    还原一条生成流水线的rest api格式如下:

    PATCH http://tfsserver/{collection/{project}/_apis/build/definitions/{definitionId}?deleted={deleted}&api-version=5.0

    使用上面api的核心,是需要了解流水线的id,就是definitionId。在当前版本的api中,没有获取所有生成定义的api,如果你不记得被删除的流水线ID,那么你需要根据最近新增加的流水线ID猜测,或者到数据库中使用SQL查询相关的表。

    例如下面我在postman中使用到的api:

    PATCH http://tfs.southeastasia.cloudapp.azure.com/DefaultCollection/DemoProject/_apis/build/definitions/5?deleted=false&api-version=5.0

    图三:postman中调用恢复流水线api

    image

    如果调用成功,系统会返回被恢复流水线的相关json数据;同时,你也可以在浏览器中看到恢复出来的数据了,只是生成的名称加上了前缀“(RESTORED 2019-03-21 13:45:49)”字样,如下图:

    image

    还原发布流水线

    还原发布流水线的方式和上面还原生成流水线的方式差不多。

    但是,在还原发布流水线之前,我们可以使用列表的api获取所有被删除的流水线,api格式如下:

    Get http://tfs.southeastasia.cloudapp.azure.com/DefaultCollection/DemoProject/_apis/release/definitions?isdeleted=true

    使用上面api,获取到需要还原的流水线ID后,就可以使用PATCH方法调用还原流水线的api了:

    PATCH http://tfs.southeastasia.cloudapp.azure.com/DefaultCollection/DemoProject/_apis/release/definitions/1?api-version=5

    注意在postman中调用上面的api时,需要做到:

    1. 调用api方式为PATCH

    2. 必须在body中添加备注信息,备注内容如下:

    { "Comment" : "Deleted by mistake" }

    3. body的数据格式为:application/json,或者application/json-patch+json

    下面是调用在postman中的截图:

    image

    如果api调用成功,系统会返回被还原的流水线的相关json数据,你可以在web界面中看到被还原的流水线了。

    在流水线的历史记录中,你可以看到还原过程中的日志信息:

    image

    看到这里,你不再需要担心误删除流水线数据了。

    微软DevOps MVP 张洪君 http://www.cnblogs.com/danzhang

    --End-

  • 相关阅读:
    网络爬虫基础练习
    中文词频统计
    综合练习:英文词频统计
    字符串、组合数据类型练习
    MVC Controller进行单元测试
    mvc、webapi杂记
    C#异步执行
    cross-domain-ajax-request-jquery
    JS将/Date(1446704778000)/转换成string
    SQL并发数查询
  • 原文地址:https://www.cnblogs.com/danzhang/p/10575143.html
Copyright © 2011-2022 走看看