mirror of
				https://github.com/interviewstreet/go-jira.git
				synced 2025-10-30 23:47:46 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package jira
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| )
 | |
| 
 | |
| // SprintService handles sprints in JIRA Agile API.
 | |
| // See https://docs.atlassian.com/jira-software/REST/cloud/
 | |
| type SprintService struct {
 | |
| 	client *Client
 | |
| }
 | |
| 
 | |
| // IssuesWrapper represents a wrapper struct for moving issues to sprint
 | |
| type IssuesWrapper struct {
 | |
| 	Issues []string `json:"issues"`
 | |
| }
 | |
| 
 | |
| // IssuesInSprintResult represents a wrapper struct for search result
 | |
| type IssuesInSprintResult struct {
 | |
| 	Issues []Issue `json:"issues"`
 | |
| }
 | |
| 
 | |
| // MoveIssuesToSprint moves issues to a sprint, for a given sprint Id.
 | |
| // Issues can only be moved to open or active sprints.
 | |
| // The maximum number of issues that can be moved in one operation is 50.
 | |
| //
 | |
| // JIRA API docs: https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/sprint-moveIssuesToSprint
 | |
| func (s *SprintService) MoveIssuesToSprint(sprintID int, issueIDs []string) (*Response, error) {
 | |
| 	apiEndpoint := fmt.Sprintf("rest/agile/1.0/sprint/%d/issue", sprintID)
 | |
| 
 | |
| 	payload := IssuesWrapper{Issues: issueIDs}
 | |
| 
 | |
| 	req, err := s.client.NewRequest("POST", apiEndpoint, payload)
 | |
| 
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 
 | |
| 	resp, err := s.client.Do(req, nil)
 | |
| 	if err != nil {
 | |
| 		err = NewJiraError(resp, err)
 | |
| 	}
 | |
| 	return resp, err
 | |
| }
 | |
| 
 | |
| // GetIssuesForSprint returns all issues in a sprint, for a given sprint Id.
 | |
| // This only includes issues that the user has permission to view.
 | |
| // By default, the returned issues are ordered by rank.
 | |
| //
 | |
| //  JIRA API Docs: https://docs.atlassian.com/jira-software/REST/cloud/#agile/1.0/sprint-getIssuesForSprint
 | |
| func (s *SprintService) GetIssuesForSprint(sprintID int) ([]Issue, *Response, error) {
 | |
| 	apiEndpoint := fmt.Sprintf("rest/agile/1.0/sprint/%d/issue", sprintID)
 | |
| 
 | |
| 	req, err := s.client.NewRequest("GET", apiEndpoint, nil)
 | |
| 
 | |
| 	if err != nil {
 | |
| 		return nil, nil, err
 | |
| 	}
 | |
| 
 | |
| 	result := new(IssuesInSprintResult)
 | |
| 	resp, err := s.client.Do(req, result)
 | |
| 	if err != nil {
 | |
| 		err = NewJiraError(resp, err)
 | |
| 	}
 | |
| 
 | |
| 	return result.Issues, resp, err
 | |
| }
 |