@apistudio/apim-cli
Version:
CLI for API Management Products
35 lines • 2.14 kB
TypeScript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { BranchNode } from "../models/branch-node.model.js";
import { CommitInput } from "../models/commit-input.model.js";
import { CommitResponse } from "../models/commit-response.model.js";
import { FileBlobResponse } from "../models/file-blob-response.model.js";
import { OAuthDeviceExchange, OAuthDeviceInfo, OAuthExchange } from "../models/oauth-exchange.model.js";
import { OAuthTokenResponse } from "../models/oauth-token-response.model.js";
import { RepositoryNode } from "../models/repository-node.model.js";
import { RepositoryTreeResponse } from "../models/repository-tree-response.model.js";
import { Repository, RepositoryBranch, RepositoryTree, FetchFileBlob, CreateBranch } from "../models/repository.model.js";
import { UserInfo } from "../models/user-info.model.js";
import { VCSConfig } from "../models/vcs-config.model.js";
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
export interface IVcsStrategy {
getAllRepository(data: VCSConfig): Promise<RepositoryNode[]>;
getRepositoryByName(data: Repository): Promise<RepositoryNode | null>;
getLatestCommitIdForBranch(data: RepositoryBranch): Promise<string | undefined>;
fetchRepositoryTree(data: RepositoryTree): Promise<RepositoryTreeResponse | undefined>;
fetchBlobContent(data: FetchFileBlob): Promise<FileBlobResponse | undefined>;
getRepositoryBranches(data: RepositoryBranch): Promise<BranchNode[]>;
getProviderOAuthURL(): string;
handleOAuthTokenExchange(data: OAuthExchange): Promise<OAuthTokenResponse>;
handleOAuthDeviceTokenExchange(data: OAuthDeviceExchange): Promise<OAuthTokenResponse>;
getOAuthDeviceToken(clientID: string): Promise<OAuthDeviceInfo>;
getProviderEnterpriseCloudURL(): string;
getUserInfo(token: string, serverUrl?: string): Promise<UserInfo>;
createRepositoryBranch(data: CreateBranch): Promise<void>;
deleteRepositoryBranch(data: RepositoryBranch): Promise<void>;
commitToRemoteRepository(data: CommitInput): Promise<CommitResponse>;
}
//# sourceMappingURL=vcs-strategy.interface.d.ts.map