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 7a85b7f88 fix(sonarqube): fix search-remote-scope api error, fix api
document (#5259)
7a85b7f88 is described below
commit 7a85b7f8865cfe849259587f6ba763b406594827
Author: Leric Zhang <[email protected]>
AuthorDate: Tue May 23 10:24:40 2023 +0800
fix(sonarqube): fix search-remote-scope api error, fix api document (#5259)
---
backend/helpers/pluginhelper/api/remote_api_helper.go | 6 ++++--
backend/plugins/sonarqube/api/connection.go | 9 +++++++++
backend/plugins/sonarqube/api/proxy.go | 10 ++++++++++
backend/plugins/sonarqube/api/remote.go | 6 +++---
backend/plugins/sonarqube/api/scope.go | 6 +++---
5 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/backend/helpers/pluginhelper/api/remote_api_helper.go
b/backend/helpers/pluginhelper/api/remote_api_helper.go
index 798801a20..b9d874a68 100644
--- a/backend/helpers/pluginhelper/api/remote_api_helper.go
+++ b/backend/helpers/pluginhelper/api/remote_api_helper.go
@@ -160,7 +160,7 @@ func (r *RemoteApiHelper[Conn, Scope, ApiScope, Group])
GetScopesFromRemote(inpu
gid := groupId[0]
queryData, err := getPageDataFromPageToken(pageToken[0])
if err != nil {
- return nil, errors.BadInput.New("failed to get paget token")
+ return nil, errors.BadInput.New("failed to get page token")
}
outputBody := &RemoteScopesOutput{}
@@ -244,7 +244,9 @@ func (r *RemoteApiHelper[Conn, Scope, ApiScope, Group])
GetScopesFromRemote(inpu
return &plugin.ApiResourceOutput{Body: outputBody, Status:
http.StatusOK}, nil
}
-func (r *RemoteApiHelper[Conn, Scope, ApiScope, Group])
SearchRemoteScopes(input *plugin.ApiResourceInput, searchScope func(basicRes
coreContext.BasicRes, queryData *RemoteQueryData, connection Conn) ([]ApiScope,
errors.Error)) (*plugin.ApiResourceOutput, errors.Error) {
+func (r *RemoteApiHelper[Conn, Scope, ApiScope, Group])
SearchRemoteScopes(input *plugin.ApiResourceInput,
+ searchScope func(basicRes coreContext.BasicRes, queryData
*RemoteQueryData, connection Conn) ([]ApiScope, errors.Error),
+) (*plugin.ApiResourceOutput, errors.Error) {
connectionId, err :=
errors.Convert01(strconv.ParseUint(input.Params["connectionId"], 10, 64))
if err != nil || connectionId == 0 {
return nil, errors.BadInput.New("invalid connectionId")
diff --git a/backend/plugins/sonarqube/api/connection.go
b/backend/plugins/sonarqube/api/connection.go
index 8ca67b18e..9dc000e61 100644
--- a/backend/plugins/sonarqube/api/connection.go
+++ b/backend/plugins/sonarqube/api/connection.go
@@ -36,6 +36,7 @@ type SonarqubeTestConnResponse struct {
Connection *models.SonarqubeConn
}
+// TestConnection test sonarqube connection options
// @Summary test sonarqube connection
// @Description Test sonarqube Connection
// @Tags plugins/sonarqube
@@ -82,6 +83,7 @@ func TestConnection(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutput,
}
}
+// PostConnections create sonarqube connection
// @Summary create sonarqube connection
// @Description Create sonarqube connection
// @Tags plugins/sonarqube
@@ -100,10 +102,12 @@ func PostConnections(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutput,
return &plugin.ApiResourceOutput{Body: connection, Status:
http.StatusOK}, nil
}
+// PatchConnection patch sonarqube connection
// @Summary patch sonarqube connection
// @Description Patch sonarqube connection
// @Tags plugins/sonarqube
// @Param body body models.SonarqubeConnection true "json body"
+// @Param connectionId path int false "connection ID"
// @Success 200 {object} models.SonarqubeConnection
// @Failure 400 {string} errcode.Error "Bad Request"
// @Failure 500 {string} errcode.Error "Internal Error"
@@ -117,9 +121,11 @@ func PatchConnection(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutput,
return &plugin.ApiResourceOutput{Body: connection}, nil
}
+// DeleteConnection delete a sonarqube connection
// @Summary delete a sonarqube connection
// @Description Delete a sonarqube connection
// @Tags plugins/sonarqube
+// @Param connectionId path int false "connection ID"
// @Success 200 {object} models.SonarqubeConnection
// @Failure 400 {string} errcode.Error "Bad Request"
// @Failure 500 {string} errcode.Error "Internal Error"
@@ -134,6 +140,7 @@ func DeleteConnection(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutput
return &plugin.ApiResourceOutput{Body: connection}, err
}
+// ListConnections get all sonarqube connections
// @Summary get all sonarqube connections
// @Description Get all sonarqube connections
// @Tags plugins/sonarqube
@@ -150,9 +157,11 @@ func ListConnections(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutput,
return &plugin.ApiResourceOutput{Body: connections, Status:
http.StatusOK}, nil
}
+// GetConnection get sonarqube connection detail
// @Summary get sonarqube connection detail
// @Description Get sonarqube connection detail
// @Tags plugins/sonarqube
+// @Param connectionId path int false "connection ID"
// @Success 200 {object} models.SonarqubeConnection
// @Failure 400 {string} errcode.Error "Bad Request"
// @Failure 500 {string} errcode.Error "Internal Error"
diff --git a/backend/plugins/sonarqube/api/proxy.go
b/backend/plugins/sonarqube/api/proxy.go
index 381907ece..ed5b0a4a2 100644
--- a/backend/plugins/sonarqube/api/proxy.go
+++ b/backend/plugins/sonarqube/api/proxy.go
@@ -27,6 +27,16 @@ import (
"github.com/apache/incubator-devlake/plugins/sonarqube/models"
)
+// Proxy proxy api request to upstream sonarqube
+// @Summary proxy api request to upstream sonarqube
+// @Description Proxy HTTP GET request to the sonarqube behind this connection.
+// @Tags plugins/sonarqube
+// @Param connectionId path int false "connection ID"
+// @Param path path string false "API Path"
+// @Success 200 {object} interface{} "Success"
+// @Failure 400 {string} errcode.Error "Bad Request"
+// @Failure 500 {string} errcode.Error "Internal Error"
+// @Router /plugins/sonarqube/connections/{connectionId}/proxy/rest/{*path}
[GET]
func Proxy(input *plugin.ApiResourceInput) (*plugin.ApiResourceOutput,
errors.Error) {
connection := &models.SonarqubeConnection{}
err := connectionHelper.First(connection, input.Params)
diff --git a/backend/plugins/sonarqube/api/remote.go
b/backend/plugins/sonarqube/api/remote.go
index 5e29e4615..7d885e9bc 100644
--- a/backend/plugins/sonarqube/api/remote.go
+++ b/backend/plugins/sonarqube/api/remote.go
@@ -73,6 +73,7 @@ func RemoteScopes(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutput, er
// @Tags plugins/sonarqube
// @Accept application/json
// @Param connectionId path int false "connection ID"
+// @Param search query string false "search keyword"
// @Param page query int false "page number"
// @Param pageSize query int false "page size per page"
// @Success 200 {object} api.SearchRemoteScopesOutput
@@ -80,9 +81,8 @@ func RemoteScopes(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutput, er
// @Failure 500 {object} shared.ApiBody "Internal Error"
// @Router /plugins/sonarqube/connections/{connectionId}/search-remote-scopes
[GET]
func SearchRemoteScopes(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutput, errors.Error) {
- return remoteHelper.GetScopesFromRemote(input,
- nil,
- func(basicRes context2.BasicRes, gid string, queryData
*api.RemoteQueryData, connection models.SonarqubeConnection)
([]models.SonarqubeApiProject, errors.Error) {
+ return remoteHelper.SearchRemoteScopes(input,
+ func(basicRes context2.BasicRes, queryData
*api.RemoteQueryData, connection models.SonarqubeConnection)
([]models.SonarqubeApiProject, errors.Error) {
query := initialQuery(queryData)
query.Set("q", queryData.Search[0])
// create api client
diff --git a/backend/plugins/sonarqube/api/scope.go
b/backend/plugins/sonarqube/api/scope.go
index 3d46b2ef7..e2946eec3 100644
--- a/backend/plugins/sonarqube/api/scope.go
+++ b/backend/plugins/sonarqube/api/scope.go
@@ -67,10 +67,12 @@ func UpdateScope(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutput, err
// @Description get Sonarqube projects
// @Tags plugins/sonarqube
// @Param connectionId path int false "connection ID"
+// @Param pageSize query int false "page size, default 50"
+// @Param page query int false "page size, default 1"
// @Success 200 {object} []ScopeRes
// @Failure 400 {object} shared.ApiBody "Bad Request"
// @Failure 500 {object} shared.ApiBody "Internal Error"
-// @Router /plugins/sonarqube/connections/{connectionId}/scopes/ [GET]
+// @Router /plugins/sonarqube/connections/{connectionId}/scopes [GET]
func GetScopeList(input *plugin.ApiResourceInput) (*plugin.ApiResourceOutput,
errors.Error) {
return scopeHelper.GetScopeList(input)
}
@@ -81,8 +83,6 @@ func GetScopeList(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutput, er
// @Tags plugins/sonarqube
// @Param connectionId path int false "connection ID"
// @Param scopeId path string false "project key"
-// @Param pageSize query int false "page size, default 50"
-// @Param page query int false "page size, default 1"
// @Success 200 {object} ScopeRes
// @Failure 400 {object} shared.ApiBody "Bad Request"
// @Failure 500 {object} shared.ApiBody "Internal Error"