You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2023/06/16 10:45:46 UTC

[incubator-devlake] branch main updated: fix: error on creating scope config (#5511)

This is an automated email from the ASF dual-hosted git repository.

abeizn 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 40be19449 fix: error on creating scope config (#5511)
40be19449 is described below

commit 40be19449afc94e3b6b337a95fb0ae68fd86b2e2
Author: Liang Zhang <li...@merico.dev>
AuthorDate: Fri Jun 16 18:45:42 2023 +0800

    fix: error on creating scope config (#5511)
---
 backend/plugins/jira/models/scope_config.go | 25 -------------------------
 backend/plugins/jira/tasks/task_data.go     | 27 ++++++++++++++++++++++++---
 2 files changed, 24 insertions(+), 28 deletions(-)

diff --git a/backend/plugins/jira/models/scope_config.go b/backend/plugins/jira/models/scope_config.go
index d09b2db4e..82c3f4f52 100644
--- a/backend/plugins/jira/models/scope_config.go
+++ b/backend/plugins/jira/models/scope_config.go
@@ -19,9 +19,6 @@ package models
 
 import (
 	"encoding/json"
-	"regexp"
-
-	"github.com/apache/incubator-devlake/core/errors"
 	"github.com/apache/incubator-devlake/core/models/common"
 )
 
@@ -40,25 +37,3 @@ type JiraScopeConfig struct {
 func (r JiraScopeConfig) TableName() string {
 	return "_tool_jira_scope_configs"
 }
-
-func (r JiraScopeConfig) VerifyRegexp() errors.Error {
-	var err error
-	if r.RemotelinkCommitShaPattern != "" {
-		_, err = regexp.Compile(r.RemotelinkCommitShaPattern)
-		if err != nil {
-			return errors.Convert(err)
-		}
-	}
-	var repoPatterns []string
-	err = json.Unmarshal(r.RemotelinkRepoPattern, &repoPatterns)
-	if err != nil {
-		return errors.Convert(err)
-	}
-	for _, pattern := range repoPatterns {
-		_, err = regexp.Compile(pattern)
-		if err != nil {
-			return errors.Convert(err)
-		}
-	}
-	return nil
-}
diff --git a/backend/plugins/jira/tasks/task_data.go b/backend/plugins/jira/tasks/task_data.go
index 5bb3eb79a..c6c19f27d 100644
--- a/backend/plugins/jira/tasks/task_data.go
+++ b/backend/plugins/jira/tasks/task_data.go
@@ -20,6 +20,7 @@ package tasks
 import (
 	"encoding/json"
 	"fmt"
+	"regexp"
 	"time"
 
 	"github.com/apache/incubator-devlake/core/errors"
@@ -57,7 +58,30 @@ type JiraScopeConfig struct {
 	ApplicationType            string             `json:"applicationType"`
 }
 
+func (r *JiraScopeConfig) VerifyRegexp() errors.Error {
+	var err error
+	if r.RemotelinkCommitShaPattern != "" {
+		_, err = regexp.Compile(r.RemotelinkCommitShaPattern)
+		if err != nil {
+			return errors.Convert(err)
+		}
+	}
+	for _, pattern := range r.RemotelinkRepoPattern {
+		if pattern.Regex == "" {
+			return errors.BadInput.New("empty regex in remotelinkRepoPattern")
+		}
+		_, err = regexp.Compile(pattern.Regex)
+		if err != nil {
+			return errors.Convert(err)
+		}
+	}
+	return nil
+}
+
 func (r *JiraScopeConfig) ToDb() (*models.JiraScopeConfig, errors.Error) {
+	if err1 := r.VerifyRegexp(); err1 != nil {
+		return nil, err1
+	}
 	blob, err := json.Marshal(r.TypeMappings)
 	if err != nil {
 		return nil, errors.Default.Wrap(err, "error marshaling TypeMappings")
@@ -80,9 +104,6 @@ func (r *JiraScopeConfig) ToDb() (*models.JiraScopeConfig, errors.Error) {
 		ApplicationType:            r.ApplicationType,
 	}
 	scopeConfig.Entities = r.Entities
-	if err1 := scopeConfig.VerifyRegexp(); err1 != nil {
-		return nil, err1
-	}
 	return scopeConfig, nil
 }