diff --git a/pkg/jira/create.go b/pkg/jira/create.go index 7915dcc6..54988def 100644 --- a/pkg/jira/create.go +++ b/pkg/jira/create.go @@ -133,9 +133,6 @@ func (*Client) getRequestData(req *CreateRequest) *createRequest { Summary: req.Summary, Labels: req.Labels, epicField: req.EpicField, - TimeTracking: struct { - OriginalEstimate string `json:"originalEstimate,omitempty"` - }{OriginalEstimate: req.OriginalEstimate}, } switch v := req.Body.(type) { @@ -219,6 +216,12 @@ func (*Client) getRequestData(req *CreateRequest) *createRequest { } data.Fields.M.AffectsVersions = versions } + if req.OriginalEstimate != "" { + data.Fields.M.TimeTracking = &struct { + OriginalEstimate string `json:"originalEstimate,omitempty"` + }{OriginalEstimate: req.OriginalEstimate} + } + constructCustomFields(req.CustomFields, req.configuredCustomFields, &data) return &data @@ -307,7 +310,7 @@ type createFields struct { AffectsVersions []struct { Name string `json:"name,omitempty"` } `json:"versions,omitempty"` - TimeTracking struct { + TimeTracking *struct { OriginalEstimate string `json:"originalEstimate,omitempty"` } `json:"timetracking,omitempty"` epicField string diff --git a/pkg/jira/create_test.go b/pkg/jira/create_test.go index 8f8ba490..fab756c4 100644 --- a/pkg/jira/create_test.go +++ b/pkg/jira/create_test.go @@ -84,7 +84,7 @@ func TestCreate(t *testing.T) { func TestCreateSubtask(t *testing.T) { expectedBody := `{"update":{},"fields":{"project":{"key":"TEST"},"issuetype":{"name":"Sub-task"},` + - `"parent":{"key":"TEST-123"},"summary":"Test sub-task","description":"Test description","timetracking":{}}}` + `"parent":{"key":"TEST-123"},"summary":"Test sub-task","description":"Test description"}}` testServer := createTestServer{code: 201} server := testServer.serve(t, expectedBody) defer server.Close() @@ -116,7 +116,7 @@ func TestCreateSubtask(t *testing.T) { func TestCreateEpic(t *testing.T) { expectedBody := `{"update":{},"fields":{"customfield_10001":"CLI","description":"Test description","issuetype":{"name":` + - `"Bug"},"priority":{"name":"Normal"},"project":{"key":"TEST"},"summary":"Test bug", "timetracking":{}}}` + `"Bug"},"priority":{"name":"Normal"},"project":{"key":"TEST"},"summary":"Test bug"}}` testServer := createTestServer{code: 201} server := testServer.serve(t, expectedBody) defer server.Close() @@ -148,7 +148,7 @@ func TestCreateEpic(t *testing.T) { func TestCreateEpicNextGen(t *testing.T) { expectedBody := `{"update":{},"fields":{"description":"Test description","issuetype":{"name":"Bug"},` + - `"parent":{"key":"TEST-123"},"project":{"key":"TEST"},"summary":"Test bug","timetracking":{}}}` + `"parent":{"key":"TEST-123"},"project":{"key":"TEST"},"summary":"Test bug"}}` testServer := createTestServer{code: 201} server := testServer.serve(t, expectedBody) defer server.Close()