Después de consultar especialistas en esta materia, programadores de varias áreas y profesores hemos dado con la solución a la interrogande y la plasmamos en esta publicación.
Solución:
Puedes hacerlo pero con dos recursos:
- Primero puedes obtener todos los tableros de scrum del proyecto con esto:
https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board-getAllBoards
-
Usar los parámetros de consulta proyectoKeyOrId y escribe para filtrarlos.
-
Itere todos los elementos y use la URL a continuación con la identificación de cada tablero para obtener sus sprints:
https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/board/boardId/sprint-getAllSprints
¿Esto te devuelve algún resultado?
http://jira-domain.com/rest/greenhopper/latest/rapidviews/list
Si es así, encuentre la identificación de la vista que contiene este proyecto, luego pruebe esta URL:
http://jira-domain.com/rest/greenhopper/latest/sprintquery/view-id?includeHistoricSprints=true&includeFutureSprints=true
Hagamos algunas suposiciones antes de escribir código:
- Nombre de la placa igual que el nombre del proyecto
- Solo habrá un tablero con ese nombre.
- Tenemos un modelo Sprint
Estoy usando el cliente de Jersey aquí para recuperar datos de JIRA.
private Client jerseyClient = Client.create();
jerseyClient.addFilter(new HTTPBasicAuthFilter("username", "password"));
private Gson gson = new Gson();
Métodos auxiliares
/**
* This method will a GET request to the URL supplied
* @param url to request
* @return String response from the GET request
*/
public String makeGetRequest(String url)
ClientResponse response = jerseyClient.resource(url).accept("application/json").get(ClientResponse.class);
return response.getEntity(String.class);
/**
* This method helps in extracting an array from a JSON string
* @param response from which Array need to be extracted
* @param arrayName
* @return JsonArray extracted Array
*/
public JsonArray extractArrayFromResponse(String response, String arrayName)
JsonObject jsonObject = gson.fromJson(response, JsonObject.class);
return jsonObject.get(arrayName).getAsJsonArray();
Código para recuperar sprints
/**
* This method will retrieve list of sprints in a given project
* @param project for which we are requesting sprints
* @return List of sprints
*/
public List getSprints(String project)
List sprintList = new ArrayList<>();
try
//get board URL for the given
String boardUrl = "https://jira.company.com/rest/agile/1.0/board?name=" + URLEncoder.encode(project, "UTF-8"); //assumption 1
String boardResponse = makeGetRequest(boardUrl);
JsonArray boards = extractArrayFromResponse(boardResponse, "values");
if(boards.size() > 0)
JsonObject board = boards.get(0).getAsJsonObject(); //assumption 2
//get all sprints for above obtained board
String sprintUrl = jsonHandler.extractString(board, "self")+"/sprint";
String sprintsResponse = makeGetRequest(sprintUrl);
JsonArray sprints = extractArrayFromResponse(sprintsResponse, "values");
//loop through all sprints
for (int i = 0; i < sprints.size(); i++)
JsonElement sprint = sprints.get(i);
JsonObject sprintObj = sprint.getAsJsonObject();
String sprintName = sprintObj.get("name").getAsString();
Sprint sprint = new Sprint(sprintName);
sprintList.add(sprint);
//end of for loop
catch (UnsupportedEncodingException e)
e.printStackTrace();
return sprintList;
Te invitamos a proteger nuestra faena escribiendo un comentario y dejando una valoración te estamos agradecidos.