diff --git a/commands.go b/commands.go index 4c7572d0..cf0f1c2e 100644 --- a/commands.go +++ b/commands.go @@ -627,6 +627,24 @@ func (c *Cli) CmdTransition(issue string, trans string) error { issueData = data.(map[string]interface{}) } issueData["meta"] = transMeta + if c.GetOptString("defaultResolution", "") == "" { + // .meta.fields.resolution.allowedValues + if fields, ok := transMeta["fields"].(map[string]interface{}); ok { + if resolution, ok := fields["resolution"].(map[string]interface{}); ok { + if allowedValues, ok := resolution["allowedValues"].([]interface{}); ok { + for _, allowedValueRaw := range allowedValues { + if allowedValues, ok := allowedValueRaw.(map[string]interface{}); ok { + if allowedValues["name"] == "Fixed" { + c.opts["defaultResolution"] = "Fixed" + } else if allowedValues["name"] == "Done" { + c.opts["defaultResolution"] = "Done" + } + } + } + } + } + } + } issueData["overrides"] = c.opts issueData["transition"] = map[string]interface{}{ "name": transName, diff --git a/templates.go b/templates.go index 13a77fca..1b80ea53 100644 --- a/templates.go +++ b/templates.go @@ -141,7 +141,7 @@ fields:{{if .meta.fields.assignee}} reporter: name: {{if .overrides.reporter}}{{.overrides.reporter}}{{else}}{{if .fields.reporter}}{{.fields.reporter.name}}{{end}}{{end}}{{end}}{{if .meta.fields.resolution}} resolution: # Values: {{ range .meta.fields.resolution.allowedValues }}{{.name}}, {{end}} - name: {{if .overrides.resolution}}{{.overrides.resolution}}{{else if .fields.resolution}}{{.fields.resolution.name}}{{else}}Fixed{{end}}{{end}}{{if .meta.fields.summary}} + name: {{if .overrides.resolution}}{{.overrides.resolution}}{{else if .fields.resolution}}{{.fields.resolution.name}}{{else}}{{or .overrides.defaultResolution "Fixed"}}{{end}}{{end}}{{if .meta.fields.summary}} summary: {{or .overrides.summary .fields.summary}}{{end}}{{if .meta.fields.versions.allowedValues}} versions: # Values: {{ range .meta.fields.versions.allowedValues }}{{.name}}, {{end}}{{if .overrides.versions}}{{ range (split "," .overrides.versions)}} - name: {{.}}{{end}}{{else}}{{range .fields.versions}}