This is an automated email from the ASF dual-hosted git repository.
ka94 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/main by this push:
new 62a1e93a2 feat(pagerduty): add pagerduty priority as issue severity
(#6126)
62a1e93a2 is described below
commit 62a1e93a2dab358af6b0e2b1eecd21ad70208941
Author: Marco-De-Stefani <[email protected]>
AuthorDate: Thu Sep 28 16:17:09 2023 +0200
feat(pagerduty): add pagerduty priority as issue severity (#6126)
* feat(pagerduty): add pagerduty priority as issue severity
* feat(pagerduty): add pagerduty priority in DB
* feat(pagerduty): use priority name for incident priority
---
backend/plugins/pagerduty/models/incident.go | 1 +
.../20230920_add_incident_priority.go} | 48 ++++++++++------------
.../pagerduty/models/migrationscripts/register.go | 1 +
backend/plugins/pagerduty/models/raw/incidents.go | 27 ++++++------
.../plugins/pagerduty/tasks/incidents_converter.go | 1 +
.../plugins/pagerduty/tasks/incidents_extractor.go | 3 ++
6 files changed, 40 insertions(+), 41 deletions(-)
diff --git a/backend/plugins/pagerduty/models/incident.go
b/backend/plugins/pagerduty/models/incident.go
index f5117d750..7c5bd4978 100644
--- a/backend/plugins/pagerduty/models/incident.go
+++ b/backend/plugins/pagerduty/models/incident.go
@@ -41,6 +41,7 @@ type (
Summary string
Status IncidentStatus //acknowledged, triggered, resolved
Urgency IncidentUrgency //high or low
+ Priority string
CreatedDate time.Time
UpdatedDate time.Time
}
diff --git a/backend/plugins/pagerduty/models/incident.go
b/backend/plugins/pagerduty/models/migrationscripts/20230920_add_incident_priority.go
similarity index 54%
copy from backend/plugins/pagerduty/models/incident.go
copy to
backend/plugins/pagerduty/models/migrationscripts/20230920_add_incident_priority.go
index f5117d750..dc19e81bb 100644
--- a/backend/plugins/pagerduty/models/incident.go
+++
b/backend/plugins/pagerduty/models/migrationscripts/20230920_add_incident_priority.go
@@ -15,37 +15,31 @@ See the License for the specific language governing
permissions and
limitations under the License.
*/
-package models
+package migrationscripts
import (
- "github.com/apache/incubator-devlake/core/models/common"
- "time"
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
+ "github.com/apache/incubator-devlake/helpers/migrationhelper"
)
-const (
- IncidentStatusAcknowledged IncidentStatus = "acknowledged"
- IncidentStatusTriggered IncidentStatus = "triggered"
- IncidentStatusResolved IncidentStatus = "resolved"
-)
-
-type (
- IncidentUrgency string
- IncidentStatus string
-
- Incident struct {
- common.NoPKModel
- ConnectionId uint64 `gorm:"primaryKey"`
- Number int `gorm:"primaryKey"`
- Url string
- ServiceId string
- Summary string
- Status IncidentStatus //acknowledged, triggered, resolved
- Urgency IncidentUrgency //high or low
- CreatedDate time.Time
- UpdatedDate time.Time
- }
-)
+type addIncidentPriority struct {
+ Priority string `gorm:"type:varchar(255)"`
+}
-func (Incident) TableName() string {
+func (*addIncidentPriority) TableName() string {
return "_tool_pagerduty_incidents"
}
+func (u *addIncidentPriority) Up(baseRes context.BasicRes) errors.Error {
+ return migrationhelper.AutoMigrateTables(baseRes,
+ &addIncidentPriority{},
+ )
+}
+
+func (*addIncidentPriority) Version() uint64 {
+ return 20230920130004
+}
+
+func (*addIncidentPriority) Name() string {
+ return "add priority to _tool_pagerduty_incidents table"
+}
diff --git a/backend/plugins/pagerduty/models/migrationscripts/register.go
b/backend/plugins/pagerduty/models/migrationscripts/register.go
index e54a2dd52..e114df6ba 100644
--- a/backend/plugins/pagerduty/models/migrationscripts/register.go
+++ b/backend/plugins/pagerduty/models/migrationscripts/register.go
@@ -31,5 +31,6 @@ func All() []plugin.MigrationScript {
new(renameTr2ScopeConfig),
new(removeScopeConfig),
new(addRawParamTableForScope),
+ new(addIncidentPriority),
}
}
diff --git a/backend/plugins/pagerduty/models/raw/incidents.go
b/backend/plugins/pagerduty/models/raw/incidents.go
index 06299858c..8712d3165 100644
--- a/backend/plugins/pagerduty/models/raw/incidents.go
+++ b/backend/plugins/pagerduty/models/raw/incidents.go
@@ -439,20 +439,19 @@ type IncidentsLogEntriesElemTeamsElem struct {
}
type IncidentsPriority struct {
- // HtmlUrl corresponds to the JSON schema field "html_url".
- HtmlUrl *string `json:"html_url,omitempty"`
-
- // Id corresponds to the JSON schema field "id".
- Id *string `json:"id,omitempty"`
-
- // Self corresponds to the JSON schema field "self".
- Self *string `json:"self,omitempty"`
-
- // Summary corresponds to the JSON schema field "summary".
- Summary *string `json:"summary,omitempty"`
-
- // Type corresponds to the JSON schema field "type".
- Type *string `json:"type,omitempty"`
+ HtmlUrl *string `json:"html_url,omitempty"`
+ Id *string `json:"id,omitempty"`
+ Self *string `json:"self,omitempty"`
+ Summary *string `json:"summary,omitempty"`
+ Type *string `json:"type,omitempty"`
+ AccountId *string `json:"account_id,omitempty"`
+ Color *string `json:"color,omitempty"`
+ CreatedAt *time.Time `json:"created_at,omitempty"`
+ Description *string `json:"description,omitempty"`
+ Name *string `json:"name,omitempty"`
+ Order *int `json:"order,omitempty"`
+ SchemaVersion *int `json:"schema_version,omitempty"`
+ UpdatedAt *time.Time `json:"updated_at,omitempty"`
}
type IncidentsService struct {
diff --git a/backend/plugins/pagerduty/tasks/incidents_converter.go
b/backend/plugins/pagerduty/tasks/incidents_converter.go
index e8448afd5..902fdb9ba 100644
--- a/backend/plugins/pagerduty/tasks/incidents_converter.go
+++ b/backend/plugins/pagerduty/tasks/incidents_converter.go
@@ -102,6 +102,7 @@ func ConvertIncidents(taskCtx plugin.SubTaskContext)
errors.Error {
UpdatedDate: &incident.UpdatedDate,
LeadTimeMinutes: leadTime,
Priority: string(incident.Urgency),
+ Severity: incident.Priority,
}
var result []interface{}
if combined.User != nil {
diff --git a/backend/plugins/pagerduty/tasks/incidents_extractor.go
b/backend/plugins/pagerduty/tasks/incidents_extractor.go
index 755c0674e..fb3617d41 100644
--- a/backend/plugins/pagerduty/tasks/incidents_extractor.go
+++ b/backend/plugins/pagerduty/tasks/incidents_extractor.go
@@ -68,6 +68,9 @@ func ExtractIncidents(taskCtx plugin.SubTaskContext)
errors.Error {
incident.ServiceId = service.Id
results = append(results, &service)
}
+ if incidentRaw.Priority != nil {
+ incident.Priority = *incidentRaw.Priority.Name
+ }
for _, assignmentRaw := range incidentRaw.Assignments {
userRaw := assignmentRaw.Assignee
results = append(results, &models.Assignment{