Fix issuetype calls adding URL escaping

It is valid within JIRA to have issue types with spaces (for example we use
"Pro-Active Task") however the issuetype variable is not escaped prior to
formatting into the uri string.

This fix imports "net/url" and escapes all inclusions of issuetype into uri.
The only other variables formatted into uri are c.endpoint and issue which
shouldn't contain special characters.
This commit is contained in:
Jonathan Wright
2016-02-01 11:10:30 +00:00
parent 6e5cc9821e
commit 693e1441f7
+3 -2
View File
@@ -7,6 +7,7 @@ import (
"golang.org/x/crypto/ssh/terminal" "golang.org/x/crypto/ssh/terminal"
"net/http" "net/http"
"net/http/httputil" "net/http/httputil"
"net/url"
"os" "os"
"strings" "strings"
// "github.com/kr/pretty" // "github.com/kr/pretty"
@@ -181,7 +182,7 @@ func (c *Cli) CmdCreateMeta() error {
issuetype := c.getOptString("issuetype", "Bug") issuetype := c.getOptString("issuetype", "Bug")
log.Debug("createMeta called") log.Debug("createMeta called")
uri := fmt.Sprintf("%s/rest/api/2/issue/createmeta?projectKeys=%s&issuetypeNames=%s&expand=projects.issuetypes.fields", c.endpoint, project, issuetype) uri := fmt.Sprintf("%s/rest/api/2/issue/createmeta?projectKeys=%s&issuetypeNames=%s&expand=projects.issuetypes.fields", c.endpoint, project, url.QueryEscape(issuetype))
data, err := responseToJson(c.get(uri)) data, err := responseToJson(c.get(uri))
if err != nil { if err != nil {
return err return err
@@ -227,7 +228,7 @@ func (c *Cli) CmdCreate() error {
issuetype := c.getOptString("issuetype", "Bug") issuetype := c.getOptString("issuetype", "Bug")
log.Debug("create called") log.Debug("create called")
uri := fmt.Sprintf("%s/rest/api/2/issue/createmeta?projectKeys=%s&issuetypeNames=%s&expand=projects.issuetypes.fields", c.endpoint, project, issuetype) uri := fmt.Sprintf("%s/rest/api/2/issue/createmeta?projectKeys=%s&issuetypeNames=%s&expand=projects.issuetypes.fields", c.endpoint, project, url.QueryEscape(issuetype))
data, err := responseToJson(c.get(uri)) data, err := responseToJson(c.get(uri))
if err != nil { if err != nil {
return err return err