Skip to content

Commit 347213e

Browse files
committed
[papi]: Add GetSuggestedRepos
1 parent 3dc5b4a commit 347213e

File tree

12 files changed

+466
-126
lines changed

12 files changed

+466
-126
lines changed

components/gitpod-protocol/go/gitpod-service.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ type APIInterface interface {
4242
GetWorkspaceOwner(ctx context.Context, workspaceID string) (res *UserInfo, err error)
4343
GetWorkspaceUsers(ctx context.Context, workspaceID string) (res []*WorkspaceInstanceUser, err error)
4444
GetFeaturedRepositories(ctx context.Context) (res []*WhitelistedRepository, err error)
45+
GetSuggestedContextURLs(ctx context.Context) (res []*string, err error)
4546
GetWorkspace(ctx context.Context, id string) (res *WorkspaceInfo, err error)
4647
IsWorkspaceOwner(ctx context.Context, workspaceID string) (res bool, err error)
4748
CreateWorkspace(ctx context.Context, options *CreateWorkspaceOptions) (res *WorkspaceCreationResult, err error)
@@ -140,6 +141,8 @@ const (
140141
FunctionGetWorkspaceUsers FunctionName = "getWorkspaceUsers"
141142
// FunctionGetFeaturedRepositories is the name of the getFeaturedRepositories function
142143
FunctionGetFeaturedRepositories FunctionName = "getFeaturedRepositories"
144+
// FunctionGetSuggestedContextURLs is the name of the getSuggestedContextURLs function
145+
FunctionGetSuggestedContextURLs FunctionName = "getSuggestedContextURLs"
143146
// FunctionGetWorkspace is the name of the getWorkspace function
144147
FunctionGetWorkspace FunctionName = "getWorkspace"
145148
// FunctionIsWorkspaceOwner is the name of the isWorkspaceOwner function
@@ -1020,6 +1023,24 @@ func (gp *APIoverJSONRPC) ClosePort(ctx context.Context, workspaceID string, por
10201023
return
10211024
}
10221025

1026+
// GetSuggestedContextURLs calls getSuggestedContextURLs on the server
1027+
func (gp *APIoverJSONRPC) GetSuggestedContextURLs(ctx context.Context) (res []*string, err error) {
1028+
if gp == nil {
1029+
err = errNotConnected
1030+
return
1031+
}
1032+
var _params []interface{}
1033+
1034+
var result []*string
1035+
err = gp.C.Call(ctx, "getSuggestedContextURLs", _params, &result)
1036+
if err != nil {
1037+
return
1038+
}
1039+
res = result
1040+
1041+
return
1042+
}
1043+
10231044
// UpdateGitStatus calls UpdateGitStatus on the server
10241045
func (gp *APIoverJSONRPC) UpdateGitStatus(ctx context.Context, workspaceID string, status *WorkspaceInstanceRepoStatus) (err error) {
10251046
if gp == nil {

components/gitpod-protocol/go/mock.go

Lines changed: 44 additions & 44 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

components/public-api-server/pkg/apiv1/user.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,29 @@ func (s *UserService) GetGitToken(ctx context.Context, req *connect.Request[v1.G
8787
}), nil
8888
}
8989

90+
func (s *UserService) GetSuggestedRepos(ctx context.Context, req *connect.Request[v1.GetSuggestedReposRequest]) (*connect.Response[v1.GetSuggestedReposResponse], error) {
91+
conn, err := getConnection(ctx, s.connectionPool)
92+
if err != nil {
93+
return nil, err
94+
}
95+
96+
reposPtrs, err := conn.GetSuggestedContextURLs(ctx)
97+
if err != nil {
98+
return nil, proxy.ConvertError(err)
99+
}
100+
101+
repos := make([]string, len(reposPtrs))
102+
for i, repoPtr := range reposPtrs {
103+
if repoPtr != nil {
104+
repos[i] = *repoPtr
105+
}
106+
}
107+
108+
return connect.NewResponse(&v1.GetSuggestedReposResponse{
109+
Repos: repos,
110+
}), nil
111+
}
112+
90113
func userToAPIResponse(user *protocol.User) *v1.User {
91114
name := user.Name
92115
if name == "" {

components/public-api/gitpod/experimental/v1/user.proto

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ service UserService {
5252

5353
rpc GetGitToken(GetGitTokenRequest) returns (GetGitTokenResponse) {}
5454

55+
// GetSuggestedRepos returns a list of suggested repositories to open for the user.
56+
rpc GetSuggestedRepos(GetSuggestedReposRequest) returns (GetSuggestedReposResponse) {}
57+
5558
rpc BlockUser(BlockUserRequest) returns (BlockUserResponse) {}
5659
}
5760

@@ -131,6 +134,13 @@ message GitToken {
131134
string value = 7;
132135
}
133136

137+
message GetSuggestedReposRequest {
138+
}
139+
140+
message GetSuggestedReposResponse {
141+
repeated string repos = 1;
142+
}
143+
134144
message BlockUserRequest {
135145
// the ID of a User to block
136146
string user_id = 1;

0 commit comments

Comments
 (0)