From 150ba23a0d851e659be5d867af381d9a2cecadea Mon Sep 17 00:00:00 2001 From: Klesh Wong Date: Fri, 21 Jul 2023 17:33:24 +0800 Subject: [PATCH 1/2] feat: add full name to remote api --- backend/core/plugin/plugin_scope_abstract.go | 1 + backend/helpers/pluginhelper/api/remote_api_helper.go | 11 +++++++---- backend/plugins/bamboo/models/project.go | 4 ++++ backend/plugins/bitbucket/models/repo.go | 4 ++++ backend/plugins/gitee/models/repo.go | 5 +++++ backend/plugins/github/models/repo.go | 4 ++++ backend/plugins/gitlab/models/project.go | 4 ++++ backend/plugins/jenkins/models/job.go | 3 +++ backend/plugins/jira/models/board.go | 4 ++++ backend/plugins/pagerduty/models/service.go | 4 ++++ backend/plugins/sonarqube/models/sonarqube_project.go | 4 ++++ backend/plugins/tapd/models/workspace.go | 4 ++++ backend/plugins/trello/models/board.go | 4 ++++ backend/plugins/zentao/models/project.go | 4 ++++ backend/server/services/remote/models/models.go | 4 ++++ 15 files changed, 60 insertions(+), 4 deletions(-) diff --git a/backend/core/plugin/plugin_scope_abstract.go b/backend/core/plugin/plugin_scope_abstract.go index 9aa7314e0f9..fe48ae03108 100644 --- a/backend/core/plugin/plugin_scope_abstract.go +++ b/backend/core/plugin/plugin_scope_abstract.go @@ -36,6 +36,7 @@ type Scope interface { type ToolLayerScope interface { Scope + ScopeFullName() string ScopeParams() interface{} } diff --git a/backend/helpers/pluginhelper/api/remote_api_helper.go b/backend/helpers/pluginhelper/api/remote_api_helper.go index a85dd8ff812..f0dab9bf494 100644 --- a/backend/helpers/pluginhelper/api/remote_api_helper.go +++ b/backend/helpers/pluginhelper/api/remote_api_helper.go @@ -35,6 +35,7 @@ type RemoteScopesChild struct { ParentId *string `json:"parentId"` Id string `json:"id"` Name string `json:"name"` + FullName string `json:"fullName"` Data interface{} `json:"data"` } @@ -211,10 +212,11 @@ func (r *RemoteApiHelper[Conn, Scope, ApiScope, Group]) GetScopesFromRemote(inpu for _, project := range resBody { scope := project.ConvertApiScope() child := RemoteScopesChild{ - Type: TypeProject, - Id: scope.ScopeId(), - Name: scope.ScopeName(), - Data: &scope, + Type: TypeProject, + Id: scope.ScopeId(), + Name: scope.ScopeName(), + FullName: scope.ScopeFullName(), + Data: &scope, } child.ParentId = &gid if *child.ParentId == "" { @@ -307,6 +309,7 @@ func (r *RemoteApiHelper[Conn, Scope, ApiScope, Group]) SearchRemoteScopes(input Id: scope.ScopeId(), ParentId: nil, Name: scope.ScopeName(), + FullName: scope.ScopeFullName(), Data: scope, } diff --git a/backend/plugins/bamboo/models/project.go b/backend/plugins/bamboo/models/project.go index 8453b25595d..2e8cca041f6 100644 --- a/backend/plugins/bamboo/models/project.go +++ b/backend/plugins/bamboo/models/project.go @@ -48,6 +48,10 @@ func (p BambooProject) ScopeName() string { return p.Name } +func (p BambooProject) ScopeFullName() string { + return p.Name +} + func (p BambooProject) ScopeParams() interface{} { return &BambooApiParams{ ConnectionId: p.ConnectionId, diff --git a/backend/plugins/bitbucket/models/repo.go b/backend/plugins/bitbucket/models/repo.go index f47edf45d73..b6f099c021d 100644 --- a/backend/plugins/bitbucket/models/repo.go +++ b/backend/plugins/bitbucket/models/repo.go @@ -55,6 +55,10 @@ func (p BitbucketRepo) ScopeName() string { return p.Name } +func (p BitbucketRepo) ScopeFullName() string { + return p.BitbucketId +} + func (p BitbucketRepo) ScopeParams() interface{} { return &BitbucketApiParams{ ConnectionId: p.ConnectionId, diff --git a/backend/plugins/gitee/models/repo.go b/backend/plugins/gitee/models/repo.go index feaeec4f25f..9faf9676941 100644 --- a/backend/plugins/gitee/models/repo.go +++ b/backend/plugins/gitee/models/repo.go @@ -18,6 +18,7 @@ limitations under the License. package models import ( + "fmt" "strconv" "time" @@ -51,6 +52,10 @@ func (r GiteeRepo) ScopeName() string { return r.Name } +func (r GiteeRepo) ScopeFullName() string { + return fmt.Sprintf("%v/%v", r.OwnerLogin, r.Name) +} + func (r GiteeRepo) ScopeParams() interface{} { return &GiteeApiParams{ ConnectionId: r.ConnectionId, diff --git a/backend/plugins/github/models/repo.go b/backend/plugins/github/models/repo.go index 5646820c261..f59b44b9eef 100644 --- a/backend/plugins/github/models/repo.go +++ b/backend/plugins/github/models/repo.go @@ -53,6 +53,10 @@ func (r GithubRepo) ScopeName() string { return r.Name } +func (r GithubRepo) ScopeFullName() string { + return r.FullName +} + func (r GithubRepo) ScopeParams() interface{} { return &GithubApiParams{ ConnectionId: r.ConnectionId, diff --git a/backend/plugins/gitlab/models/project.go b/backend/plugins/gitlab/models/project.go index 9e00cbad608..0b576099f9d 100644 --- a/backend/plugins/gitlab/models/project.go +++ b/backend/plugins/gitlab/models/project.go @@ -63,6 +63,10 @@ func (p GitlabProject) ScopeName() string { return p.Name } +func (p GitlabProject) ScopeFullName() string { + return p.PathWithNamespace +} + func (p GitlabProject) ScopeParams() interface{} { return &GitlabApiParams{ ConnectionId: p.ConnectionId, diff --git a/backend/plugins/jenkins/models/job.go b/backend/plugins/jenkins/models/job.go index 3b8f608c8ee..16d66c782ad 100644 --- a/backend/plugins/jenkins/models/job.go +++ b/backend/plugins/jenkins/models/job.go @@ -51,6 +51,9 @@ func (j JenkinsJob) ScopeId() string { func (j JenkinsJob) ScopeName() string { return j.Name } +func (j JenkinsJob) ScopeFullName() string { + return j.FullName +} func (j JenkinsJob) ScopeParams() interface{} { return &JenkinsApiParams{ diff --git a/backend/plugins/jira/models/board.go b/backend/plugins/jira/models/board.go index 6206995d6f1..4509693d71a 100644 --- a/backend/plugins/jira/models/board.go +++ b/backend/plugins/jira/models/board.go @@ -45,6 +45,10 @@ func (b JiraBoard) ScopeName() string { return b.Name } +func (b JiraBoard) ScopeFullName() string { + return b.Name +} + func (b JiraBoard) ScopeParams() interface{} { return &JiraApiParams{ ConnectionId: b.ConnectionId, diff --git a/backend/plugins/pagerduty/models/service.go b/backend/plugins/pagerduty/models/service.go index 4b6b7924c91..7bda04260b0 100644 --- a/backend/plugins/pagerduty/models/service.go +++ b/backend/plugins/pagerduty/models/service.go @@ -43,6 +43,10 @@ func (s Service) ScopeName() string { return s.Name } +func (s Service) ScopeFullName() string { + return s.Name +} + func (s Service) ScopeParams() interface{} { return &PagerDutyParams{ ConnectionId: s.ConnectionId, diff --git a/backend/plugins/sonarqube/models/sonarqube_project.go b/backend/plugins/sonarqube/models/sonarqube_project.go index 693f1be6a98..4ddb3d8a1c2 100644 --- a/backend/plugins/sonarqube/models/sonarqube_project.go +++ b/backend/plugins/sonarqube/models/sonarqube_project.go @@ -49,6 +49,10 @@ func (p SonarqubeProject) ScopeName() string { return p.Name } +func (p SonarqubeProject) ScopeFullName() string { + return p.Name +} + func (p SonarqubeProject) ScopeParams() interface{} { return SonarqubeApiParams{ ConnectionId: p.ConnectionId, diff --git a/backend/plugins/tapd/models/workspace.go b/backend/plugins/tapd/models/workspace.go index 36e4966820b..e2fb0638886 100644 --- a/backend/plugins/tapd/models/workspace.go +++ b/backend/plugins/tapd/models/workspace.go @@ -89,6 +89,10 @@ func (w TapdWorkspace) ScopeName() string { return w.Name } +func (w TapdWorkspace) ScopeFullName() string { + return w.Name +} + func (w TapdWorkspace) ScopeParams() interface{} { return &TapdApiParams{ ConnectionId: w.ConnectionId, diff --git a/backend/plugins/trello/models/board.go b/backend/plugins/trello/models/board.go index 33c8ccdaa7d..d651c91e293 100644 --- a/backend/plugins/trello/models/board.go +++ b/backend/plugins/trello/models/board.go @@ -40,6 +40,10 @@ func (b TrelloBoard) ScopeName() string { return b.Name } +func (b TrelloBoard) ScopeFullName() string { + return b.Name +} + func (b TrelloBoard) ScopeParams() interface{} { return &TrelloApiParams{ ConnectionId: b.ConnectionId, diff --git a/backend/plugins/zentao/models/project.go b/backend/plugins/zentao/models/project.go index 26402b0cc72..f99aea13013 100644 --- a/backend/plugins/zentao/models/project.go +++ b/backend/plugins/zentao/models/project.go @@ -154,6 +154,10 @@ func (p ZentaoProject) ScopeName() string { return p.Name } +func (p ZentaoProject) ScopeFullName() string { + return p.Name +} + func (p ZentaoProject) ScopeParams() interface{} { return &ZentaoApiParams{ ConnectionId: p.ConnectionId, diff --git a/backend/server/services/remote/models/models.go b/backend/server/services/remote/models/models.go index c7ebdb498eb..17523cf78b3 100644 --- a/backend/server/services/remote/models/models.go +++ b/backend/server/services/remote/models/models.go @@ -97,6 +97,10 @@ func (d DynamicScopeModel) ScopeName() string { return reflect.ValueOf(d.DynamicTabler.Unwrap()).Elem().FieldByName("Name").String() } +func (d DynamicScopeModel) ScopeFullName() string { + return d.ScopeName() +} + func (d DynamicScopeModel) ScopeParams() interface{} { return &ApiParams{ ConnectionId: d.ConnectionId(), From 022efbf8a23bc19c4a78cdd876d2784d592b7634 Mon Sep 17 00:00:00 2001 From: Klesh Wong Date: Fri, 21 Jul 2023 17:55:29 +0800 Subject: [PATCH 2/2] fix: unit test --- backend/Makefile | 7 ++++--- backend/helpers/pluginhelper/api/scope_helper_test.go | 8 ++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/Makefile b/backend/Makefile index 977eea9187f..85f7ae35bb1 100644 --- a/backend/Makefile +++ b/backend/Makefile @@ -109,11 +109,12 @@ unit-test: mock unit-test-only python-unit-test unit-test-only: set -e;\ - exit_code=0;\ for m in $$(go list ./... | egrep -v 'test|models|e2e'); do \ - echo $$m; go test -timeout 60s -v $$m || exit_code=$$?; \ + echo $$m; \ + if ! go test -timeout 60s -v $$m; then \ + exit $$?; \ + fi \ done; \ - exit $$exit_code build-pydevlake: poetry install -C python/pydevlake diff --git a/backend/helpers/pluginhelper/api/scope_helper_test.go b/backend/helpers/pluginhelper/api/scope_helper_test.go index 3d385c4cb1e..178103e79c9 100644 --- a/backend/helpers/pluginhelper/api/scope_helper_test.go +++ b/backend/helpers/pluginhelper/api/scope_helper_test.go @@ -56,6 +56,10 @@ func (t TestFakeGitlabRepo) ScopeName() string { return "" } +func (t TestFakeGitlabRepo) ScopeFullName() string { + return "" +} + func (t TestFakeGitlabRepo) TableName() string { return "" } @@ -89,6 +93,10 @@ func (r TestFakeGithubRepo) ScopeName() string { return r.Name } +func (r TestFakeGithubRepo) ScopeFullName() string { + return r.Name +} + func (r TestFakeGithubRepo) ScopeParams() interface{} { return nil }