MCPcopy Create free account
hub / github.com/git-bug/git-bug / UpdateIssueTitle

Method UpdateIssueTitle

bridge/jira/client.go:1019–1071  ·  view source on GitHub ↗

UpdateIssueTitle changes the "summary" field of a JIRA issue

(issueKeyOrID, title string)

Source from the content-addressed store, hash-verified

1017
1018// UpdateIssueTitle changes the "summary" field of a JIRA issue
1019func (client *Client) UpdateIssueTitle(issueKeyOrID, title string) (time.Time, error) {
1020
1021 url := fmt.Sprintf(
1022 "%s/rest/api/2/issue/%s", client.serverURL, issueKeyOrID)
1023 var responseTime time.Time
1024
1025 // NOTE(josh): Since updates are a list of heterogeneous objects let's just
1026 // manually build the JSON text
1027 data, err := json.Marshal(title)
1028 if err != nil {
1029 return responseTime, err
1030 }
1031
1032 var buffer bytes.Buffer
1033 _, _ = fmt.Fprintf(&buffer, `{"update":{"summary":[`)
1034 _, _ = fmt.Fprintf(&buffer, `{"set":%s}`, data)
1035 _, _ = fmt.Fprintf(&buffer, `]}}`)
1036
1037 data = buffer.Bytes()
1038 request, err := http.NewRequest("PUT", url, bytes.NewBuffer(data))
1039 if err != nil {
1040 return responseTime, err
1041 }
1042
1043 response, err := client.Do(request)
1044 if err != nil {
1045 err := fmt.Errorf("Performing request %v", err)
1046 return responseTime, err
1047 }
1048 defer response.Body.Close()
1049
1050 if response.StatusCode != http.StatusNoContent {
1051 content, _ := io.ReadAll(response.Body)
1052 err := fmt.Errorf(
1053 "HTTP response %d, query was %s\n data: %s\n response: %s",
1054 response.StatusCode, request.URL.String(), data, content)
1055 return responseTime, err
1056 }
1057
1058 dateHeader, ok := response.Header["Date"]
1059 if !ok || len(dateHeader) != 1 {
1060 // No "Date" header, or empty, or multiple of them. Regardless, we don't
1061 // have a date we can return
1062 return responseTime, nil
1063 }
1064
1065 responseTime, err = http.ParseTime(dateHeader[0])
1066 if err != nil {
1067 return time.Time{}, err
1068 }
1069
1070 return responseTime, nil
1071}
1072
1073// UpdateIssueBody changes the "description" field of a JIRA issue
1074func (client *Client) UpdateIssueBody(issueKeyOrID, body string) (time.Time, error) {

Callers 1

exportBugMethod · 0.80

Implementers 1

Clientbridge/github/mocks/Client.go

Calls 5

ErrorfMethod · 0.80
BytesMethod · 0.65
CloseMethod · 0.65
ReadAllMethod · 0.65
StringMethod · 0.65

Tested by

no test coverage detected