流水线历史记录

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. uni-app开发小程序准备阶段

    1.软件安装 开始之前,开发者需先下载安装如下工具: HBuilderX:官方IDE下载地址 下面开发工具根据需求进行安装: 微信小程序开发工具安装 https://developers.weixin ...

  2. SQL 中的语法顺序与执行顺序

    FROM : HOME SQL 是一种声明式语言 SQL 语言是为计算机声明了一个你想从原始数据中获得什么样的结果的一个范例,而不是告诉计算机如何能够得到结果. SQL 语言声明的是结果集的属性,计算 ...

  3. 记一个jquery 无缝轮播的制作方法

    接触前端也很久了,今天才发现,要做好一个轮播,其实有很多东西需要考虑进去,否则做出来的轮播效果并不好,下面我就来做一个轮播,是依赖jquery来写的 1.要做轮播,首先需要的是HTML的内容,css的 ...

  4. Apache配置默认主页

    Apache配置默认主页 进入Apache的conf目录 打开httpd.conf文件输入: 在文件末位添加: <Directory "F:/www_php/blog_com/my_b ...

  5. 使用swiper插件,隐藏swiper后再显示,不会触发自动播放的解决办法

    问题: 项目中有一个需求,当点击P1时,两个页面进行轮播.当点击P2时,页面不轮播. 设置好以后,点击P2,再点击P1,此时页面不能自动轮播,只能手动触发. 解决: 在轮播器配置里,配置observe ...

  6. IntelliJ IDEA——SVN的配置及使用

    服务端:VisualSVN-Server-3.9.1-x64 下载地址:https://www.visualsvn.com/server/download/ TortoiseSVN 安装 下载地址:h ...

  7. python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )

    1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...

  8. linux启动http服务

    1.安装apache yum install httpd #根据提示,输入Y安装即可成功安装 systemctl start httpd.service #启动apache systemctl sto ...

  9. 大数据学习笔记1-大数据处理架构Hadoop

    Hadoop:一个开源的.可运行于大规模集群上的分布式计算平台.实现了MapReduce计算模型和分布式文件系统HDFS等功能,方便用户轻松编写分布式并行程序. Hadoop生态系统: HDFS:Ha ...

  10. C#删除文件夹以及删除文件

    public static void DelectDir(string srcPath) { try { DirectoryInfo dir = new DirectoryInfo(srcPath); ...