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-