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{

Reply via email to