This is an automated email from the ASF dual-hosted git repository.
abeizn 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 d87011675 feat: add full name to remote api (#5724)
d87011675 is described below
commit d87011675379fbc6e165fb9b8b56d7a30585e654
Author: Klesh Wong <[email protected]>
AuthorDate: Tue Jul 25 17:38:20 2023 +0800
feat: add full name to remote api (#5724)
* feat: add full name to remote api
* fix: unit test
---
backend/Makefile | 7 ++++---
backend/core/plugin/plugin_scope_abstract.go | 1 +
backend/helpers/pluginhelper/api/remote_api_helper.go | 11 +++++++----
backend/helpers/pluginhelper/api/scope_helper_test.go | 8 ++++++++
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 ++++
17 files changed, 72 insertions(+), 7 deletions(-)
diff --git a/backend/Makefile b/backend/Makefile
index 977eea918..85f7ae35b 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/core/plugin/plugin_scope_abstract.go
b/backend/core/plugin/plugin_scope_abstract.go
index 9aa7314e0..fe48ae031 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 a85dd8ff8..f0dab9bf4 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/helpers/pluginhelper/api/scope_helper_test.go
b/backend/helpers/pluginhelper/api/scope_helper_test.go
index 3d385c4cb..178103e79 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
}
diff --git a/backend/plugins/bamboo/models/project.go
b/backend/plugins/bamboo/models/project.go
index 8453b2559..2e8cca041 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 f47edf45d..b6f099c02 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 feaeec4f2..9faf96769 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 5646820c2..f59b44b9e 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 06a9a6456..dc0846b32 100644
--- a/backend/plugins/gitlab/models/project.go
+++ b/backend/plugins/gitlab/models/project.go
@@ -64,6 +64,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 3b8f608c8..16d66c782 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 6206995d6..4509693d7 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 4b6b7924c..7bda04260 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 693f1be6a..4ddb3d8a1 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 36e496682..e2fb06388 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 33c8ccdaa..d651c91e2 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 26402b0cc..f99aea130 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 c7ebdb498..17523cf78 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(),