* INFRA-3705 : Creation of RCA ticket for sev-0 non-escalated non-CX incidents * INFRA-3705 : Self review * INFRA-3705 : Fix tests: * INFRA-3705 : UT's and minor constant changes * INFRA-3705 : Add migration script
65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package jira
|
|
|
|
import (
|
|
"gorm.io/datatypes"
|
|
incidentJiraModel "houston/model/incident_jira"
|
|
"strings"
|
|
)
|
|
|
|
type JiraTeamMetadata struct {
|
|
CreateIssueConfig CreateIssueConfig `json:"createIssueConfig"`
|
|
}
|
|
|
|
type CreateIssueConfig struct {
|
|
Fields []Field `json:"fields"`
|
|
}
|
|
|
|
type Field struct {
|
|
Name string `json:"name"`
|
|
Key string `json:"key"`
|
|
Value datatypes.JSON `json:"value"`
|
|
}
|
|
|
|
type CreateJiraTicketInput struct {
|
|
IncidentID uint
|
|
Metadata JiraTeamMetadata
|
|
}
|
|
|
|
type UpdateJiraTicketInput struct {
|
|
JiraKey string
|
|
Description []DescriptionText
|
|
}
|
|
|
|
type DescriptionText struct {
|
|
Text string
|
|
Link string
|
|
}
|
|
|
|
const DefaultJiraTimeout = "DEFAULT_JIRA_TIMEOUT"
|
|
const RCAJiraType = "RCA"
|
|
|
|
const HoustonIDField = "houston_id"
|
|
const SummaryField = "summary"
|
|
const DescriptionField = "description"
|
|
|
|
const IncidentLink = "Incident Link"
|
|
const RCAJiraLink = "RCA Link"
|
|
|
|
func ConvertIncidentJiraEntitiesToCommaSeparatedLinks(jiraLinks *[]incidentJiraModel.IncidentJiraEntity) string {
|
|
var jiraLinksString string
|
|
|
|
if jiraLinks != nil {
|
|
jiraLinkStrings := make([]string, len(*jiraLinks))
|
|
for i, jiraLink := range *jiraLinks {
|
|
jiraLinkStrings[i] = jiraLink.JiraLink
|
|
}
|
|
jiraLinksString = strings.Join(jiraLinkStrings, ",")
|
|
}
|
|
|
|
return jiraLinksString
|
|
}
|
|
|
|
func GetJiraKeyFromLink(jiraLink string) string {
|
|
return jiraLink[strings.LastIndex(jiraLink, "/")+1:]
|
|
}
|