7

私の会社では、最近、プロジェクト管理ツールとしてRallyを使い始めました。当初、私たちのチームの外部の誰かが、私たちのチームの既存のスキームとはまったく調和しない命名規則を使用して手動でイテレーションを作成することに多くの時間を費やしました。このかわいそうな魂に、これらの空の繰り返しを 1 つずつ手作業で削除するように依頼する代わりに、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

正しい方向へのポインタは大歓迎です。私はほとんどそこにいるような気がします。

4

2 に答える 2

8

数か月前、イテレーションの大規模なグループの名前を変更したかったときに、これと似たようなことをしなければなりませんでした。

最初に、認証しているユーザーに、イテレーションを削除するすべてのプロジェクトで少なくとも「編集者」ロールが割り当てられていることを確認してください。また、ワークスペースに読み取り権限のないプロジェクトがある場合は、最初にクエリを開始するプロジェクト要素を指定する必要があります。(あなたはそれらについて知らないかもしれません。組織内の他の誰かがそれらを作成した可能性があります)。

以下は、プロジェクトへの参照を取得し、指定された正規表現を使用して反復をループします。

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
于 2011-02-08T01:41:43.297 に答える
4

試す:

iterations = rally.find(:iteration) { contains :name, "ET-VT-100" }

これは、イテレーションの名前に ET-VT-100 が含まれていることを前提としています。他のフィールドに対してクエリを実行する必要がある場合があります。正規表現は、REST API ではサポートされていません。

于 2011-02-08T01:13:09.503 に答える