微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby – 使用Rally Rest API进行CRUD操作

在我的公司,我们最近开始使用 Rally作为我们的项目管理工具.最初,我们团队外部的人投入了大量时间,使用命名约定手动创建迭代,这种约定与我们团队现有的方案无关.我不想让这个可怜的灵魂一个一个地手动删除这些空迭代,而是希望使用Rally的REST API自动化这个过程.简而言之,我们需要删除跨越3个不同项目(共享一个共同父项)的100个空迭代.

我花了一些时间来看看rally-rest-api ruby​​ gem,虽然我有一些有限的Ruby经验,但是我的API的查询界面仍然让我感到困惑,而且我在绕过它时遇到了一些麻烦.我知道我的正则表达式会是什么,但我只是不知道如何将其提供给查询.

这是我到目前为止:

require 'rubygems'
require 'rally_rest_api'

rally = RallyRestAPI.new(:username => "myuser",:password => "mypass")
regex = /ET-VT-100/    
# get all names that match criteria
iterations  = rally.find(:iteration) { "query using above regex?" }
# delete all the matching iterations
iterations.each do |iteration|
  iteration.delete    
end

任何指向正确方向的人都会非常感激.我觉得我差不多了.

解决方法

几个月前,当我想重命名一大堆迭代时,我不得不做类似的事情.

首先,确保您要进行身份验证的用户至少在要删除迭代的所有项目中分配了“编辑器”角色.此外,如果您的工作区中有任何项目没有读取权限,则必须首先提供项目元素以供查询开始. (您可能甚至不知道它们,组织中的其他人可能已经创建了它们).

以下内容获取对项目的引用,然后使用指定的正则表达式遍历迭代:

require 'rubygems'
require 'rally_rest_api'

rally = RallyRestAPI.new(:username => "myuser",:password => "mypass")

# Assumes all projects contain "FooBar" in name
projects  = rally.find(:project) { contains :name,"FooBar"}
projects.each do |project|
  project.iterations.each do |iteration|
    if iteration.name =~ /ET-VT-100/
      iteration.delete
    end  
  end
end

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐