This is an automated email from the ASF dual-hosted git repository.
klesh 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 14e91035e fix #8452 (#8453)
14e91035e is described below
commit 14e91035e69aa844752da1579f79496d51e3367a
Author: NaRro <[email protected]>
AuthorDate: Tue May 27 13:35:55 2025 +0000
fix #8452 (#8453)
* fix: increase cq_issuescomponent length to text
* refactor(codequality): extend field size for CQ and SonarQube
- Increase CqFileMetrics.FileName to varchar(2000)
- Increase CqProject.Name to varchar(2000)
- Increase CqFileMetrics.Id to varchar(3000)
- Increase SonarqubeFileMetrics.FileMetricsKey to varchar(3000)
- Increase SonarqubeFileMetrics.FileName to varchar(2000)
These changes accommodate longer file names and identifiers in modern
projects.
* feat(sonarqube): hash file metrics key for MySQL compatibility
- Hash the file metrics key to make it suitable as a MySQL index
- Add a new function `hashString` to generate hashed strings
- Update the `ExtractFilemetrics` function to use the hashed key
---------
Co-authored-by: abeizn <[email protected]>
---
.../domainlayer/codequality/cq_file_metrics.go | 2 +-
.../models/domainlayer/codequality/cq_issues.go | 2 +-
.../models/domainlayer/codequality/cq_projects.go | 2 +-
...20240919_increase_cq_issue_component_length.go} | 29 ++++++++-----------
.../20250527_extend_field_size_for_cq.go} | 33 ++++++++++------------
backend/core/models/migrationscripts/register.go | 2 ++
.../_tool_sonarqube_filemetrics.csv | 12 ++++----
.../sonarqube/e2e/snapshot_tables/filemetrics.csv | 12 ++++----
.../20250527_extend_field_size.go} | 30 ++++++++------------
.../sonarqube/models/migrationscripts/register.go | 1 +
.../sonarqube/models/sonarqube_file_metrics.go | 2 +-
.../tasks/filemetrics_additional_extractor.go | 3 +-
.../sonarqube/tasks/filemetrics_extractor.go | 2 +-
backend/plugins/sonarqube/tasks/shared.go | 7 +++++
14 files changed, 67 insertions(+), 72 deletions(-)
diff --git a/backend/core/models/domainlayer/codequality/cq_file_metrics.go
b/backend/core/models/domainlayer/codequality/cq_file_metrics.go
index c83a79813..abc03b85f 100644
--- a/backend/core/models/domainlayer/codequality/cq_file_metrics.go
+++ b/backend/core/models/domainlayer/codequality/cq_file_metrics.go
@@ -24,7 +24,7 @@ import (
type CqFileMetrics struct {
domainlayer.DomainEntity
ProjectKey string
`gorm:"index;type:varchar(255)"` //domain project key
- FileName string `gorm:"type:varchar(255)"`
+ FileName string `gorm:"type:varchar(2000)"`
FilePath string
FileLanguage string `gorm:"type:varchar(20)"`
CodeSmells int
diff --git a/backend/core/models/domainlayer/codequality/cq_issues.go
b/backend/core/models/domainlayer/codequality/cq_issues.go
index 243e675fa..1e9ea7134 100644
--- a/backend/core/models/domainlayer/codequality/cq_issues.go
+++ b/backend/core/models/domainlayer/codequality/cq_issues.go
@@ -26,7 +26,7 @@ type CqIssue struct {
domainlayer.DomainEntity
Rule string `gorm:"type:varchar(255)"`
Severity string `gorm:"type:varchar(100)"`
- Component string `gorm:"type:varchar(255)"`
+ Component string
ProjectKey string `gorm:"index;type:varchar(100)"`
//domain project key
Line int
Status string `gorm:"type:varchar(20)"`
diff --git a/backend/core/models/domainlayer/codequality/cq_projects.go
b/backend/core/models/domainlayer/codequality/cq_projects.go
index fe80dd1bb..d0f0be4d3 100644
--- a/backend/core/models/domainlayer/codequality/cq_projects.go
+++ b/backend/core/models/domainlayer/codequality/cq_projects.go
@@ -27,7 +27,7 @@ var _ plugin.Scope = (*CqProject)(nil)
type CqProject struct {
domainlayer.DomainEntityExtended
- Name string `gorm:"type:varchar(255)"`
+ Name string `gorm:"type:varchar(2000)"`
Qualifier string `gorm:"type:varchar(255)"`
Visibility string `gorm:"type:varchar(64)"`
LastAnalysisDate *common.Iso8601Time
diff --git a/backend/core/models/domainlayer/codequality/cq_projects.go
b/backend/core/models/migrationscripts/20240919_increase_cq_issue_component_length.go
similarity index 56%
copy from backend/core/models/domainlayer/codequality/cq_projects.go
copy to
backend/core/models/migrationscripts/20240919_increase_cq_issue_component_length.go
index fe80dd1bb..aa1483e06 100644
--- a/backend/core/models/domainlayer/codequality/cq_projects.go
+++
b/backend/core/models/migrationscripts/20240919_increase_cq_issue_component_length.go
@@ -15,33 +15,26 @@ See the License for the specific language governing
permissions and
limitations under the License.
*/
-package codequality
+package migrationscripts
import (
- "github.com/apache/incubator-devlake/core/models/common"
- "github.com/apache/incubator-devlake/core/models/domainlayer"
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-var _ plugin.Scope = (*CqProject)(nil)
+var _ plugin.MigrationScript = (*increaseCqIssueComponentLength)(nil)
-type CqProject struct {
- domainlayer.DomainEntityExtended
- Name string `gorm:"type:varchar(255)"`
- Qualifier string `gorm:"type:varchar(255)"`
- Visibility string `gorm:"type:varchar(64)"`
- LastAnalysisDate *common.Iso8601Time
- CommitSha string `gorm:"type:varchar(128)"`
-}
+type increaseCqIssueComponentLength struct{}
-func (CqProject) TableName() string {
- return "cq_projects"
+func (script *increaseCqIssueComponentLength) Up(basicRes context.BasicRes)
errors.Error {
+ return basicRes.GetDal().ModifyColumnType("cq_issues", "component",
"text")
}
-func (s *CqProject) ScopeId() string {
- return s.Id
+func (*increaseCqIssueComponentLength) Version() uint64 {
+ return 20240919160242
}
-func (s *CqProject) ScopeName() string {
- return s.Name
+func (*increaseCqIssueComponentLength) Name() string {
+ return "increase cq_issues.component length to text"
}
diff --git a/backend/core/models/domainlayer/codequality/cq_projects.go
b/backend/core/models/migrationscripts/20250527_extend_field_size_for_cq.go
similarity index 55%
copy from backend/core/models/domainlayer/codequality/cq_projects.go
copy to
backend/core/models/migrationscripts/20250527_extend_field_size_for_cq.go
index fe80dd1bb..e1c0328da 100644
--- a/backend/core/models/domainlayer/codequality/cq_projects.go
+++ b/backend/core/models/migrationscripts/20250527_extend_field_size_for_cq.go
@@ -15,33 +15,30 @@ See the License for the specific language governing
permissions and
limitations under the License.
*/
-package codequality
+package migrationscripts
import (
- "github.com/apache/incubator-devlake/core/models/common"
- "github.com/apache/incubator-devlake/core/models/domainlayer"
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-var _ plugin.Scope = (*CqProject)(nil)
+var _ plugin.MigrationScript = (*extendFieldSizeForCq)(nil)
-type CqProject struct {
- domainlayer.DomainEntityExtended
- Name string `gorm:"type:varchar(255)"`
- Qualifier string `gorm:"type:varchar(255)"`
- Visibility string `gorm:"type:varchar(64)"`
- LastAnalysisDate *common.Iso8601Time
- CommitSha string `gorm:"type:varchar(128)"`
-}
+type extendFieldSizeForCq struct{}
-func (CqProject) TableName() string {
- return "cq_projects"
+func (script *extendFieldSizeForCq) Up(basicRes context.BasicRes) errors.Error
{
+ err := basicRes.GetDal().ModifyColumnType("cq_projects", "name",
"varchar(2000)")
+ if err != nil {
+ return err
+ }
+ return basicRes.GetDal().ModifyColumnType("cq_file_metrics",
"file_name", "varchar(2000)")
}
-func (s *CqProject) ScopeId() string {
- return s.Id
+func (*extendFieldSizeForCq) Version() uint64 {
+ return 20250527000000
}
-func (s *CqProject) ScopeName() string {
- return s.Name
+func (*extendFieldSizeForCq) Name() string {
+ return "extend field size for cq"
}
diff --git a/backend/core/models/migrationscripts/register.go
b/backend/core/models/migrationscripts/register.go
index 4886f66a4..fd90c8fd2 100644
--- a/backend/core/models/migrationscripts/register.go
+++ b/backend/core/models/migrationscripts/register.go
@@ -136,5 +136,7 @@ func All() []plugin.MigrationScript {
new(addCqIssueImpacts),
new(addDueDateToIssues),
new(createQaTables),
+ new(increaseCqIssueComponentLength),
+ new(extendFieldSizeForCq),
}
}
diff --git
a/backend/plugins/sonarqube/e2e/snapshot_tables/_tool_sonarqube_filemetrics.csv
b/backend/plugins/sonarqube/e2e/snapshot_tables/_tool_sonarqube_filemetrics.csv
index f38bf08e6..767d7e7bf 100644
---
a/backend/plugins/sonarqube/e2e/snapshot_tables/_tool_sonarqube_filemetrics.csv
+++
b/backend/plugins/sonarqube/e2e/snapshot_tables/_tool_sonarqube_filemetrics.csv
@@ -1,7 +1,7 @@
connection_id,file_metrics_key,project_key,file_name,file_path,file_language,code_smells,sqale_index,sqale_rating,bugs,reliability_rating,vulnerabilities,security_rating,security_hotspots,security_hotspots_reviewed,security_review_rating,ncloc,coverage,uncovered_lines,lines_to_cover,duplicated_lines_density,duplicated_blocks,duplicated_files,duplicated_lines,effort_to_reach_maintainability_rating_a,complexity,cognitive_complexity,num_of_lines
-2,testDevLake:backend/plugins/gitlab/e2e/issues_test.go,testDevLake,issues_test.go,backend/plugins/gitlab/e2e/issues_test.go,go,7,7,1,7,A,7,A,7,0,A,117,0,18,18,31.299999237060547,1,1,46,7,1,7,147
-2,testDevLake:backend/plugins/gitlab/e2e/mr_commits_test.go,testDevLake,mr_commits_test.go,backend/plugins/gitlab/e2e/mr_commits_test.go,go,7,7,1,7,A,7,A,7,0,A,139,0,24,24,30.299999237060547,2,1,53,7,1,7,175
-2,testDevLake:backend/plugins/gitlab/e2e/mr_test.go,testDevLake,mr_test.go,backend/plugins/gitlab/e2e/mr_test.go,go,7,7,1,7,A,7,A,7,0,A,103,0,15,15,36.400001525878906,1,1,48,7,1,7,132
-2,testDevLake:backend/plugins/gitlab/e2e/pipelines_test.go,testDevLake,pipelines_test.go,backend/plugins/gitlab/e2e/pipelines_test.go,go,7,7,1,7,A,7,A,7,0,A,64,0,15,15,0,7,7,7,7,1,7,93
-2,testDevLake:backend/plugins/jenkins/impl/impl.go,testDevLake,impl.go,backend/plugins/jenkins/impl/impl.go,go,7,7,1,7,A,7,A,7,0,A,234,0,92,92,0,7,7,7,7,39,24,289
-2,testDevLake:backend/plugins/jenkins/tasks/api_client.go,testDevLake,api_client.go,backend/plugins/jenkins/tasks/api_client.go,go,5,7,1,6,A,7,A,7,0,A,25,0,8,8,0,7,7,7,7,3,2,49
+2,07653f44dac701abb21be5fd106928a9e426593c,testDevLake,pipelines_test.go,backend/plugins/gitlab/e2e/pipelines_test.go,go,7,7,1,7,A,7,A,7,0,A,64,0,15,15,0,7,7,7,7,1,7,93
+2,a571978106a1ad42ac884f404e5c0845d2ecc277,testDevLake,mr_commits_test.go,backend/plugins/gitlab/e2e/mr_commits_test.go,go,7,7,1,7,A,7,A,7,0,A,139,0,24,24,30.299999237060547,2,1,53,7,1,7,175
+2,cd89d4f7457a22dd0c507d4a3d9288bb47f69d31,testDevLake,issues_test.go,backend/plugins/gitlab/e2e/issues_test.go,go,7,7,1,7,A,7,A,7,0,A,117,0,18,18,31.299999237060547,1,1,46,7,1,7,147
+2,d1db10573d322ac2fc8e3c8d50eb94c685666c87,testDevLake,impl.go,backend/plugins/jenkins/impl/impl.go,go,7,7,1,7,A,7,A,7,0,A,234,0,92,92,0,7,7,7,7,39,24,289
+2,e06434b2e803e07f19e21de5b17f25c0ac969e70,testDevLake,mr_test.go,backend/plugins/gitlab/e2e/mr_test.go,go,7,7,1,7,A,7,A,7,0,A,103,0,15,15,36.400001525878906,1,1,48,7,1,7,132
+2,f222da572ca48538456c263f3a6ff15c3c95438f,testDevLake,api_client.go,backend/plugins/jenkins/tasks/api_client.go,go,5,7,1,6,A,7,A,7,0,A,25,0,8,8,0,7,7,7,7,3,2,49
diff --git a/backend/plugins/sonarqube/e2e/snapshot_tables/filemetrics.csv
b/backend/plugins/sonarqube/e2e/snapshot_tables/filemetrics.csv
index 520630ce5..dc9b8c1d6 100644
--- a/backend/plugins/sonarqube/e2e/snapshot_tables/filemetrics.csv
+++ b/backend/plugins/sonarqube/e2e/snapshot_tables/filemetrics.csv
@@ -1,7 +1,7 @@
id,project_key,file_name,file_path,file_language,code_smells,sqale_index,sqale_rating,bugs,reliability_rating,vulnerabilities,security_rating,security_hotspots,security_hotspots_reviewed,security_review_rating,ncloc,uncovered_lines,coverage,lines_to_cover,duplicated_lines_density,duplicated_blocks,duplicated_files,duplicated_lines,effort_to_reach_maintainability_rating_a,complexity,cognitive_complexity,num_of_lines
-sonarqube:SonarqubeFileMetrics:2:testDevLake:backend/plugins/gitlab/e2e/issues_test.go,sonarqube:SonarqubeProject:2:testDevLake,issues_test.go,backend/plugins/gitlab/e2e/issues_test.go,go,7,7,1,7,A,7,A,7,0,A,117,18,0,18,31.299999237060547,1,1,46,7,1,7,147
-sonarqube:SonarqubeFileMetrics:2:testDevLake:backend/plugins/gitlab/e2e/mr_commits_test.go,sonarqube:SonarqubeProject:2:testDevLake,mr_commits_test.go,backend/plugins/gitlab/e2e/mr_commits_test.go,go,7,7,1,7,A,7,A,7,0,A,139,24,0,24,30.299999237060547,2,1,53,7,1,7,175
-sonarqube:SonarqubeFileMetrics:2:testDevLake:backend/plugins/gitlab/e2e/mr_test.go,sonarqube:SonarqubeProject:2:testDevLake,mr_test.go,backend/plugins/gitlab/e2e/mr_test.go,go,7,7,1,7,A,7,A,7,0,A,103,15,0,15,36.400001525878906,1,1,48,7,1,7,132
-sonarqube:SonarqubeFileMetrics:2:testDevLake:backend/plugins/gitlab/e2e/pipelines_test.go,sonarqube:SonarqubeProject:2:testDevLake,pipelines_test.go,backend/plugins/gitlab/e2e/pipelines_test.go,go,7,7,1,7,A,7,A,7,0,A,64,15,0,15,0,7,7,7,7,1,7,93
-sonarqube:SonarqubeFileMetrics:2:testDevLake:backend/plugins/jenkins/impl/impl.go,sonarqube:SonarqubeProject:2:testDevLake,impl.go,backend/plugins/jenkins/impl/impl.go,go,7,7,1,7,A,7,A,7,0,A,234,92,0,92,0,7,7,7,7,39,24,289
-sonarqube:SonarqubeFileMetrics:2:testDevLake:backend/plugins/jenkins/tasks/api_client.go,sonarqube:SonarqubeProject:2:testDevLake,api_client.go,backend/plugins/jenkins/tasks/api_client.go,go,5,7,1,6,A,7,A,7,0,A,25,8,0,8,0,7,7,7,7,3,2,49
+sonarqube:SonarqubeFileMetrics:2:07653f44dac701abb21be5fd106928a9e426593c,sonarqube:SonarqubeProject:2:testDevLake,pipelines_test.go,backend/plugins/gitlab/e2e/pipelines_test.go,go,7,7,1,7,A,7,A,7,0,A,64,15,0,15,0,7,7,7,7,1,7,93
+sonarqube:SonarqubeFileMetrics:2:a571978106a1ad42ac884f404e5c0845d2ecc277,sonarqube:SonarqubeProject:2:testDevLake,mr_commits_test.go,backend/plugins/gitlab/e2e/mr_commits_test.go,go,7,7,1,7,A,7,A,7,0,A,139,24,0,24,30.299999237060547,2,1,53,7,1,7,175
+sonarqube:SonarqubeFileMetrics:2:cd89d4f7457a22dd0c507d4a3d9288bb47f69d31,sonarqube:SonarqubeProject:2:testDevLake,issues_test.go,backend/plugins/gitlab/e2e/issues_test.go,go,7,7,1,7,A,7,A,7,0,A,117,18,0,18,31.299999237060547,1,1,46,7,1,7,147
+sonarqube:SonarqubeFileMetrics:2:d1db10573d322ac2fc8e3c8d50eb94c685666c87,sonarqube:SonarqubeProject:2:testDevLake,impl.go,backend/plugins/jenkins/impl/impl.go,go,7,7,1,7,A,7,A,7,0,A,234,92,0,92,0,7,7,7,7,39,24,289
+sonarqube:SonarqubeFileMetrics:2:e06434b2e803e07f19e21de5b17f25c0ac969e70,sonarqube:SonarqubeProject:2:testDevLake,mr_test.go,backend/plugins/gitlab/e2e/mr_test.go,go,7,7,1,7,A,7,A,7,0,A,103,15,0,15,36.400001525878906,1,1,48,7,1,7,132
+sonarqube:SonarqubeFileMetrics:2:f222da572ca48538456c263f3a6ff15c3c95438f,sonarqube:SonarqubeProject:2:testDevLake,api_client.go,backend/plugins/jenkins/tasks/api_client.go,go,5,7,1,6,A,7,A,7,0,A,25,8,0,8,0,7,7,7,7,3,2,49
diff --git a/backend/core/models/domainlayer/codequality/cq_projects.go
b/backend/plugins/sonarqube/models/migrationscripts/20250527_extend_field_size.go
similarity index 56%
copy from backend/core/models/domainlayer/codequality/cq_projects.go
copy to
backend/plugins/sonarqube/models/migrationscripts/20250527_extend_field_size.go
index fe80dd1bb..dcb6b872c 100644
--- a/backend/core/models/domainlayer/codequality/cq_projects.go
+++
b/backend/plugins/sonarqube/models/migrationscripts/20250527_extend_field_size.go
@@ -15,33 +15,27 @@ See the License for the specific language governing
permissions and
limitations under the License.
*/
-package codequality
+package migrationscripts
import (
- "github.com/apache/incubator-devlake/core/models/common"
- "github.com/apache/incubator-devlake/core/models/domainlayer"
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-var _ plugin.Scope = (*CqProject)(nil)
+var _ plugin.MigrationScript = (*extendSonarqubeFieldSize)(nil)
-type CqProject struct {
- domainlayer.DomainEntityExtended
- Name string `gorm:"type:varchar(255)"`
- Qualifier string `gorm:"type:varchar(255)"`
- Visibility string `gorm:"type:varchar(64)"`
- LastAnalysisDate *common.Iso8601Time
- CommitSha string `gorm:"type:varchar(128)"`
-}
+type extendSonarqubeFieldSize struct{}
-func (CqProject) TableName() string {
- return "cq_projects"
+func (script *extendSonarqubeFieldSize) Up(basicRes context.BasicRes)
errors.Error {
+ db := basicRes.GetDal()
+ return db.ModifyColumnType("_tool_sonarqube_file_metrics", "file_name",
"varchar(2000)")
}
-func (s *CqProject) ScopeId() string {
- return s.Id
+func (*extendSonarqubeFieldSize) Version() uint64 {
+ return 20250527000000
}
-func (s *CqProject) ScopeName() string {
- return s.Name
+func (*extendSonarqubeFieldSize) Name() string {
+ return "extend field size for sonarqube file metrics"
}
diff --git a/backend/plugins/sonarqube/models/migrationscripts/register.go
b/backend/plugins/sonarqube/models/migrationscripts/register.go
index 849f11248..7c48de842 100644
--- a/backend/plugins/sonarqube/models/migrationscripts/register.go
+++ b/backend/plugins/sonarqube/models/migrationscripts/register.go
@@ -38,5 +38,6 @@ func All() []plugin.MigrationScript {
new(increaseProjectKeyLength),
new(addOrgToConn),
new(addIssueImpacts),
+ new(extendSonarqubeFieldSize),
}
}
diff --git a/backend/plugins/sonarqube/models/sonarqube_file_metrics.go
b/backend/plugins/sonarqube/models/sonarqube_file_metrics.go
index a7acef9c1..aa03d5bf8 100644
--- a/backend/plugins/sonarqube/models/sonarqube_file_metrics.go
+++ b/backend/plugins/sonarqube/models/sonarqube_file_metrics.go
@@ -25,7 +25,7 @@ type SonarqubeFileMetrics struct {
ConnectionId uint64 `gorm:"primaryKey"`
FileMetricsKey string `gorm:"primaryKey;type:varchar(500)"`
ProjectKey string `gorm:"index"`
- FileName string
+ FileName string `gorm:"type:varchar(2000)"`
FilePath string
FileLanguage string
CodeSmells int
diff --git
a/backend/plugins/sonarqube/tasks/filemetrics_additional_extractor.go
b/backend/plugins/sonarqube/tasks/filemetrics_additional_extractor.go
index cb3036c66..42c1b8867 100644
--- a/backend/plugins/sonarqube/tasks/filemetrics_additional_extractor.go
+++ b/backend/plugins/sonarqube/tasks/filemetrics_additional_extractor.go
@@ -19,6 +19,7 @@ package tasks
import (
"encoding/json"
+
"github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
helper "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
@@ -41,7 +42,7 @@ func ExtractAdditionalFileMetrics(taskCtx
plugin.SubTaskContext) errors.Error {
}
fileMetrics := &models.SonarqubeAdditionalFileMetrics{
ConnectionId: data.Options.ConnectionId,
- FileMetricsKey: body.Key,
+ FileMetricsKey: hashString(body.Key),
}
err = setAdditionalMetrics(fileMetrics, body.Measures)
return []interface{}{fileMetrics}, err
diff --git a/backend/plugins/sonarqube/tasks/filemetrics_extractor.go
b/backend/plugins/sonarqube/tasks/filemetrics_extractor.go
index a107d2283..24c1f7fef 100644
--- a/backend/plugins/sonarqube/tasks/filemetrics_extractor.go
+++ b/backend/plugins/sonarqube/tasks/filemetrics_extractor.go
@@ -41,7 +41,7 @@ func ExtractFilemetrics(taskCtx plugin.SubTaskContext)
errors.Error {
}
fileMetrics := &models.SonarqubeFileMetrics{
ConnectionId: data.Options.ConnectionId,
- FileMetricsKey: body.Key,
+ FileMetricsKey: hashString(body.Key), // hash
the key to make it suitable as mysql index
FileName: body.Name,
FilePath: body.Path,
FileLanguage: body.Language,
diff --git a/backend/plugins/sonarqube/tasks/shared.go
b/backend/plugins/sonarqube/tasks/shared.go
index 2ac13eeb9..99c22613b 100644
--- a/backend/plugins/sonarqube/tasks/shared.go
+++ b/backend/plugins/sonarqube/tasks/shared.go
@@ -18,6 +18,7 @@ limitations under the License.
package tasks
import (
+ "crypto/sha1"
"encoding/hex"
"fmt"
"hash"
@@ -78,6 +79,12 @@ func generateId(hashCodeBlock hash.Hash, entity
*models.SonarqubeIssueCodeBlock)
entity.Id = hex.EncodeToString(hashCodeBlock.Sum(nil))
}
+func hashString(input string) string {
+ h := sha1.New()
+ h.Write([]byte(input))
+ return hex.EncodeToString(h.Sum(nil))
+}
+
func convertTimeToMinutes(timeStr string) int {
days := 0
hours := 0