This is an automated email from the ASF dual-hosted git repository.
warren 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 80ae9de11 feat: sonarqube issue project update (#4361)
80ae9de11 is described below
commit 80ae9de11db9441826370e24eb16cf4259e88bd6
Author: abeizn <[email protected]>
AuthorDate: Wed Feb 8 20:42:41 2023 +0800
feat: sonarqube issue project update (#4361)
* feat: sonar qube issue project update
* feat: sonar qube issue project update
* feat: sonar qube issue project update
* feat: sonar qube issue project update
---
.../securitytesting/st_issue_code_blocks.go | 17 +++++++-------
.../domainlayer/securitytesting/st_issues.go | 1 -
.../domainlayer/securitytesting/st_projects.go | 1 -
.../archived/st_issue_code_blocks.go | 17 +++++++-------
.../models/migrationscripts/archived/st_issues.go | 5 ++---
.../migrationscripts/archived/st_projects.go | 1 -
.../archived/sonarqube_issue_code_block.go | 1 -
.../sonarqube/models/sonarqube_issue_code_block.go | 1 -
.../plugins/sonarqube/tasks/hotspots_convertor.go | 1 -
.../sonarqube/tasks/issue_code_blocks_convertor.go | 26 ++++++++++++----------
.../plugins/sonarqube/tasks/issues_convertor.go | 4 ++--
.../plugins/sonarqube/tasks/issues_extractor.go | 1 -
.../plugins/sonarqube/tasks/projects_convertor.go | 4 ++--
13 files changed, 36 insertions(+), 44 deletions(-)
diff --git
a/backend/core/models/domainlayer/securitytesting/st_issue_code_blocks.go
b/backend/core/models/domainlayer/securitytesting/st_issue_code_blocks.go
index 9d0fbe6e1..1fd94a90d 100644
--- a/backend/core/models/domainlayer/securitytesting/st_issue_code_blocks.go
+++ b/backend/core/models/domainlayer/securitytesting/st_issue_code_blocks.go
@@ -21,15 +21,14 @@ import
"github.com/apache/incubator-devlake/core/models/domainlayer"
type StIssueCodeBlock struct {
domainlayer.DomainEntity
- Id string `gorm:"primaryKey"`
- IssueKey string `json:"key" gorm:"index"`
- Component string `json:"component" gorm:"index"`
- Project string `json:"project" gorm:"index"`
- Msg string `json:"msg" `
- StartLine int `json:"startLine" `
- EndLine int `json:"endLine" `
- StartOffset int `json:"startOffset" `
- EndOffset int `json:"endOffset" `
+ IssueCodeBlockId string `json:"issueCodeBlockId"`
+ IssueKey string `json:"key" gorm:"index"`
+ Component string `json:"component" gorm:"index"`
+ Msg string `json:"msg" `
+ StartLine int `json:"startLine" `
+ EndLine int `json:"endLine" `
+ StartOffset int `json:"startOffset" `
+ EndOffset int `json:"endOffset" `
}
func (StIssueCodeBlock) TableName() string {
diff --git a/backend/core/models/domainlayer/securitytesting/st_issues.go
b/backend/core/models/domainlayer/securitytesting/st_issues.go
index e45ebe9d9..6105224eb 100644
--- a/backend/core/models/domainlayer/securitytesting/st_issues.go
+++ b/backend/core/models/domainlayer/securitytesting/st_issues.go
@@ -26,7 +26,6 @@ type StIssue struct {
domainlayer.DomainEntity
BatchId string `json:"batchId"
gorm:"type:varchar(100)"` // from collection time
Project string `gorm:"index;type:varchar(255)"`
//domain project key
- Key string `json:"key"`
Rule string `json:"rule"
gorm:"type:varchar(255)"`
Severity string `json:"severity"
gorm:"type:varchar(255)"`
Component string `json:"component"
gorm:"type:varchar(255)"`
diff --git a/backend/core/models/domainlayer/securitytesting/st_projects.go
b/backend/core/models/domainlayer/securitytesting/st_projects.go
index eec3cb395..e08286352 100644
--- a/backend/core/models/domainlayer/securitytesting/st_projects.go
+++ b/backend/core/models/domainlayer/securitytesting/st_projects.go
@@ -27,7 +27,6 @@ var _ plugin.Scope = (*StProject)(nil)
type StProject struct {
domainlayer.DomainEntity
- Key string `json:"key" gorm:"type:varchar(64)"`
Name string `json:"name" gorm:"type:varchar(255)"`
Qualifier string `json:"qualifier"
gorm:"type:varchar(255)"`
Visibility string `json:"visibility"
gorm:"type:varchar(64)"`
diff --git
a/backend/core/models/migrationscripts/archived/st_issue_code_blocks.go
b/backend/core/models/migrationscripts/archived/st_issue_code_blocks.go
index ec36f130d..86044b90b 100644
--- a/backend/core/models/migrationscripts/archived/st_issue_code_blocks.go
+++ b/backend/core/models/migrationscripts/archived/st_issue_code_blocks.go
@@ -19,15 +19,14 @@ package archived
type StIssueCodeBlock struct {
DomainEntity
- Id string `gorm:"primaryKey"`
- IssueKey string `json:"key" gorm:"index"`
- Component string `json:"component" gorm:"index"`
- Project string `json:"project" gorm:"index"`
- Msg string `json:"msg" `
- StartLine int `json:"startLine" `
- EndLine int `json:"endLine" `
- StartOffset int `json:"startOffset" `
- EndOffset int `json:"endOffset" `
+ IssueCodeBlockId string `json:"issueCodeBlockId"`
+ IssueKey string `json:"key" gorm:"index"`
+ Component string `json:"component" gorm:"index"`
+ Msg string `json:"msg" `
+ StartLine int `json:"startLine" `
+ EndLine int `json:"endLine" `
+ StartOffset int `json:"startOffset" `
+ EndOffset int `json:"endOffset" `
}
func (StIssueCodeBlock) TableName() string {
diff --git a/backend/core/models/migrationscripts/archived/st_issues.go
b/backend/core/models/migrationscripts/archived/st_issues.go
index 1460831be..82f969801 100644
--- a/backend/core/models/migrationscripts/archived/st_issues.go
+++ b/backend/core/models/migrationscripts/archived/st_issues.go
@@ -23,9 +23,8 @@ import (
type StIssue struct {
DomainEntity
- BatchId string `json:"batchId" gorm:"type:varchar(100)"` //
from collection time
- Key string
- Project string `gorm:"index;type:varchar(255)"`
//domain project key
+ BatchId string `json:"batchId"
gorm:"type:varchar(100)"` // from collection time
+ Project string `gorm:"index;type:varchar(255)"`
//domain project key
Rule string `json:"rule"
gorm:"type:varchar(255)"`
Severity string `json:"severity"
gorm:"type:varchar(255)"`
Component string `json:"component"
gorm:"type:varchar(255)"`
diff --git a/backend/core/models/migrationscripts/archived/st_projects.go
b/backend/core/models/migrationscripts/archived/st_projects.go
index 6646a5c38..6fbcfd5a1 100644
--- a/backend/core/models/migrationscripts/archived/st_projects.go
+++ b/backend/core/models/migrationscripts/archived/st_projects.go
@@ -23,7 +23,6 @@ import (
type StProject struct {
DomainEntity
- Key string `json:"key" gorm:"type:varchar(64)"`
Name string `json:"name" gorm:"type:varchar(255)"`
Qualifier string `json:"qualifier"
gorm:"type:varchar(255)"`
Visibility string `json:"visibility"
gorm:"type:varchar(64)"`
diff --git
a/backend/plugins/sonarqube/models/migrationscripts/archived/sonarqube_issue_code_block.go
b/backend/plugins/sonarqube/models/migrationscripts/archived/sonarqube_issue_code_block.go
index 57aa332ba..cab175c35 100644
---
a/backend/plugins/sonarqube/models/migrationscripts/archived/sonarqube_issue_code_block.go
+++
b/backend/plugins/sonarqube/models/migrationscripts/archived/sonarqube_issue_code_block.go
@@ -24,7 +24,6 @@ type SonarqubeIssueCodeBlock struct {
Id string `gorm:"primaryKey"`
IssueKey string `json:"key" gorm:"index"`
Component string `json:"component" gorm:"index"`
- Project string `json:"project" gorm:"index"`
Msg string `json:"msg" `
StartLine int `json:"startLine" `
EndLine int `json:"endLine" `
diff --git a/backend/plugins/sonarqube/models/sonarqube_issue_code_block.go
b/backend/plugins/sonarqube/models/sonarqube_issue_code_block.go
index 7e5ed3fbb..d16939d3e 100644
--- a/backend/plugins/sonarqube/models/sonarqube_issue_code_block.go
+++ b/backend/plugins/sonarqube/models/sonarqube_issue_code_block.go
@@ -27,7 +27,6 @@ type SonarqubeIssueCodeBlock struct {
Id string `gorm:"primaryKey"`
IssueKey string `json:"key" gorm:"index"`
Component string `json:"component" gorm:"index"`
- Project string `json:"project" gorm:"index"`
Msg string `json:"msg" `
StartLine int `json:"startLine" `
EndLine int `json:"endLine" `
diff --git a/backend/plugins/sonarqube/tasks/hotspots_convertor.go
b/backend/plugins/sonarqube/tasks/hotspots_convertor.go
index 02dbd1d09..065367c05 100644
--- a/backend/plugins/sonarqube/tasks/hotspots_convertor.go
+++ b/backend/plugins/sonarqube/tasks/hotspots_convertor.go
@@ -58,7 +58,6 @@ func ConvertHotspots(taskCtx plugin.SubTaskContext)
errors.Error {
domainHotspot := &securitytesting.StIssue{
DomainEntity: domainlayer.DomainEntity{Id:
issueIdGen.Generate(data.Options.ConnectionId, sonarqubeHotspot.Key)},
BatchId: sonarqubeHotspot.BatchId,
- Key: sonarqubeHotspot.Key,
Component: sonarqubeHotspot.Component,
Project:
projectIdGen.Generate(data.Options.ConnectionId, sonarqubeHotspot.Project),
Line: sonarqubeHotspot.Line,
diff --git a/backend/plugins/sonarqube/tasks/issue_code_blocks_convertor.go
b/backend/plugins/sonarqube/tasks/issue_code_blocks_convertor.go
index 36db485d8..9d92ebea3 100644
--- a/backend/plugins/sonarqube/tasks/issue_code_blocks_convertor.go
+++ b/backend/plugins/sonarqube/tasks/issue_code_blocks_convertor.go
@@ -35,14 +35,17 @@ func ConvertIssueCodeBlocks(taskCtx plugin.SubTaskContext)
errors.Error {
db := taskCtx.GetDal()
rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx,
RAW_ISSUES_TABLE)
- cursor, err := db.Cursor(dal.From(&models.SonarqubeIssueCodeBlock{}),
dal.Where("connection_id = ? and project = ? ",
- data.Options.ConnectionId, data.Options.ProjectKey))
+ cursor, err := db.Cursor(
+ dal.From("_tool_sonarqube_issue_code_blocks icb"),
+ dal.Join("_tool_sonarqube_issues i on i.key = icb.issue_key"),
+ dal.Where("connection_id = ? and project = ?",
data.Options.ConnectionId, data.Options.ProjectKey))
if err != nil {
return err
}
defer cursor.Close()
idGen := didgen.NewDomainIdGenerator(&models.SonarqubeIssueCodeBlock{})
+ issueIdGen := didgen.NewDomainIdGenerator(&models.SonarqubeIssue{})
converter, err := api.NewDataConverter(api.DataConverterArgs{
InputRowType:
reflect.TypeOf(models.SonarqubeIssueCodeBlock{}),
Input: cursor,
@@ -50,16 +53,15 @@ func ConvertIssueCodeBlocks(taskCtx plugin.SubTaskContext)
errors.Error {
Convert: func(inputRow interface{}) ([]interface{},
errors.Error) {
sonarqubeIssueCodeBlock :=
inputRow.(*models.SonarqubeIssueCodeBlock)
domainIssueCodeBlock :=
&securitytesting.StIssueCodeBlock{
- DomainEntity: domainlayer.DomainEntity{Id:
idGen.Generate(data.Options.ConnectionId, sonarqubeIssueCodeBlock.Id)},
- Id: sonarqubeIssueCodeBlock.Id,
- IssueKey: sonarqubeIssueCodeBlock.IssueKey,
- Component: sonarqubeIssueCodeBlock.Component,
- Msg: sonarqubeIssueCodeBlock.Msg,
- Project: sonarqubeIssueCodeBlock.Project,
- StartLine: sonarqubeIssueCodeBlock.StartLine,
- EndLine: sonarqubeIssueCodeBlock.EndLine,
- StartOffset:
sonarqubeIssueCodeBlock.StartOffset,
- EndOffset: sonarqubeIssueCodeBlock.EndOffset,
+ DomainEntity: domainlayer.DomainEntity{Id:
idGen.Generate(data.Options.ConnectionId, sonarqubeIssueCodeBlock.Id)},
+ IssueCodeBlockId: sonarqubeIssueCodeBlock.Id,
+ IssueKey:
issueIdGen.Generate(data.Options.ConnectionId,
sonarqubeIssueCodeBlock.IssueKey),
+ Component:
sonarqubeIssueCodeBlock.Component,
+ Msg: sonarqubeIssueCodeBlock.Msg,
+ StartLine:
sonarqubeIssueCodeBlock.StartLine,
+ EndLine:
sonarqubeIssueCodeBlock.EndLine,
+ StartOffset:
sonarqubeIssueCodeBlock.StartOffset,
+ EndOffset:
sonarqubeIssueCodeBlock.EndOffset,
}
return []interface{}{
diff --git a/backend/plugins/sonarqube/tasks/issues_convertor.go
b/backend/plugins/sonarqube/tasks/issues_convertor.go
index 1df8e094b..7c0c850d5 100644
--- a/backend/plugins/sonarqube/tasks/issues_convertor.go
+++ b/backend/plugins/sonarqube/tasks/issues_convertor.go
@@ -18,6 +18,8 @@ limitations under the License.
package tasks
import (
+ "reflect"
+
"github.com/apache/incubator-devlake/core/dal"
"github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/models/domainlayer"
@@ -26,7 +28,6 @@ import (
"github.com/apache/incubator-devlake/core/plugin"
"github.com/apache/incubator-devlake/helpers/pluginhelper/api"
sonarqubeModels
"github.com/apache/incubator-devlake/plugins/sonarqube/models"
- "reflect"
)
var ConvertIssuesMeta = plugin.SubTaskMeta{
@@ -58,7 +59,6 @@ func ConvertIssues(taskCtx plugin.SubTaskContext)
errors.Error {
domainIssue := &securitytesting.StIssue{
DomainEntity: domainlayer.DomainEntity{Id:
issueIdGen.Generate(data.Options.ConnectionId, sonarqubeIssue.Key)},
BatchId: sonarqubeIssue.BatchId,
- Key: sonarqubeIssue.Key,
Rule: sonarqubeIssue.Rule,
Severity: sonarqubeIssue.Severity,
Component: sonarqubeIssue.Component,
diff --git a/backend/plugins/sonarqube/tasks/issues_extractor.go
b/backend/plugins/sonarqube/tasks/issues_extractor.go
index e8d4eedc8..97e941797 100644
--- a/backend/plugins/sonarqube/tasks/issues_extractor.go
+++ b/backend/plugins/sonarqube/tasks/issues_extractor.go
@@ -82,7 +82,6 @@ func ExtractIssues(taskCtx plugin.SubTaskContext)
errors.Error {
ConnectionId:
data.Options.ConnectionId,
IssueKey:
sonarqubeIssue.Key,
Component:
location.Component,
- Project: body.Project,
Msg: location.Msg,
StartLine:
location.TextRange.StartLine,
EndLine:
location.TextRange.EndLine,
diff --git a/backend/plugins/sonarqube/tasks/projects_convertor.go
b/backend/plugins/sonarqube/tasks/projects_convertor.go
index 9cad73f3f..6e4ff757e 100644
--- a/backend/plugins/sonarqube/tasks/projects_convertor.go
+++ b/backend/plugins/sonarqube/tasks/projects_convertor.go
@@ -18,6 +18,8 @@ limitations under the License.
package tasks
import (
+ "reflect"
+
"github.com/apache/incubator-devlake/core/dal"
"github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/models/domainlayer"
@@ -26,7 +28,6 @@ import (
"github.com/apache/incubator-devlake/core/plugin"
"github.com/apache/incubator-devlake/helpers/pluginhelper/api"
sonarqubeModels
"github.com/apache/incubator-devlake/plugins/sonarqube/models"
- "reflect"
)
var ConvertProjectsMeta = plugin.SubTaskMeta{
@@ -56,7 +57,6 @@ func ConvertProjects(taskCtx plugin.SubTaskContext)
errors.Error {
sonarqubeProject :=
inputRow.(*sonarqubeModels.SonarqubeProject)
domainProject := &securitytesting.StProject{
DomainEntity: domainlayer.DomainEntity{Id:
projectIdGen.Generate(data.Options.ConnectionId, sonarqubeProject.Key)},
- Key: sonarqubeProject.Key,
Name: sonarqubeProject.Name,
Qualifier: sonarqubeProject.Qualifier,
Visibility: sonarqubeProject.Visibility,