You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ma...@apache.org on 2022/07/04 09:17:20 UTC
[incubator-devlake] branch main updated: fix: fix mustcompile lost error msg (#2405)
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 <zh...@merico.dev>
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 <zh...@merico.dev>
---
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(