This is an automated email from the ASF dual-hosted git repository.
lynwee 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 7e97e431a Fix a couple of "Data too long" errors from sonarqube, jira,
etc (#7885)
7e97e431a is described below
commit 7e97e431a33f7f239ae1024aa73a2995d73d77d7
Author: Klesh Wong <[email protected]>
AuthorDate: Wed Aug 14 20:23:05 2024 +0800
Fix a couple of "Data too long" errors from sonarqube, jira, etc (#7885)
* refactor: remove extraction logic from github graphql collector
* fix: pull requests not being updated
* refactor: update github job extractor for single record structure
* refactor: update github issue extractor to extract single record
* refactor: update github deployment extractor to extract single records
* refactor: update github account/release extractor to adopt single record
extraction
* docs: add comments
* fix: github issues not being updated
* fix: gitub deployment unit test
* fix: change jira issue component field to text type
* fix: column type should not be parameterized
* fix: #7852 sonarqube issues component field data too long
* fix: change issue.components to text to avoid data too long error
* docs: fix jira issues component tag
* fix: change bitbucket issue components field to text
* fix: change gitee issue components field to text
* fix: change github issue components field to text
* fix: change gitlab issue components field to text
* fix: #7715 Data too long for column 'project_key'
* fix(framework): update trigger api's request body schema (#7888)
* fix(framework): update trigger api's request body schema
* fix(framework): fix test errors
* fix(framework): fix test errors
* test(jira): add e2e test for custom account field in issues (#7894)
* fix: github graphql collectors are not refetching data in incremental
mode (#7878)
* refactor: remove extraction logic from github graphql collector
* fix: pull requests not being updated
* refactor: update github job extractor for single record structure
* refactor: update github issue extractor to extract single record
* refactor: update github deployment extractor to extract single records
* refactor: update github account/release extractor to adopt single record
extraction
* docs: add comments
* fix: github issues not being updated
* fix: gitub deployment unit test
* fix: github graphql issue collector should order records by CREATED_AT to
avoid data missing
* fix: linting
---------
Co-authored-by: Lynwee <[email protected]>
---
backend/core/dal/dal.go | 2 ++
.../models/domainlayer/codequality/cq_projects.go | 2 +-
backend/core/models/domainlayer/ticket/issue.go | 2 +-
.../20240813_change_issue_component_type.go} | 23 +++++++++++++++-------
.../20240813_increase_project_key_length.go} | 23 +++++++++++++++-------
backend/impls/dalgorm/dalgorm.go | 18 +++++++++++++++++
backend/plugins/bitbucket/models/issue.go | 2 +-
.../20240813_change_issue_component_type.go} | 23 +++++++++++++++-------
.../bitbucket/models/migrationscripts/register.go | 1 +
backend/plugins/gitee/models/issue.go | 2 +-
....go => 20240813_change_issue_component_type.go} | 23 +++++++++++++++-------
.../gitee/models/migrationscripts/register.go | 1 +
backend/plugins/github/models/issue.go | 2 +-
.../20240813_change_issue_component_type.go} | 23 +++++++++++++++-------
.../github/models/migrationscripts/register.go | 1 +
backend/plugins/gitlab/models/issue.go | 2 +-
.../20240813_change_issue_component_type.go} | 23 +++++++++++++++-------
.../gitlab/models/migrationscripts/register.go | 1 +
backend/plugins/jira/models/issue.go | 2 +-
.../20240809_change_issue_component_type.go} | 23 +++++++++++++++-------
.../jira/models/migrationscripts/register.go | 1 +
backend/plugins/sonarqube/api/blueprint_v200.go | 2 +-
.../20240813_change_issue_component_type.go} | 23 +++++++++++++++-------
.../20240813_increase_project_key_length.go} | 23 +++++++++++++++-------
.../sonarqube/models/migrationscripts/register.go | 2 ++
.../plugins/sonarqube/models/sonarqube_issue.go | 2 +-
.../plugins/sonarqube/models/sonarqube_project.go | 2 +-
.../plugins/sonarqube/tasks/projects_convertor.go | 12 +++++------
28 files changed, 187 insertions(+), 79 deletions(-)
diff --git a/backend/core/dal/dal.go b/backend/core/dal/dal.go
index 48cc36010..d5f4fbfea 100644
--- a/backend/core/dal/dal.go
+++ b/backend/core/dal/dal.go
@@ -167,6 +167,8 @@ type Dal interface {
GetPrimaryKeyFields(t reflect.Type) []reflect.StructField
// RenameColumn renames column name for specified table
RenameColumn(table, oldColumnName, newColumnName string) errors.Error
+ // ModifyColumnType modifies column type
+ ModifyColumnType(table, columnName, columnType string) errors.Error
// DropIndexes drops all specified tables
DropIndexes(table string, indexes ...string) errors.Error
// Dialect returns the dialect of current database
diff --git a/backend/core/models/domainlayer/codequality/cq_projects.go
b/backend/core/models/domainlayer/codequality/cq_projects.go
index 5ba5d11b2..fe80dd1bb 100644
--- a/backend/core/models/domainlayer/codequality/cq_projects.go
+++ b/backend/core/models/domainlayer/codequality/cq_projects.go
@@ -26,7 +26,7 @@ import (
var _ plugin.Scope = (*CqProject)(nil)
type CqProject struct {
- domainlayer.DomainEntity
+ domainlayer.DomainEntityExtended
Name string `gorm:"type:varchar(255)"`
Qualifier string `gorm:"type:varchar(255)"`
Visibility string `gorm:"type:varchar(64)"`
diff --git a/backend/core/models/domainlayer/ticket/issue.go
b/backend/core/models/domainlayer/ticket/issue.go
index 278b2f825..f7d5cc562 100644
--- a/backend/core/models/domainlayer/ticket/issue.go
+++ b/backend/core/models/domainlayer/ticket/issue.go
@@ -51,7 +51,7 @@ type Issue struct {
Priority string `gorm:"type:varchar(255)"`
Severity string `gorm:"type:varchar(255)"`
Urgency string `gorm:"type:varchar(255)"`
- Component string `gorm:"type:varchar(255)"`
+ Component string `gorm:"type:text"`
OriginalProject string `gorm:"type:varchar(255)"`
IsSubtask bool
}
diff --git a/backend/plugins/gitee/models/migrationscripts/register.go
b/backend/core/models/migrationscripts/20240813_change_issue_component_type.go
similarity index 60%
copy from backend/plugins/gitee/models/migrationscripts/register.go
copy to
backend/core/models/migrationscripts/20240813_change_issue_component_type.go
index 5e5ec1388..8f7a2f2fe 100644
--- a/backend/plugins/gitee/models/migrationscripts/register.go
+++
b/backend/core/models/migrationscripts/20240813_change_issue_component_type.go
@@ -18,14 +18,23 @@ limitations under the License.
package migrationscripts
import (
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-// All return all the migration scripts
-func All() []plugin.MigrationScript {
- return []plugin.MigrationScript{
- new(addInitTables),
- new(addGiteeCommitAuthorInfo),
- new(addScopeConfigIdToRepo),
- }
+var _ plugin.MigrationScript = (*changeIssueComponentType)(nil)
+
+type changeIssueComponentType struct{}
+
+func (script *changeIssueComponentType) Up(basicRes context.BasicRes)
errors.Error {
+ return basicRes.GetDal().ModifyColumnType("issues", "components",
"text")
+}
+
+func (*changeIssueComponentType) Version() uint64 {
+ return 20240813153901
+}
+
+func (*changeIssueComponentType) Name() string {
+ return "change issues.components type to text"
}
diff --git a/backend/plugins/gitee/models/migrationscripts/register.go
b/backend/core/models/migrationscripts/20240813_increase_project_key_length.go
similarity index 59%
copy from backend/plugins/gitee/models/migrationscripts/register.go
copy to
backend/core/models/migrationscripts/20240813_increase_project_key_length.go
index 5e5ec1388..609b3d736 100644
--- a/backend/plugins/gitee/models/migrationscripts/register.go
+++
b/backend/core/models/migrationscripts/20240813_increase_project_key_length.go
@@ -18,14 +18,23 @@ limitations under the License.
package migrationscripts
import (
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-// All return all the migration scripts
-func All() []plugin.MigrationScript {
- return []plugin.MigrationScript{
- new(addInitTables),
- new(addGiteeCommitAuthorInfo),
- new(addScopeConfigIdToRepo),
- }
+var _ plugin.MigrationScript = (*increaseProjectKeyLength)(nil)
+
+type increaseProjectKeyLength struct{}
+
+func (script *increaseProjectKeyLength) Up(basicRes context.BasicRes)
errors.Error {
+ return basicRes.GetDal().ModifyColumnType("cq_projects", "project_key",
"varchar(500)")
+}
+
+func (*increaseProjectKeyLength) Version() uint64 {
+ return 20240813160242
+}
+
+func (*increaseProjectKeyLength) Name() string {
+ return "increase cq_projects.project_key length to 500"
}
diff --git a/backend/impls/dalgorm/dalgorm.go b/backend/impls/dalgorm/dalgorm.go
index ba3bcdb61..59e6b115f 100644
--- a/backend/impls/dalgorm/dalgorm.go
+++ b/backend/impls/dalgorm/dalgorm.go
@@ -372,6 +372,24 @@ func (d *Dalgorm) RenameColumn(table, oldColumnName,
newColumnName string) error
)
}
+// ModifyColumnType modify column type
+func (d *Dalgorm) ModifyColumnType(table, columnName, columnType string)
errors.Error {
+ // work around the error `cached plan must not change result type` for
postgres
+ // wrap in func(){} to make the linter happy
+ defer func() {
+ _ = d.Exec("SELECT * FROM ? LIMIT 1", clause.Table{Name: table})
+ }()
+ query := "ALTER TABLE ? MODIFY COLUMN ? %s"
+ if d.db.Dialector.Name() == "postgres" {
+ query = "ALTER TABLE ? ALTER COLUMN ? TYPE %s"
+ }
+ return d.Exec(
+ fmt.Sprintf(query, columnType),
+ clause.Table{Name: table},
+ clause.Column{Name: columnName},
+ )
+}
+
// AllTables returns all tables in the database
func (d *Dalgorm) AllTables() ([]string, errors.Error) {
var tableSql string
diff --git a/backend/plugins/bitbucket/models/issue.go
b/backend/plugins/bitbucket/models/issue.go
index c4f0d20fb..c24fbf1e8 100644
--- a/backend/plugins/bitbucket/models/issue.go
+++ b/backend/plugins/bitbucket/models/issue.go
@@ -45,7 +45,7 @@ type BitbucketIssue struct {
BitbucketCreatedAt time.Time
BitbucketUpdatedAt time.Time `gorm:"index"`
Severity string `gorm:"type:varchar(255)"`
- Component string `gorm:"type:varchar(255)"`
+ Component string `gorm:"type:text"`
common.NoPKModel
}
diff --git a/backend/plugins/gitee/models/migrationscripts/register.go
b/backend/plugins/bitbucket/models/migrationscripts/20240813_change_issue_component_type.go
similarity index 59%
copy from backend/plugins/gitee/models/migrationscripts/register.go
copy to
backend/plugins/bitbucket/models/migrationscripts/20240813_change_issue_component_type.go
index 5e5ec1388..0499d0ac2 100644
--- a/backend/plugins/gitee/models/migrationscripts/register.go
+++
b/backend/plugins/bitbucket/models/migrationscripts/20240813_change_issue_component_type.go
@@ -18,14 +18,23 @@ limitations under the License.
package migrationscripts
import (
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-// All return all the migration scripts
-func All() []plugin.MigrationScript {
- return []plugin.MigrationScript{
- new(addInitTables),
- new(addGiteeCommitAuthorInfo),
- new(addScopeConfigIdToRepo),
- }
+var _ plugin.MigrationScript = (*changeIssueComponentType)(nil)
+
+type changeIssueComponentType struct{}
+
+func (script *changeIssueComponentType) Up(basicRes context.BasicRes)
errors.Error {
+ return basicRes.GetDal().ModifyColumnType("_tool_bitbucket_issues",
"components", "text")
+}
+
+func (*changeIssueComponentType) Version() uint64 {
+ return 20240813154323
+}
+
+func (*changeIssueComponentType) Name() string {
+ return "change _tool_bitbucket_issues.components type to text"
}
diff --git a/backend/plugins/bitbucket/models/migrationscripts/register.go
b/backend/plugins/bitbucket/models/migrationscripts/register.go
index a197be735..105af2364 100644
--- a/backend/plugins/bitbucket/models/migrationscripts/register.go
+++ b/backend/plugins/bitbucket/models/migrationscripts/register.go
@@ -41,5 +41,6 @@ func All() []plugin.MigrationScript {
new(addBuildNumberToPipelines),
new(reCreatBitBucketPipelineSteps),
new(addMergedByToPr),
+ new(changeIssueComponentType),
}
}
diff --git a/backend/plugins/gitee/models/issue.go
b/backend/plugins/gitee/models/issue.go
index 0753f46f1..60211dcf9 100644
--- a/backend/plugins/gitee/models/issue.go
+++ b/backend/plugins/gitee/models/issue.go
@@ -44,7 +44,7 @@ type GiteeIssue struct {
GiteeCreatedAt time.Time
GiteeUpdatedAt time.Time `gorm:"index"`
Severity string `gorm:"type:varchar(255)"`
- Component string `gorm:"type:varchar(255)"`
+ Component string `gorm:"type:text"`
common.NoPKModel
}
diff --git a/backend/plugins/gitee/models/migrationscripts/register.go
b/backend/plugins/gitee/models/migrationscripts/20240813_change_issue_component_type.go
similarity index 59%
copy from backend/plugins/gitee/models/migrationscripts/register.go
copy to
backend/plugins/gitee/models/migrationscripts/20240813_change_issue_component_type.go
index 5e5ec1388..a669a31dd 100644
--- a/backend/plugins/gitee/models/migrationscripts/register.go
+++
b/backend/plugins/gitee/models/migrationscripts/20240813_change_issue_component_type.go
@@ -18,14 +18,23 @@ limitations under the License.
package migrationscripts
import (
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-// All return all the migration scripts
-func All() []plugin.MigrationScript {
- return []plugin.MigrationScript{
- new(addInitTables),
- new(addGiteeCommitAuthorInfo),
- new(addScopeConfigIdToRepo),
- }
+var _ plugin.MigrationScript = (*changeIssueComponentType)(nil)
+
+type changeIssueComponentType struct{}
+
+func (script *changeIssueComponentType) Up(basicRes context.BasicRes)
errors.Error {
+ return basicRes.GetDal().ModifyColumnType("_tool_gitee_issues",
"components", "text")
+}
+
+func (*changeIssueComponentType) Version() uint64 {
+ return 20240813154445
+}
+
+func (*changeIssueComponentType) Name() string {
+ return "change _tool_gitee_issues.components type to text"
}
diff --git a/backend/plugins/gitee/models/migrationscripts/register.go
b/backend/plugins/gitee/models/migrationscripts/register.go
index 5e5ec1388..e089a9bec 100644
--- a/backend/plugins/gitee/models/migrationscripts/register.go
+++ b/backend/plugins/gitee/models/migrationscripts/register.go
@@ -27,5 +27,6 @@ func All() []plugin.MigrationScript {
new(addInitTables),
new(addGiteeCommitAuthorInfo),
new(addScopeConfigIdToRepo),
+ new(changeIssueComponentType),
}
}
diff --git a/backend/plugins/github/models/issue.go
b/backend/plugins/github/models/issue.go
index 80e071cc5..004e89a28 100644
--- a/backend/plugins/github/models/issue.go
+++ b/backend/plugins/github/models/issue.go
@@ -45,7 +45,7 @@ type GithubIssue struct {
GithubCreatedAt time.Time
GithubUpdatedAt time.Time `gorm:"index"`
Severity string `gorm:"type:varchar(255)"`
- Component string `gorm:"type:varchar(255)"`
+ Component string `gorm:"type:text"`
common.NoPKModel
}
diff --git a/backend/plugins/gitee/models/migrationscripts/register.go
b/backend/plugins/github/models/migrationscripts/20240813_change_issue_component_type.go
similarity index 59%
copy from backend/plugins/gitee/models/migrationscripts/register.go
copy to
backend/plugins/github/models/migrationscripts/20240813_change_issue_component_type.go
index 5e5ec1388..be5a3be12 100644
--- a/backend/plugins/gitee/models/migrationscripts/register.go
+++
b/backend/plugins/github/models/migrationscripts/20240813_change_issue_component_type.go
@@ -18,14 +18,23 @@ limitations under the License.
package migrationscripts
import (
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-// All return all the migration scripts
-func All() []plugin.MigrationScript {
- return []plugin.MigrationScript{
- new(addInitTables),
- new(addGiteeCommitAuthorInfo),
- new(addScopeConfigIdToRepo),
- }
+var _ plugin.MigrationScript = (*changeIssueComponentType)(nil)
+
+type changeIssueComponentType struct{}
+
+func (script *changeIssueComponentType) Up(basicRes context.BasicRes)
errors.Error {
+ return basicRes.GetDal().ModifyColumnType("_tool_github_issues",
"components", "text")
+}
+
+func (*changeIssueComponentType) Version() uint64 {
+ return 20240813154633
+}
+
+func (*changeIssueComponentType) Name() string {
+ return "change _tool_github_issues.components type to text"
}
diff --git a/backend/plugins/github/models/migrationscripts/register.go
b/backend/plugins/github/models/migrationscripts/register.go
index fec8b5338..346654d99 100644
--- a/backend/plugins/github/models/migrationscripts/register.go
+++ b/backend/plugins/github/models/migrationscripts/register.go
@@ -53,5 +53,6 @@ func All() []plugin.MigrationScript {
new(addMergedByToPr),
new(restructReviewer),
new(addIsDraftToPr),
+ new(changeIssueComponentType),
}
}
diff --git a/backend/plugins/gitlab/models/issue.go
b/backend/plugins/gitlab/models/issue.go
index 5d57d6806..36d66b5cd 100644
--- a/backend/plugins/gitlab/models/issue.go
+++ b/backend/plugins/gitlab/models/issue.go
@@ -45,7 +45,7 @@ type GitlabIssue struct {
GitlabCreatedAt time.Time
GitlabUpdatedAt time.Time `gorm:"index"`
Severity string `gorm:"type:varchar(255)"`
- Component string `gorm:"type:varchar(255)"`
+ Component string `gorm:"type:text"`
TimeEstimate *int64
TotalTimeSpent *int64
common.NoPKModel
diff --git a/backend/plugins/gitee/models/migrationscripts/register.go
b/backend/plugins/gitlab/models/migrationscripts/20240813_change_issue_component_type.go
similarity index 59%
copy from backend/plugins/gitee/models/migrationscripts/register.go
copy to
backend/plugins/gitlab/models/migrationscripts/20240813_change_issue_component_type.go
index 5e5ec1388..08c88ac29 100644
--- a/backend/plugins/gitee/models/migrationscripts/register.go
+++
b/backend/plugins/gitlab/models/migrationscripts/20240813_change_issue_component_type.go
@@ -18,14 +18,23 @@ limitations under the License.
package migrationscripts
import (
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-// All return all the migration scripts
-func All() []plugin.MigrationScript {
- return []plugin.MigrationScript{
- new(addInitTables),
- new(addGiteeCommitAuthorInfo),
- new(addScopeConfigIdToRepo),
- }
+var _ plugin.MigrationScript = (*changeIssueComponentType)(nil)
+
+type changeIssueComponentType struct{}
+
+func (script *changeIssueComponentType) Up(basicRes context.BasicRes)
errors.Error {
+ return basicRes.GetDal().ModifyColumnType("_tool_gitlab_issues",
"components", "text")
+}
+
+func (*changeIssueComponentType) Version() uint64 {
+ return 20240813154323
+}
+
+func (*changeIssueComponentType) Name() string {
+ return "change _tool_gitlab_issues.components type to text"
}
diff --git a/backend/plugins/gitlab/models/migrationscripts/register.go
b/backend/plugins/gitlab/models/migrationscripts/register.go
index 24af299b0..8fda16c47 100644
--- a/backend/plugins/gitlab/models/migrationscripts/register.go
+++ b/backend/plugins/gitlab/models/migrationscripts/register.go
@@ -50,5 +50,6 @@ func All() []plugin.MigrationScript {
new(addWebUrlToGitlabPipelineProject),
new(addGitlabAssignee),
new(addGitlabAssigneeAndReviewerPrimaryKey),
+ new(changeIssueComponentType),
}
}
diff --git a/backend/plugins/jira/models/issue.go
b/backend/plugins/jira/models/issue.go
index 0b6294490..12db2b00b 100644
--- a/backend/plugins/jira/models/issue.go
+++ b/backend/plugins/jira/models/issue.go
@@ -62,7 +62,7 @@ type JiraIssue struct {
LeadTimeMinutes *uint
StdType string `gorm:"type:varchar(255)"`
StdStatus string `gorm:"type:varchar(255)"`
- Components string `gorm:"type:varchar(255)"`
+ Components string `gorm:"type:text"`
Subtask bool
ChangelogTotal int
WorklogTotal int
diff --git a/backend/plugins/gitee/models/migrationscripts/register.go
b/backend/plugins/jira/models/migrationscripts/20240809_change_issue_component_type.go
similarity index 60%
copy from backend/plugins/gitee/models/migrationscripts/register.go
copy to
backend/plugins/jira/models/migrationscripts/20240809_change_issue_component_type.go
index 5e5ec1388..30329085c 100644
--- a/backend/plugins/gitee/models/migrationscripts/register.go
+++
b/backend/plugins/jira/models/migrationscripts/20240809_change_issue_component_type.go
@@ -18,14 +18,23 @@ limitations under the License.
package migrationscripts
import (
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-// All return all the migration scripts
-func All() []plugin.MigrationScript {
- return []plugin.MigrationScript{
- new(addInitTables),
- new(addGiteeCommitAuthorInfo),
- new(addScopeConfigIdToRepo),
- }
+var _ plugin.MigrationScript = (*changeIssueComponentType)(nil)
+
+type changeIssueComponentType struct{}
+
+func (script *changeIssueComponentType) Up(basicRes context.BasicRes)
errors.Error {
+ return basicRes.GetDal().ModifyColumnType("_tool_jira_issues",
"components", "text")
+}
+
+func (*changeIssueComponentType) Version() uint64 {
+ return 20240809165545
+}
+
+func (*changeIssueComponentType) Name() string {
+ return "change jira_issue.components type to text"
}
diff --git a/backend/plugins/jira/models/migrationscripts/register.go
b/backend/plugins/jira/models/migrationscripts/register.go
index f2764ef42..6b7b89f84 100644
--- a/backend/plugins/jira/models/migrationscripts/register.go
+++ b/backend/plugins/jira/models/migrationscripts/register.go
@@ -51,5 +51,6 @@ func All() []plugin.MigrationScript {
new(addSubtaskToIssue),
new(addTmpAccountIdToJiraIssueChangelogItem),
new(addIssueFieldTable),
+ new(changeIssueComponentType),
}
}
diff --git a/backend/plugins/sonarqube/api/blueprint_v200.go
b/backend/plugins/sonarqube/api/blueprint_v200.go
index 250b1bf1d..e4804534b 100644
--- a/backend/plugins/sonarqube/api/blueprint_v200.go
+++ b/backend/plugins/sonarqube/api/blueprint_v200.go
@@ -111,7 +111,7 @@ func makeScopesV200(
sonarqubeProject := scopeDetail.Scope
// add board to scopes
domainBoard := &codequality.CqProject{
- DomainEntity: domainlayer.DomainEntity{
+ DomainEntityExtended: domainlayer.DomainEntityExtended{
Id:
didgen.NewDomainIdGenerator(&models.SonarqubeProject{}).Generate(sonarqubeProject.ConnectionId,
sonarqubeProject.ProjectKey),
},
Name: sonarqubeProject.Name,
diff --git a/backend/plugins/gitee/models/migrationscripts/register.go
b/backend/plugins/sonarqube/models/migrationscripts/20240813_change_issue_component_type.go
similarity index 59%
copy from backend/plugins/gitee/models/migrationscripts/register.go
copy to
backend/plugins/sonarqube/models/migrationscripts/20240813_change_issue_component_type.go
index 5e5ec1388..eb7e713c8 100644
--- a/backend/plugins/gitee/models/migrationscripts/register.go
+++
b/backend/plugins/sonarqube/models/migrationscripts/20240813_change_issue_component_type.go
@@ -18,14 +18,23 @@ limitations under the License.
package migrationscripts
import (
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-// All return all the migration scripts
-func All() []plugin.MigrationScript {
- return []plugin.MigrationScript{
- new(addInitTables),
- new(addGiteeCommitAuthorInfo),
- new(addScopeConfigIdToRepo),
- }
+var _ plugin.MigrationScript = (*changeIssueComponentType)(nil)
+
+type changeIssueComponentType struct{}
+
+func (script *changeIssueComponentType) Up(basicRes context.BasicRes)
errors.Error {
+ return basicRes.GetDal().ModifyColumnType("_tool_sonarqube_issues",
"components", "text")
+}
+
+func (*changeIssueComponentType) Version() uint64 {
+ return 20240813153541
+}
+
+func (*changeIssueComponentType) Name() string {
+ return "change _tool_sonarqube_issues.components type to text"
}
diff --git a/backend/plugins/gitee/models/migrationscripts/register.go
b/backend/plugins/sonarqube/models/migrationscripts/20240813_increase_project_key_length.go
similarity index 58%
copy from backend/plugins/gitee/models/migrationscripts/register.go
copy to
backend/plugins/sonarqube/models/migrationscripts/20240813_increase_project_key_length.go
index 5e5ec1388..ed1981670 100644
--- a/backend/plugins/gitee/models/migrationscripts/register.go
+++
b/backend/plugins/sonarqube/models/migrationscripts/20240813_increase_project_key_length.go
@@ -18,14 +18,23 @@ limitations under the License.
package migrationscripts
import (
+ "github.com/apache/incubator-devlake/core/context"
+ "github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/plugin"
)
-// All return all the migration scripts
-func All() []plugin.MigrationScript {
- return []plugin.MigrationScript{
- new(addInitTables),
- new(addGiteeCommitAuthorInfo),
- new(addScopeConfigIdToRepo),
- }
+var _ plugin.MigrationScript = (*increaseProjectKeyLength)(nil)
+
+type increaseProjectKeyLength struct{}
+
+func (script *increaseProjectKeyLength) Up(basicRes context.BasicRes)
errors.Error {
+ return basicRes.GetDal().ModifyColumnType("_tool_sonarqube_projects",
"project_key", "varchar(500)")
+}
+
+func (*increaseProjectKeyLength) Version() uint64 {
+ return 20240813155602
+}
+
+func (*increaseProjectKeyLength) Name() string {
+ return "increase _tool_sonarqube_projects.project_key length to 500"
}
diff --git a/backend/plugins/sonarqube/models/migrationscripts/register.go
b/backend/plugins/sonarqube/models/migrationscripts/register.go
index 3f2181367..b11549cb8 100644
--- a/backend/plugins/sonarqube/models/migrationscripts/register.go
+++ b/backend/plugins/sonarqube/models/migrationscripts/register.go
@@ -34,5 +34,7 @@ func All() []plugin.MigrationScript {
new(modifyCommitCharacterType0508),
new(updateSonarQubeScopeConfig20240614),
new(modifyNameLength),
+ new(changeIssueComponentType),
+ new(increaseProjectKeyLength),
}
}
diff --git a/backend/plugins/sonarqube/models/sonarqube_issue.go
b/backend/plugins/sonarqube/models/sonarqube_issue.go
index 3bc8a2b13..fefd75721 100644
--- a/backend/plugins/sonarqube/models/sonarqube_issue.go
+++ b/backend/plugins/sonarqube/models/sonarqube_issue.go
@@ -26,7 +26,7 @@ type SonarqubeIssue struct {
IssueKey string `gorm:"primaryKey;type:varchar(100)"`
Rule string `gorm:"type:varchar(255)"`
Severity string `gorm:"type:varchar(100)"`
- Component string `gorm:"type:varchar(500)"`
+ Component string `gorm:"type:text"`
ProjectKey string `gorm:"index;type:varchar(255)"` //domain project
key
Line int
Status string `gorm:"type:varchar(20)"`
diff --git a/backend/plugins/sonarqube/models/sonarqube_project.go
b/backend/plugins/sonarqube/models/sonarqube_project.go
index b31e0214f..aeb57134b 100644
--- a/backend/plugins/sonarqube/models/sonarqube_project.go
+++ b/backend/plugins/sonarqube/models/sonarqube_project.go
@@ -26,7 +26,7 @@ var _ plugin.ToolLayerScope = (*SonarqubeProject)(nil)
type SonarqubeProject struct {
common.Scope `mapstructure:",squash"`
- ProjectKey string `json:"projectKey"
validate:"required" gorm:"type:varchar(255);primaryKey"
mapstructure:"projectKey"`
+ ProjectKey string `json:"projectKey"
validate:"required" gorm:"type:varchar(500);primaryKey"
mapstructure:"projectKey"`
Name string `json:"name"
gorm:"type:varchar(500)" mapstructure:"name"`
Qualifier string `json:"qualifier"
gorm:"type:varchar(255)" mapstructure:"qualifier"`
Visibility string `json:"visibility"
gorm:"type:varchar(64)" mapstructure:"visibility"`
diff --git a/backend/plugins/sonarqube/tasks/projects_convertor.go
b/backend/plugins/sonarqube/tasks/projects_convertor.go
index afa6a694d..3e3c1ebba 100644
--- a/backend/plugins/sonarqube/tasks/projects_convertor.go
+++ b/backend/plugins/sonarqube/tasks/projects_convertor.go
@@ -58,12 +58,12 @@ func ConvertProjects(taskCtx plugin.SubTaskContext)
errors.Error {
Convert: func(inputRow interface{}) ([]interface{},
errors.Error) {
sonarqubeProject :=
inputRow.(*sonarqubeModels.SonarqubeProject)
domainProject := &codequality.CqProject{
- DomainEntity: domainlayer.DomainEntity{Id:
projectIdGen.Generate(data.Options.ConnectionId, sonarqubeProject.ProjectKey)},
- Name: sonarqubeProject.Name,
- Qualifier: sonarqubeProject.Qualifier,
- Visibility: sonarqubeProject.Visibility,
- LastAnalysisDate:
sonarqubeProject.LastAnalysisDate,
- CommitSha: sonarqubeProject.Revision,
+ DomainEntityExtended:
domainlayer.DomainEntityExtended{Id:
projectIdGen.Generate(data.Options.ConnectionId, sonarqubeProject.ProjectKey)},
+ Name: sonarqubeProject.Name,
+ Qualifier:
sonarqubeProject.Qualifier,
+ Visibility:
sonarqubeProject.Visibility,
+ LastAnalysisDate:
sonarqubeProject.LastAnalysisDate,
+ CommitSha: sonarqubeProject.Revision,
}
return []interface{}{
domainProject,