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
                },
        )

Reply via email to