如何使用jirarestapi获得项目中的所有sprint

如何使用jirarestapi获得项目中的所有sprint,jira,jira-rest-api,jira-agile,Jira,Jira Rest Api,Jira Agile,是否有类似于“”的东西来检索项目中的所有sprint JIRA平台api可以检索项目信息,JIRA软件api可以检索给定板的Sprint。但是我需要对任何给定的项目(组合)进行sprint,或者至少对给定的项目进行board,这样我以后就可以在这些board中检索sprint了这会为您返回任何结果吗 http://jira-domain.com/rest/greenhopper/latest/rapidviews/list 如果是,请找到包含此项目的视图的id,然后尝试以下url: http:

是否有类似于“”的东西来检索项目中的所有sprint


JIRA平台api可以检索项目信息,JIRA软件api可以检索给定板的Sprint。但是我需要对任何给定的项目(组合)进行sprint,或者至少对给定的项目进行board,这样我以后就可以在这些board中检索sprint了

这会为您返回任何结果吗

http://jira-domain.com/rest/greenhopper/latest/rapidviews/list
如果是,请找到包含此项目的视图的id,然后尝试以下url:

http://jira-domain.com/rest/greenhopper/latest/sprintquery/{view-id}?includeHistoricSprints=true&includeFutureSprints=true

您可以这样做,但需要两种资源:

  • 首先,您可以通过以下方式获得项目的所有scrum板:

  • 使用查询参数projectKeyOrIdtype对其进行筛选

  • 迭代所有元素,并使用下面带有每个板id的url来获取其Sprint:


在编写代码之前,让我们先做一些假设:

  • 董事会名称与项目名称相同
  • 将只有一个具有该名称的板
  • 我们有一个Sprint模型
  • 我在这里使用Jersey客户端从JIRA检索数据

    private Client jerseyClient = Client.create();
    jerseyClient.addFilter(new HTTPBasicAuthFilter("username", "password"));
    private Gson gson = new Gson();
    
    辅助方法

       /**
         * 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();
        }
    
        /**
         * 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<Sprint> getSprints(String project) {
            List<Sprint> 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;
    
        }
    
    检索sprint的代码

       /**
         * 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();
        }
    
        /**
         * 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<Sprint> getSprints(String project) {
            List<Sprint> 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;
    
        }
    
    /**
    *此方法将检索给定项目中的sprint列表
    *@param项目,我们正在请求sprint
    *@返回冲刺列表
    */
    公共列表GetSprint(字符串项目){
    List sprintList=newarraylist();
    试一试{
    //获取给定项目的董事会URL
    字符串boardUrl=”https://jira.company.com/rest/agile/1.0/board?name=“+URLEncoder.encode(项目“UTF-8”);//假设1
    String boardResponse=makeGetRequest(boardUrl);
    JsonArray boards=extractArrayFromResponse(boardResponse,“值”);
    如果(boards.size()>0){
    JsonObject board=boards.get(0.getAsJsonObject();//假设2
    //获得以上获得的板的所有冲刺
    String sprintUrl=jsonHandler.extractString(board,“self”)+“/sprint”;
    字符串sprintsResponse=makeGetRequest(sprintUrl);
    JsonArray sprints=extractArrayFromResponse(sprintsResponse,“值”);
    //循环完成所有的短跑
    对于(int i=0;i
    如果
    getsprint
    restapi包含了您需要的所有字段,则可以调整我发布的脚本以获取此信息。