UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

60 lines (44 loc) 2.07 kB
/** * Copyright IBM Corp. 2024, 2025 */ 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>; }