2011-02-08 7 views
7

En mi empresa, recientemente hemos empezado a utilizar Rally para nuestra herramienta de gestión de proyectos. Inicialmente, alguien externo a nuestro equipo invirtió mucho tiempo creando iteraciones manualmente utilizando una convención de nomenclatura que simplemente no va a coincidir con el esquema existente de nuestro equipo. En lugar de pedirle a esta pobre alma que elimine estas iteraciones vacías a mano, una por una, me gustaría automatizar este proceso utilizando la API REST de Rally. En resumen, necesitamos eliminar estas más de 100 iteraciones vacías que abarcan 3 proyectos diferentes (que comparten un padre común).Uso de la API Rally de descanso para las operaciones CRUD

He pasado algún tiempo a la gema de rubíes rally-rest-api, y aunque tengo un poco de experiencia limitada Ruby, la consulta interfaz de la API sigue siendo confuso para mí, y estoy teniendo algunos problemas envolver mi cabeza alrededor de ella. Sé lo que le gustaría a mi expresión regular, pero no sé cómo proporcionar eso a la consulta.

Esto es lo que tengo hasta ahora:

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 

Cualquier punteros en la dirección correcta sería muy apreciada. Siento que estoy casi allí.

Respuesta

8

Tuve que hacer algo similar hace unos meses cuando quise cambiar el nombre de un gran grupo de iteraciones.

Primero, asegúrese de que el usuario con el que se está autenticando tenga al menos la función "Editor" asignada en todos los proyectos de los que desee eliminar iteraciones. Además, si tiene proyectos en su área de trabajo que no tiene permisos de lectura, primero deberá suministrar un elemento de proyecto para que comience la consulta. (Puede que ni siquiera los conozca, alguien más en su organización podría haberlos creado).

A continuación se obtiene una referencia a los proyectos y luego se coloca a través de las iteraciones con la expresión regular especificada:

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 
+1

¡Gracias, esto funcionó! – envigo

4

Probar:

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

Esto supone que la iteración tiene ET-VT-100 en el nombre, es posible que necesite consultar contra algún otro campo. Regexes no son compatibles con la APLICACIÓN REST, afaict.

+1

me sale el siguiente error: ' No autorizado para leer: La iteración 357306536 '. Comprobé dos veces mis permisos en cada uno de los proyectos y tengo Editor en cada uno. – envigo

+1

Consulte la respuesta anterior a esta pregunta, lo más probable es que primero tenga que obtener una referencia de un proyecto. – csamuel

Cuestiones relacionadas