mirror of
https://github.com/Threnklyn/jira.git
synced 2026-05-27 08:18:29 +02:00
add "rank" command allow ordering backlog issues in agile projects
This commit is contained in:
@@ -538,6 +538,51 @@ func (c *Cli) FindIssues() (interface{}, error) {
|
||||
return data, nil
|
||||
}
|
||||
|
||||
type RankOrder int
|
||||
|
||||
const (
|
||||
RANKBEFORE RankOrder = iota
|
||||
RANKAFTER RankOrder = iota
|
||||
)
|
||||
|
||||
func (c *Cli) RankIssue(issue, target string, order RankOrder) error {
|
||||
type RankRequest struct {
|
||||
Issues []string `json:"issues"`
|
||||
Before string `json:"rankBeforeIssue,omitempty"`
|
||||
After string `json:"rankAfterIssue,omitempty"`
|
||||
}
|
||||
req := &RankRequest{
|
||||
Issues: []string{
|
||||
issue,
|
||||
},
|
||||
}
|
||||
if order == RANKBEFORE {
|
||||
req.Before = target
|
||||
} else {
|
||||
req.After = target
|
||||
}
|
||||
|
||||
json, err := jsonEncode(req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
uri := fmt.Sprintf("%s/rest/agile/1.0/issue/rank", c.endpoint)
|
||||
if c.getOptBool("dryrun", false) {
|
||||
log.Debugf("PUT: %s", json)
|
||||
log.Debugf("Dryrun mode, skipping PUT")
|
||||
return nil
|
||||
}
|
||||
resp, err := c.put(uri, json)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if resp.StatusCode != 204 {
|
||||
return fmt.Errorf("failed to modify issue rank: %s", resp.Status)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetOptString will extract the string from the Cli object options
|
||||
// otherwise return the provided default
|
||||
func (c *Cli) GetOptString(optName string, dflt string) string {
|
||||
|
||||
Reference in New Issue
Block a user