流水线历史记录

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

图一:生成历史记录

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

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

还好,微软为你提供了一瓶后悔药,你还有最后的一种方法还原被删除的流水线,那就是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

如果调用成功,系统会返回被恢复流水线的相关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了:

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中的截图:

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

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

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

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

--End-

还原Azure DevOps Server (TFS)中误删除的生成流水线的更多相关文章

  1. 在Azure DevOps Server (TFS)中实现VUE项目的自动打包

    概述 Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.由于它在数据绑定.页面展示和使用简单方面有很大的优势,逐渐被越来越多的前端开发团队使用.本文 ...

  2. Azure DevOps Server (TFS) 代码库Repo管理培训

    Repo是分布式代码库Git中的一个专用词,用于存储和管理开发团队中特定的源代码. 使用Git,可以协调整个团队的代码更改. 即使您只是一个开发人员,版本控制也可以帮助您在修复错误和开发新功能时保持井 ...

  3. Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)

    之前写过一篇博客"探索TFS Git 库文件换行(CRLF)的处理方式",主要是针对TFVC代码库的. 下面这篇文章说明如何在TFS的Git库中处理代码换行的问题. 概述 在Azu ...

  4. 在Azure DevOps Server (TFS)的流水线中编译和测试Xcode移动应用(iPhone)

    概述 Xcode是开发基于苹果macOS系统的桌面应用和移动应用的主要IDE工具.使用Azure DevOps Server (原名TFS)系统中的pipelines流水线功能,可以方便的集成Xcod ...

  5. 集成Azure DevOps Server(TFS) 与微软Teams

    1.概述 Microsoft Teams是Office 365中团队协作的中心.将团队的所有聊天.会议.文件和应用程序放在一个位置.软件开发团队可以在一个专门的协作中心中即时访问他们所需的所有内容,T ...

  6. 在Azure DevOps Server (TFS 2019) 流水线传递参数

    变量概述 在Azure DevOps Server的流水线中,变量是衔接不同任务和不通代理之间的桥梁,它可以使相对松散.各自独立的任务之间相关影响并共享数据.在流水线中使用变量,可以在各任务之间相互调 ...

  7. 在Windows操作系统的文件管理器中集成Azure DevOps Server (TFS)工具菜单

    故事场景 使用过SVN的用户,都知道在Windows的文件夹上点击鼠标右键,就会弹出Tortoise SVN的操作菜单(俗称小乌龟).通过这个功能,用户不需要打开SVN工具,可以直接在Windows的 ...

  8. Azure DevOps Server (TFS) 修改工作项附件大小限制

    1. 问题描述 当上传工作项附件时,系统提示"附件大小限制" 2.解决方案 2.1 默认设置 默认情况下,Azure DevOps Service和Team Foundation ...

  9. Azure DevOps Server (TFS) 修改Git文件大小限制

    签入Git的所有文件将永远保留在存储库中,限制大文件签入到代码库,可以增加磁盘使用效率,提高系统备份还原等日常维护的效率. 通过下面的设置,团队项目管理员可以阻止超过特定大小的文件进入存储库.如果推送 ...

随机推荐

  1. ABAP-FTP-执行

    1.界面 2.程序 ZFID0004_FTP_EXEC 主程序: *&------------------------------------------------------------- ...

  2. mvc中view与controll之间传递参数时,可以使用url进行传递

    mvc中view与controller之间传递参数时,可以使用url进行传递,但是在url的地址中需要加上“id=123”这样的东西才行. 具体如代码: window.location.href = ...

  3. python 的包的导入

    已经写过一篇包的导入了,最近又遇到了点问题,所以想把这些再搞的明白点就又试了试 代码结构如下 在test目录下,有Admin包,home包,在home下有它的子包foo 各个文件代码如下 admins ...

  4. 解决bootstrap和easyUI部分css类冲突问题。

    今天发现bootstrap和easyui的css类重复用了一个很笨的办法解决了,这种小事网上都不好搜啊. 我先引用的bootstrap后引用的easy UI,bootstrap的会被覆盖,boot的样 ...

  5. Ubuntu输入命令无效的问题

    https://blog.csdn.net/u014797226/article/details/80800550?utm_source=blogxgwz2 Ubuntu启动时输入密码后,一直停留在登 ...

  6. Halcom学习笔记1——Halcon知识点

    文件: 1.浏览HDevelop示例程序 2.程序另存在:Ctrl+Shift+S 3.导出:Ctrl+Shift+O X 编辑: 1.快捷键:  F3 激活     F4 注销     重复查找:C ...

  7. uboot1.1.6

    http://blog.csdn.net/lizuobin2/article/details/52061530

  8. 史上最坑 idea 更改代码不生效

    原来, 如果本地多次调整过系统时间,那么gradle 的缓存 会缓存 你的 上次编译时间再未来,那么你再怎么编译,都很难生效,即使删除了生成的字节码目录. 然后invalidate caches/re ...

  9. Log4J2用法

    一.    关于Log4J 2015年5月,Apache宣布Log4J 1.x 停止更新.最新版为1.2.17. 如今,Log4J 2.x已更新至2.7. 官方网址:http://logging.ap ...

  10. http://ctf.bugku.com/challenges#love:bugku--love

      做了一道逆向题目,主要关联到base64编码的知识点.下面做一分析. 题目如下:   通过测试,可知它没有加壳.尝试使用IDA进行分析. 1.IDA分析文件   打开文件后,按[shift+F12 ...