This is an automated email from the ASF dual-hosted git repository.
abeizn pushed a commit to branch fix#5640-3
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/fix#5640-3 by this push:
new 1f6e73e75 fix: bitbucket search-remote-scopes
1f6e73e75 is described below
commit 1f6e73e75866d76e92cdff5649f48d736ca6bbbf
Author: abeizn <[email protected]>
AuthorDate: Tue Sep 19 18:41:50 2023 +0800
fix: bitbucket search-remote-scopes
---
backend/plugins/bitbucket/api/remote.go | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/backend/plugins/bitbucket/api/remote.go
b/backend/plugins/bitbucket/api/remote.go
index 60ddd72d0..8bcaec524 100644
--- a/backend/plugins/bitbucket/api/remote.go
+++ b/backend/plugins/bitbucket/api/remote.go
@@ -117,30 +117,38 @@ func SearchRemoteScopes(input *plugin.ApiResourceInput)
(*plugin.ApiResourceOutp
// create api client
apiClient, err :=
api.NewApiClientFromConnection(gocontext.TODO(), basicRes, &connection)
if err != nil {
- return nil, err
+ return nil, errors.BadInput.Wrap(err, "failed
to get create apiClient")
}
- query := initialQuery(queryData)
- s := queryData.Search[0]
// request search
+ query := initialQuery(queryData)
+ if len(queryData.Search) <= 1 {
+ return nil, errors.BadInput.New("empty search
query")
+ }
+ s := queryData.Search[0]
query.Set("sort", "name")
- query.Set("fields",
"values.name,values.full_name,values.language,values.description,values.owner.username,values.created_on,values.updated_on,values.links.clone,values.links.self,pagelen,page,size")
+ query.Set("fields",
"values.name,values.full_name,values.language,values.description,values.owner.display_name,values.created_on,values.updated_on,values.links.clone,values.links.html,pagelen,page,size")
+
+ //list projects part
gid := ``
if strings.Contains(s, `/`) {
gid = strings.Split(s, `/`)[0]
- s = strings.Split(s, `/`)[0]
+ s = strings.Split(s, `/`)[1]
}
query.Set("q", fmt.Sprintf(`name~"%s"`, s))
+
// list repos part
res, err :=
apiClient.Get(fmt.Sprintf("/repositories/%s", gid), query, nil)
if err != nil {
return nil, err
}
- resBody := &models.ReposResponse{}
+
+ var resBody models.ReposResponse
err = api.UnmarshalResponse(res, &resBody)
if err != nil {
return nil, err
}
+
return resBody.Values, err
},
)