DevOps Server流水线的历史记录有完善的版本日志,用户能够随时回退到修改过程当中的任何一个版本,还能比较差别。这个历史记录功能能够和代码库中的版本控制媲美。web
图一:生成历史记录数据库
可是,若是实施工程师辛辛苦苦配置的复杂流水线,不当心被一个小白删除了,而你翻遍了Azure DevOps Server 的全部菜单也找不到流水线的回收站菜单,此时估计你跳楼的心都有了。json
图二:生成定义中的删除按钮api
还好,微软为你提供了一瓶后悔药,你还有最后的一种方法还原被删除的流水线,那就是Rest API。可是须要注意,系统只保留4周内被删除的流水线数据,若是超出了4周,流水线将被永久删除。浏览器
下面咱们来分别看看如何还原生成和发布流水线:app
还原一条生成流水线的rest api格式以下:post
使用上面api的核心,是须要了解流水线的id,就是definitionId。在当前版本的api中,没有获取全部生成定义的api,若是你不记得被删除的流水线ID,那么你须要根据最近新增长的流水线ID猜想,或者到数据库中使用SQL查询相关的表。版本控制
例以下面我在postman中使用到的api:rest
图三:postman中调用恢复流水线api
若是调用成功,系统会返回被恢复流水线的相关json数据;同时,你也能够在浏览器中看到恢复出来的数据了,只是生成的名称加上了前缀“(RESTORED 2019-03-21 13:45:49)”字样,以下图:
还原发布流水线的方式和上面还原生成流水线的方式差很少。
可是,在还原发布流水线以前,咱们可使用列表的api获取全部被删除的流水线,api格式以下:
Get http://tfs.southeastasia.cloudapp.azure.com/DefaultCollection/DemoProject/_apis/release/definitions?isdeleted=true
使用上面api,获取到须要还原的流水线ID后,就可使用PATCH方法调用还原流水线的api了:
注意在postman中调用上面的api时,须要作到:
1. 调用api方式为PATCH
2. 必须在body中添加备注信息,备注内容以下:
{ "Comment" : "Deleted by mistake" }
3. body的数据格式为:application/json,或者application/json-patch+json
下面是调用在postman中的截图:
若是api调用成功,系统会返回被还原的流水线的相关json数据,你能够在web界面中看到被还原的流水线了。
在流水线的历史记录中,你能够看到还原过程当中的日志信息:
看到这里,你再也不须要担忧误删除流水线数据了。
微软DevOps MVP 张洪君 http://www.cnblogs.com/danzhang
--End-