You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by wa...@apache.org on 2023/02/08 12:42:46 UTC
[incubator-devlake] branch main updated: feat: sonarqube issue project update (#4361)
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 <zi...@merico.dev>
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,