還原Azure DevOps Server (TFS)中誤刪除的生成流水線

流水線歷史記錄

DevOps Server流水線的歷史記錄有完善的版本日誌,用戶能夠隨時回退到修改過程當中的任何一個版本,還能比較差別。這個歷史記錄功能能夠和代碼庫中的版本控制媲美。web

圖一:生成歷史記錄數據庫

image

可是,若是實施工程師辛辛苦苦配置的複雜流水線,不當心被一個小白刪除了,而你翻遍了Azure DevOps Server 的全部菜單也找不到流水線的回收站菜單,此時估計你跳樓的心都有了。json

圖二:生成定義中的刪除按鈕api

image

還好,微軟爲你提供了一瓶後悔藥,你還有最後的一種方法還原被刪除的流水線,那就是Rest API。可是須要注意,系統只保留4周內被刪除的流水線數據,若是超出了4周,流水線將被永久刪除。瀏覽器

下面咱們來分別看看如何還原生成和發佈流水線:app

還原生成流水線

還原一條生成流水線的rest api格式以下:post

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

使用上面api的核心,是須要了解流水線的id,就是definitionId。在當前版本的api中,沒有獲取全部生成定義的api,若是你不記得被刪除的流水線ID,那麼你須要根據最近新增長的流水線ID猜想,或者到數據庫中使用SQL查詢相關的表。版本控制

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

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-

相關文章
相關標籤/搜索