Skip to content
Draft
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,23 @@ export interface IsRepoAuthorizedReq {
repoUrl: string;
credRef: string;
}
export interface GetAuthorizedGitOrgsReq {
orgId: string;
credRef: string;
}

export interface Repo {
name: string;
}

export interface UserRepo {
orgName: string;
repositories: Repo[];
}

export interface GetAuthorizedGitOrgsResp {
gitOrgs: UserRepo[];
}
export interface GetComponentItemReq {
orgId: string;
projectHandle: string;
Expand Down Expand Up @@ -405,6 +422,7 @@ export interface IChoreoRPCClient {
getBuildPacks(params: BuildPackReq): Promise<Buildpack[]>;
getRepoBranches(params: GetBranchesReq): Promise<string[]>;
isRepoAuthorized(params: IsRepoAuthorizedReq): Promise<IsRepoAuthorizedResp>;
getAuthorizedGitOrgs(params: GetAuthorizedGitOrgsReq): Promise<GetAuthorizedGitOrgsResp>;
getCredentials(params: GetCredentialsReq): Promise<CredentialItem[]>;
deleteComponent(params: DeleteCompReq): Promise<void>;
getBuilds(params: GetBuildsReq): Promise<BuildKind[]>;
Expand Down Expand Up @@ -462,6 +480,9 @@ export class ChoreoRpcWebview implements IChoreoRPCClient {
isRepoAuthorized(params: IsRepoAuthorizedReq): Promise<IsRepoAuthorizedResp> {
return this._messenger.sendRequest(ChoreoRpcIsRepoAuthorizedRequest, HOST_EXTENSION, params);
}
getAuthorizedGitOrgs(params: GetAuthorizedGitOrgsReq): Promise<GetAuthorizedGitOrgsResp> {
return this._messenger.sendRequest(ChoreoRpcGetAuthorizedGitOrgsRequest, HOST_EXTENSION, params);
}
getCredentials(params: GetCredentialsReq): Promise<CredentialItem[]> {
return this._messenger.sendRequest(ChoreoRpcGetCredentialsRequest, HOST_EXTENSION, params);
}
Expand Down Expand Up @@ -559,6 +580,8 @@ export const ChoreoRpcCreateComponentRequest: RequestType<CreateComponentReq, Co
export const ChoreoRpcGetBuildPacksRequest: RequestType<BuildPackReq, Buildpack[]> = { method: "rpc/component/getBuildPacks" };
export const ChoreoRpcGetBranchesRequest: RequestType<GetBranchesReq, string[]> = { method: "rpc/repo/getBranches" };
export const ChoreoRpcIsRepoAuthorizedRequest: RequestType<IsRepoAuthorizedReq, IsRepoAuthorizedResp> = { method: "rpc/repo/isRepoAuthorized" };
export const ChoreoRpcGetAuthorizedGitOrgsRequest: RequestType<GetAuthorizedGitOrgsReq, GetAuthorizedGitOrgsResp> = { method: "rpc/repo/getAuthorizedGitOrgs" };
export const ChoreoRpcGetAuthorizedReposRequest: RequestType<IsRepoAuthorizedReq, IsRepoAuthorizedResp> = { method: "rpc/repo/getAuthorizedRepos" };
export const ChoreoRpcGetCredentialsRequest: RequestType<GetCredentialsReq, CredentialItem[]> = { method: "rpc/repo/getCredentials" };
export const ChoreoRpcDeleteComponentRequest: RequestType<DeleteCompReq, void> = { method: "rpc/component/delete" };
export const ChoreoRpcCreateBuildRequest: RequestType<CreateBuildReq, BuildKind> = { method: "rpc/build/create" };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ import type {
DeploymentLogsData,
DeploymentTrack,
Environment,
GetAuthorizedGitOrgsReq,
GetAuthorizedGitOrgsResp,
GetAutoBuildStatusReq,
GetAutoBuildStatusResp,
GetBranchesReq,
Expand Down Expand Up @@ -78,6 +80,7 @@ import type {
ToggleAutoBuildReq,
ToggleAutoBuildResp,
UserInfo,
UserRepo,
} from "@wso2/wso2-platform-core";
import { type MessageConnection, Trace, type Tracer } from "vscode-jsonrpc";
import { handlerError } from "../error-utils";
Expand Down Expand Up @@ -260,6 +263,14 @@ export class ChoreoRPCClient implements IChoreoRPCClient {
return response.userInfo;
}

async getAuthorizedGitOrgs(params: GetAuthorizedGitOrgsReq) {
if (!this.client) {
throw new Error("RPC client is not initialized");
}
const response = await this.client.sendRequest<{ gitOrgs: UserRepo[] }>("repo/getAuthorizedGitOrgs", params);
return { gitOrgs: response.gitOrgs };
}

async getSignInUrl({
baseUrl,
callbackUrl,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import {
ChoreoRpcDeleteConnection,
ChoreoRpcDisableAutoBuild,
ChoreoRpcEnableAutoBuild,
ChoreoRpcGetAuthorizedGitOrgsRequest,
ChoreoRpcGetAutoBuildStatus,
ChoreoRpcGetBranchesRequest,
ChoreoRpcGetBuildLogs,
Expand All @@ -55,6 +56,7 @@ import {
ChoreoRpcIsRepoAuthorizedRequest,
ChoreoRpcPromoteProxyDeployment,
ChoreoRpcRequestPromoteApproval,
GetAuthorizedGitOrgsReq,
GetBranchesReq,
GetBuildsReq,
GetCommitsReq,
Expand Down Expand Up @@ -106,6 +108,7 @@ export function registerChoreoRpcResolver(messenger: Messenger, rpcClient: IChor
messenger.onRequest(ChoreoRpcGetBranchesRequest, (params:GetBranchesReq) => rpcClient.getRepoBranches(params));
messenger.onRequest(ChoreoRpcIsRepoAuthorizedRequest, (params:IsRepoAuthorizedReq) => rpcClient.isRepoAuthorized(params));
messenger.onRequest(ChoreoRpcGetCredentialsRequest, (params:GetCredentialsReq) => rpcClient.getCredentials(params));
messenger.onRequest(ChoreoRpcGetAuthorizedGitOrgsRequest, (params:GetAuthorizedGitOrgsReq) => rpcClient.getAuthorizedGitOrgs(params));
messenger.onRequest(ChoreoRpcDeleteComponentRequest, async (params: Parameters<IChoreoRPCClient["deleteComponent"]>[0]) => {
const extName = webviewStateStore.getState().state.extensionName;
return window.withProgress(
Expand Down
Loading
Loading