Skip to content

[papi]: Add GetSuggestedRepoURLs #18514

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Aug 15, 2023
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions components/gitpod-protocol/go/gitpod-service.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ type APIInterface interface {
GetWorkspaceOwner(ctx context.Context, workspaceID string) (res *UserInfo, err error)
GetWorkspaceUsers(ctx context.Context, workspaceID string) (res []*WorkspaceInstanceUser, err error)
GetFeaturedRepositories(ctx context.Context) (res []*WhitelistedRepository, err error)
GetSuggestedContextURLs(ctx context.Context) (res []*string, err error)
GetWorkspace(ctx context.Context, id string) (res *WorkspaceInfo, err error)
IsWorkspaceOwner(ctx context.Context, workspaceID string) (res bool, err error)
CreateWorkspace(ctx context.Context, options *CreateWorkspaceOptions) (res *WorkspaceCreationResult, err error)
Expand Down Expand Up @@ -140,6 +141,8 @@ const (
FunctionGetWorkspaceUsers FunctionName = "getWorkspaceUsers"
// FunctionGetFeaturedRepositories is the name of the getFeaturedRepositories function
FunctionGetFeaturedRepositories FunctionName = "getFeaturedRepositories"
// FunctionGetSuggestedContextURLs is the name of the getSuggestedContextURLs function
FunctionGetSuggestedContextURLs FunctionName = "getSuggestedContextURLs"
// FunctionGetWorkspace is the name of the getWorkspace function
FunctionGetWorkspace FunctionName = "getWorkspace"
// FunctionIsWorkspaceOwner is the name of the isWorkspaceOwner function
Expand Down Expand Up @@ -1020,6 +1023,24 @@ func (gp *APIoverJSONRPC) ClosePort(ctx context.Context, workspaceID string, por
return
}

// GetSuggestedContextURLs calls getSuggestedContextURLs on the server
func (gp *APIoverJSONRPC) GetSuggestedContextURLs(ctx context.Context) (res []*string, err error) {
if gp == nil {
err = errNotConnected
return
}
var _params []interface{}

var result []*string
err = gp.C.Call(ctx, "getSuggestedContextURLs", _params, &result)
if err != nil {
return
}
res = result

return
}

// UpdateGitStatus calls UpdateGitStatus on the server
func (gp *APIoverJSONRPC) UpdateGitStatus(ctx context.Context, workspaceID string, status *WorkspaceInstanceRepoStatus) (err error) {
if gp == nil {
Expand Down
88 changes: 44 additions & 44 deletions components/gitpod-protocol/go/mock.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions components/public-api-server/pkg/apiv1/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,29 @@ func (s *UserService) GetGitToken(ctx context.Context, req *connect.Request[v1.G
}), nil
}

func (s *UserService) GetSuggestedRepoURLs(ctx context.Context, req *connect.Request[v1.GetSuggestedRepoURLsRequest]) (*connect.Response[v1.GetSuggestedRepoURLsResponse], error) {
conn, err := getConnection(ctx, s.connectionPool)
if err != nil {
return nil, err
}

reposPtrs, err := conn.GetSuggestedContextURLs(ctx)
if err != nil {
return nil, proxy.ConvertError(err)
}

repos := make([]string, len(reposPtrs))
for i, repoPtr := range reposPtrs {
if repoPtr != nil {
repos[i] = *repoPtr
}
}

return connect.NewResponse(&v1.GetSuggestedRepoURLsResponse{
Repos: repos,
}), nil
}

func userToAPIResponse(user *protocol.User) *v1.User {
name := user.Name
if name == "" {
Expand Down
45 changes: 20 additions & 25 deletions components/public-api/gitpod/experimental/v1/user.proto
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ message SSHKey {

service UserService {
// GetAuthenticatedUser gets the user info.
rpc GetAuthenticatedUser(GetAuthenticatedUserRequest) returns (GetAuthenticatedUserResponse) {};
rpc GetAuthenticatedUser(GetAuthenticatedUserRequest)
returns (GetAuthenticatedUserResponse) {};

// ListSSHKeys lists the public SSH keys.
rpc ListSSHKeys(ListSSHKeysRequest) returns (ListSSHKeysResponse) {};
Expand All @@ -52,24 +53,23 @@ service UserService {

rpc GetGitToken(GetGitTokenRequest) returns (GetGitTokenResponse) {}

rpc BlockUser(BlockUserRequest) returns (BlockUserResponse) {}
}
// GetSuggestedRepoURLs returns a list of suggested repositories to open for
// the user.
rpc GetSuggestedRepoURLs(GetSuggestedRepoURLsRequest)
returns (GetSuggestedRepoURLsResponse) {}

message GetAuthenticatedUserRequest {
rpc BlockUser(BlockUserRequest) returns (BlockUserResponse) {}
}

message GetAuthenticatedUserResponse {
User user = 1;
}
message GetAuthenticatedUserRequest {}

message GetAuthenticatedUserResponse { User user = 1; }

message ListSSHKeysRequest {
// TODO: pagination options
// TODO: pagination options
}

message ListSSHKeysResponse {
repeated SSHKey keys = 1;
}
message ListSSHKeysResponse { repeated SSHKey keys = 1; }

message CreateSSHKeyRequest {
// name is the SSH key name
Expand All @@ -79,34 +79,25 @@ message CreateSSHKeyRequest {
string key = 2;
}

message CreateSSHKeyResponse {
SSHKey key = 1;
}
message CreateSSHKeyResponse { SSHKey key = 1; }

message GetSSHKeyRequest {
// id is the unique identifier of the SSH key to retreive.
string key_id = 1;
}

message GetSSHKeyResponse {
SSHKey key = 1;
}
message GetSSHKeyResponse { SSHKey key = 1; }

message DeleteSSHKeyRequest {
// id is the unique identifier of the SSH key to retreive.
string key_id = 1;
}

message DeleteSSHKeyResponse {
}
message DeleteSSHKeyResponse {}

message GetGitTokenRequest {
string host = 1;
}
message GetGitTokenRequest { string host = 1; }

message GetGitTokenResponse {
GitToken token = 1;
}
message GetGitTokenResponse { GitToken token = 1; }

message GitToken {
// expiry_date is the date when the token will expire
Expand All @@ -131,6 +122,10 @@ message GitToken {
string value = 7;
}

message GetSuggestedRepoURLsRequest {}

message GetSuggestedRepoURLsResponse { repeated string repos = 1; }

message BlockUserRequest {
// the ID of a User to block
string user_id = 1;
Expand Down
Loading