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

mappjzc 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 721bb5ef fix: fix mustcompile lost error msg (#2405)
721bb5ef is described below

commit 721bb5ef857e56e729959f46557e42dae9deed2f
Author: mappjzc <[email protected]>
AuthorDate: Mon Jul 4 17:17:16 2022 +0800

    fix: fix mustcompile lost error msg (#2405)
    
    changed MustCompile to Compile and add detail info to err.
    
    Nddtfjiang <[email protected]>
---
 config/config.go                                   |  7 +++--
 plugins/gitee/tasks/issue_extractor.go             | 33 ++++++++++++++++++----
 plugins/gitee/tasks/pr_extractor.go                | 13 +++++++--
 plugins/gitee/tasks/pr_issue_enricher.go           |  7 ++++-
 plugins/github/tasks/issue_extractor.go            | 33 ++++++++++++++++++----
 plugins/github/tasks/pr_extractor.go               | 13 +++++++--
 plugins/github/tasks/pr_issue_enricher.go          |  7 ++++-
 plugins/gitlab/tasks/issue_extractor.go            | 33 ++++++++++++++++++----
 plugins/gitlab/tasks/mr_extractor.go               | 13 +++++++--
 plugins/jira/tasks/issue_repo_commit_convertor.go  | 11 ++++++--
 plugins/jira/tasks/remotelink_extractor.go         |  8 +++++-
 .../tasks/refs_pr_cherry_pick_calculator.go        |  9 ++++--
 12 files changed, 153 insertions(+), 34 deletions(-)

diff --git a/config/config.go b/config/config.go
index 02fad7cf..ec2edc07 100644
--- a/config/config.go
+++ b/config/config.go
@@ -21,6 +21,7 @@ import (
        "errors"
        "fmt"
        "os"
+       "runtime/debug"
 
        "path/filepath"
        "regexp"
@@ -88,9 +89,9 @@ func replaceNewEnvItemInOldContent(v *viper.Viper, 
envFileContent string) (error
                encodeEnvName := encodeEnvNameReg.ReplaceAllStringFunc(envName, 
func(s string) string {
                        return fmt.Sprintf(`\%v`, s)
                })
-               envItemReg := 
regexp.MustCompile(fmt.Sprintf(`(?im)^\s*%v\s*\=.*$`, encodeEnvName))
-               if envItemReg == nil {
-                       return fmt.Errorf("regexp err"), ``
+               envItemReg, err := 
regexp.Compile(fmt.Sprintf(`(?im)^\s*%v\s*\=.*$`, encodeEnvName))
+               if err != nil {
+                       return fmt.Errorf("regexp Compile failed:[%s] 
stack:[%s]", err.Error(), debug.Stack()), ``
                }
                envFileContent = 
envItemReg.ReplaceAllStringFunc(envFileContent, func(s string) string {
                        switch ret := val.(type) {
diff --git a/plugins/gitee/tasks/issue_extractor.go 
b/plugins/gitee/tasks/issue_extractor.go
index c37476ec..7072afb2 100644
--- a/plugins/gitee/tasks/issue_extractor.go
+++ b/plugins/gitee/tasks/issue_extractor.go
@@ -19,7 +19,9 @@ package tasks
 
 import (
        "encoding/json"
+       "fmt"
        "regexp"
+       "runtime/debug"
 
        "github.com/apache/incubator-devlake/models/domainlayer/ticket"
        "github.com/apache/incubator-devlake/plugins/core"
@@ -104,28 +106,47 @@ func ExtractApiIssues(taskCtx core.SubTaskContext) error {
        var issueTypeRequirementRegex *regexp.Regexp
        var issueTypeIncidentRegex *regexp.Regexp
        var issueSeverity = config.IssueSeverity
+       var err error
        if len(issueSeverity) > 0 {
-               issueSeverityRegex = regexp.MustCompile(issueSeverity)
+               issueSeverityRegex, err = regexp.Compile(issueSeverity)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueSeverity 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueComponent = config.IssueComponent
        if len(issueComponent) > 0 {
-               issueComponentRegex = regexp.MustCompile(issueComponent)
+               issueComponentRegex, err = regexp.Compile(issueComponent)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueComponent 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issuePriority = config.IssuePriority
        if len(issuePriority) > 0 {
-               issuePriorityRegex = regexp.MustCompile(issuePriority)
+               issuePriorityRegex, err = regexp.Compile(issuePriority)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issuePriority 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueTypeBug = config.IssueTypeBug
        if len(issueTypeBug) > 0 {
-               issueTypeBugRegex = regexp.MustCompile(issueTypeBug)
+               issueTypeBugRegex, err = regexp.Compile(issueTypeBug)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueTypeBug 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueTypeRequirement = config.IssueTypeRequirement
        if len(issueTypeRequirement) > 0 {
-               issueTypeRequirementRegex = 
regexp.MustCompile(issueTypeRequirement)
+               issueTypeRequirementRegex, err = 
regexp.Compile(issueTypeRequirement)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueTypeRequirement 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueTypeIncident = config.IssueTypeIncident
        if len(issueTypeIncident) > 0 {
-               issueTypeIncidentRegex = regexp.MustCompile(issueTypeIncident)
+               issueTypeIncidentRegex, err = regexp.Compile(issueTypeIncident)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueTypeIncident 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
 
        extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
diff --git a/plugins/gitee/tasks/pr_extractor.go 
b/plugins/gitee/tasks/pr_extractor.go
index ffd2bd08..097e9b09 100644
--- a/plugins/gitee/tasks/pr_extractor.go
+++ b/plugins/gitee/tasks/pr_extractor.go
@@ -19,7 +19,9 @@ package tasks
 
 import (
        "encoding/json"
+       "fmt"
        "regexp"
+       "runtime/debug"
 
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/gitee/models"
@@ -81,12 +83,19 @@ func ExtractApiPullRequests(taskCtx core.SubTaskContext) 
error {
        var labelTypeRegex *regexp.Regexp
        var labelComponentRegex *regexp.Regexp
        var prType = config.PrType
+       var err error
        if len(prType) > 0 {
-               labelTypeRegex = regexp.MustCompile(prType)
+               labelTypeRegex, err = regexp.Compile(prType)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile prType failed:[%s] 
stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var prComponent = config.PrComponent
        if len(prComponent) > 0 {
-               labelComponentRegex = regexp.MustCompile(prComponent)
+               labelComponentRegex, err = regexp.Compile(prComponent)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile prComponent 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
 
        extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
diff --git a/plugins/gitee/tasks/pr_issue_enricher.go 
b/plugins/gitee/tasks/pr_issue_enricher.go
index dff9ab5d..9dd4012d 100644
--- a/plugins/gitee/tasks/pr_issue_enricher.go
+++ b/plugins/gitee/tasks/pr_issue_enricher.go
@@ -18,8 +18,10 @@ limitations under the License.
 package tasks
 
 import (
+       "fmt"
        "reflect"
        "regexp"
+       "runtime/debug"
        "strconv"
        "strings"
 
@@ -48,7 +50,10 @@ func EnrichPullRequestIssues(taskCtx core.SubTaskContext) 
(err error) {
        prBodyClosePattern = strings.Replace(prBodyClosePattern, "%s", 
data.Options.Owner, 1)
        prBodyClosePattern = strings.Replace(prBodyClosePattern, "%s", 
data.Options.Repo, 1)
        if len(prBodyClosePattern) > 0 {
-               prBodyCloseRegex = regexp.MustCompile(prBodyClosePattern)
+               prBodyCloseRegex, err = regexp.Compile(prBodyClosePattern)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile prBodyClosePattern 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        charPattern := regexp.MustCompile(`[a-zA-Z\s,]+`)
        cursor, err := db.Cursor(dal.From(&models.GiteePullRequest{}), 
dal.Where("repo_id = ?", repoId))
diff --git a/plugins/github/tasks/issue_extractor.go 
b/plugins/github/tasks/issue_extractor.go
index 5888e1f5..efbbf54a 100644
--- a/plugins/github/tasks/issue_extractor.go
+++ b/plugins/github/tasks/issue_extractor.go
@@ -19,7 +19,9 @@ package tasks
 
 import (
        "encoding/json"
+       "fmt"
        "regexp"
+       "runtime/debug"
 
        "github.com/apache/incubator-devlake/models/domainlayer/ticket"
        "github.com/apache/incubator-devlake/plugins/core"
@@ -67,28 +69,47 @@ func ExtractApiIssues(taskCtx core.SubTaskContext) error {
        var issueTypeRequirementRegex *regexp.Regexp
        var issueTypeIncidentRegex *regexp.Regexp
        var issueSeverity = config.IssueSeverity
+       var err error
        if len(issueSeverity) > 0 {
-               issueSeverityRegex = regexp.MustCompile(issueSeverity)
+               issueSeverityRegex, err = regexp.Compile(issueSeverity)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueSeverity 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueComponent = config.IssueComponent
        if len(issueComponent) > 0 {
-               issueComponentRegex = regexp.MustCompile(issueComponent)
+               issueComponentRegex, err = regexp.Compile(issueComponent)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueComponent 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issuePriority = config.IssuePriority
        if len(issuePriority) > 0 {
-               issuePriorityRegex = regexp.MustCompile(issuePriority)
+               issuePriorityRegex, err = regexp.Compile(issuePriority)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issuePriority 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueTypeBug = config.IssueTypeBug
        if len(issueTypeBug) > 0 {
-               issueTypeBugRegex = regexp.MustCompile(issueTypeBug)
+               issueTypeBugRegex, err = regexp.Compile(issueTypeBug)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueTypeBug 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueTypeRequirement = config.IssueTypeRequirement
        if len(issueTypeRequirement) > 0 {
-               issueTypeRequirementRegex = 
regexp.MustCompile(issueTypeRequirement)
+               issueTypeRequirementRegex, err = 
regexp.Compile(issueTypeRequirement)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueTypeRequirement 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueTypeIncident = config.IssueTypeIncident
        if len(issueTypeIncident) > 0 {
-               issueTypeIncidentRegex = regexp.MustCompile(issueTypeIncident)
+               issueTypeIncidentRegex, err = regexp.Compile(issueTypeIncident)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueTypeIncident 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
 
        extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
diff --git a/plugins/github/tasks/pr_extractor.go 
b/plugins/github/tasks/pr_extractor.go
index c50f7b0a..a49e5834 100644
--- a/plugins/github/tasks/pr_extractor.go
+++ b/plugins/github/tasks/pr_extractor.go
@@ -19,7 +19,9 @@ package tasks
 
 import (
        "encoding/json"
+       "fmt"
        "regexp"
+       "runtime/debug"
 
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/github/models"
@@ -67,12 +69,19 @@ func ExtractApiPullRequests(taskCtx core.SubTaskContext) 
error {
        var labelTypeRegex *regexp.Regexp
        var labelComponentRegex *regexp.Regexp
        var prType = config.PrType
+       var err error
        if len(prType) > 0 {
-               labelTypeRegex = regexp.MustCompile(prType)
+               labelTypeRegex, err = regexp.Compile(prType)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile prType failed:[%s] 
stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var prComponent = config.PrComponent
        if len(prComponent) > 0 {
-               labelComponentRegex = regexp.MustCompile(prComponent)
+               labelComponentRegex, err = regexp.Compile(prComponent)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile prComponent 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
 
        extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
diff --git a/plugins/github/tasks/pr_issue_enricher.go 
b/plugins/github/tasks/pr_issue_enricher.go
index 510c0363..0cc66285 100644
--- a/plugins/github/tasks/pr_issue_enricher.go
+++ b/plugins/github/tasks/pr_issue_enricher.go
@@ -18,8 +18,10 @@ limitations under the License.
 package tasks
 
 import (
+       "fmt"
        "reflect"
        "regexp"
+       "runtime/debug"
        "strconv"
        "strings"
 
@@ -48,7 +50,10 @@ func EnrichPullRequestIssues(taskCtx core.SubTaskContext) 
(err error) {
        prBodyClosePattern = strings.Replace(prBodyClosePattern, "%s", 
data.Options.Owner, 1)
        prBodyClosePattern = strings.Replace(prBodyClosePattern, "%s", 
data.Options.Repo, 1)
        if len(prBodyClosePattern) > 0 {
-               prBodyCloseRegex = regexp.MustCompile(prBodyClosePattern)
+               prBodyCloseRegex, err = regexp.Compile(prBodyClosePattern)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile prBodyClosePattern 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        charPattern := regexp.MustCompile(`[a-zA-Z\s,]+`)
        cursor, err := db.Cursor(dal.From(&githubModels.GithubPullRequest{}), 
dal.Where("repo_id = ?", repoId))
diff --git a/plugins/gitlab/tasks/issue_extractor.go 
b/plugins/gitlab/tasks/issue_extractor.go
index c3f49f98..31be638a 100644
--- a/plugins/gitlab/tasks/issue_extractor.go
+++ b/plugins/gitlab/tasks/issue_extractor.go
@@ -19,7 +19,9 @@ package tasks
 
 import (
        "encoding/json"
+       "fmt"
        "regexp"
+       "runtime/debug"
        "strconv"
 
        "github.com/apache/incubator-devlake/models/domainlayer/ticket"
@@ -138,28 +140,47 @@ func ExtractApiIssues(taskCtx core.SubTaskContext) error {
        var issueTypeRequirementRegex *regexp.Regexp
        var issueTypeIncidentRegex *regexp.Regexp
        var issueSeverity = config.IssueSeverity
+       var err error
        if len(issueSeverity) > 0 {
-               issueSeverityRegex = regexp.MustCompile(issueSeverity)
+               issueSeverityRegex, err = regexp.Compile(issueSeverity)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueSeverity 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueComponent = config.IssueComponent
        if len(issueComponent) > 0 {
-               issueComponentRegex = regexp.MustCompile(issueComponent)
+               issueComponentRegex, err = regexp.Compile(issueComponent)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueComponent 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issuePriority = config.IssuePriority
        if len(issuePriority) > 0 {
-               issuePriorityRegex = regexp.MustCompile(issuePriority)
+               issuePriorityRegex, err = regexp.Compile(issuePriority)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issuePriority 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueTypeBug = config.IssueTypeBug
        if len(issueTypeBug) > 0 {
-               issueTypeBugRegex = regexp.MustCompile(issueTypeBug)
+               issueTypeBugRegex, err = regexp.Compile(issueTypeBug)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueTypeBug 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueTypeRequirement = config.IssueTypeRequirement
        if len(issueTypeRequirement) > 0 {
-               issueTypeRequirementRegex = 
regexp.MustCompile(issueTypeRequirement)
+               issueTypeRequirementRegex, err = 
regexp.Compile(issueTypeRequirement)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueTypeRequirement 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var issueTypeIncident = config.IssueTypeIncident
        if len(issueTypeIncident) > 0 {
-               issueTypeIncidentRegex = regexp.MustCompile(issueTypeIncident)
+               issueTypeIncidentRegex, err = regexp.Compile(issueTypeIncident)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile issueTypeIncident 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
                RawDataSubTaskArgs: *rawDataSubTaskArgs,
diff --git a/plugins/gitlab/tasks/mr_extractor.go 
b/plugins/gitlab/tasks/mr_extractor.go
index fef6dad7..b0bde52e 100644
--- a/plugins/gitlab/tasks/mr_extractor.go
+++ b/plugins/gitlab/tasks/mr_extractor.go
@@ -19,7 +19,9 @@ package tasks
 
 import (
        "encoding/json"
+       "fmt"
        "regexp"
+       "runtime/debug"
 
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/gitlab/models"
@@ -80,12 +82,19 @@ func ExtractApiMergeRequests(taskCtx core.SubTaskContext) 
error {
        var labelTypeRegex *regexp.Regexp
        var labelComponentRegex *regexp.Regexp
        var prType = config.PrType
+       var err error
        if len(prType) > 0 {
-               labelTypeRegex = regexp.MustCompile(prType)
+               labelTypeRegex, err = regexp.Compile(prType)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile prType failed:[%s] 
stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        var prComponent = config.PrComponent
        if len(prComponent) > 0 {
-               labelComponentRegex = regexp.MustCompile(prComponent)
+               labelComponentRegex, err = regexp.Compile(prComponent)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile prComponent 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
        extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
                RawDataSubTaskArgs: *rawDataSubTaskArgs,
diff --git a/plugins/jira/tasks/issue_repo_commit_convertor.go 
b/plugins/jira/tasks/issue_repo_commit_convertor.go
index c80d76ad..b6470107 100644
--- a/plugins/jira/tasks/issue_repo_commit_convertor.go
+++ b/plugins/jira/tasks/issue_repo_commit_convertor.go
@@ -18,9 +18,12 @@ limitations under the License.
 package tasks
 
 import (
-       "github.com/apache/incubator-devlake/plugins/core/dal"
+       "fmt"
        "reflect"
        "regexp"
+       "runtime/debug"
+
+       "github.com/apache/incubator-devlake/plugins/core/dal"
 
        "github.com/apache/incubator-devlake/models/domainlayer/crossdomain"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
@@ -47,8 +50,12 @@ func ConvertIssueRepoCommits(taskCtx core.SubTaskContext) 
error {
        logger := taskCtx.GetLogger()
        logger.Info("convert issue repo commits")
        var commitRepoUrlRegex *regexp.Regexp
+       var err error
        commitRepoUrlPattern := `(.*)\-\/commit`
-       commitRepoUrlRegex = regexp.MustCompile(commitRepoUrlPattern)
+       commitRepoUrlRegex, err = regexp.Compile(commitRepoUrlPattern)
+       if err != nil {
+               return fmt.Errorf("regexp Compile commitRepoUrlPattern 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+       }
 
        clause := []dal.Clause{
                dal.From("_tool_jira_issue_commits jic"),
diff --git a/plugins/jira/tasks/remotelink_extractor.go 
b/plugins/jira/tasks/remotelink_extractor.go
index d3027bd0..4b5c1206 100644
--- a/plugins/jira/tasks/remotelink_extractor.go
+++ b/plugins/jira/tasks/remotelink_extractor.go
@@ -19,7 +19,9 @@ package tasks
 
 import (
        "encoding/json"
+       "fmt"
        "regexp"
+       "runtime/debug"
 
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/core/dal"
@@ -44,8 +46,12 @@ func ExtractRemotelinks(taskCtx core.SubTaskContext) error {
        db := taskCtx.GetDal()
        logger.Info("extract remote links")
        var commitShaRegex *regexp.Regexp
+       var err error
        if pattern := 
data.Options.TransformationRules.RemotelinkCommitShaPattern; pattern != "" {
-               commitShaRegex = regexp.MustCompile(pattern)
+               commitShaRegex, err = regexp.Compile(pattern)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile pattern failed:[%s] 
stack:[%s]", err.Error(), debug.Stack())
+               }
        }
 
        // select all remotelinks belongs to the board, cursor is important for 
low memory footprint
diff --git a/plugins/refdiff/tasks/refs_pr_cherry_pick_calculator.go 
b/plugins/refdiff/tasks/refs_pr_cherry_pick_calculator.go
index d4e800db..4659828b 100644
--- a/plugins/refdiff/tasks/refs_pr_cherry_pick_calculator.go
+++ b/plugins/refdiff/tasks/refs_pr_cherry_pick_calculator.go
@@ -18,7 +18,9 @@ limitations under the License.
 package tasks
 
 import (
+       "fmt"
        "regexp"
+       "runtime/debug"
        "strconv"
        "strings"
        "time"
@@ -44,10 +46,13 @@ func CalculatePrCherryPick(taskCtx core.SubTaskContext) 
error {
        ctx := taskCtx.GetContext()
        db := taskCtx.GetDal()
        var prTitleRegex *regexp.Regexp
-
+       var err error
        prTitlePattern := taskCtx.GetConfig("GITHUB_PR_TITLE_PATTERN")
        if len(prTitlePattern) > 0 {
-               prTitleRegex = regexp.MustCompile(prTitlePattern)
+               prTitleRegex, err = regexp.Compile(prTitlePattern)
+               if err != nil {
+                       return fmt.Errorf("regexp Compile prTitlePattern 
failed:[%s] stack:[%s]", err.Error(), debug.Stack())
+               }
        }
 
        cursor, err := db.Cursor(

Reply via email to