@codefresh-io/cf-git-providers
Version:
An NPM module/CLI for interacting with various git providers
110 lines • 3.56 kB
TypeScript
import { ProviderName, Provider, Branch, Repository, Webhook, User, PullRequest, RepositoryPermission, PermissionScopes, GitAuth, RefreshTokenHandler, BitbucketAuthTypes, RepositoryFilters } from './types';
import { RetryConfigMap } from '../helpers/request-retry';
export default class Bitbucket implements Provider {
private baseUrl;
private apiPrefix;
private authenticationHeader;
private timeout;
private agent?;
private retryConfig?;
private auth;
private refreshTokenHandler?;
constructor(opts: {
password: string;
username?: string;
refreshToken?: string;
expires?: number;
type: BitbucketAuthTypes;
apiURL?: string;
timeout?: number;
insecure?: boolean;
retryConfig?: RetryConfigMap;
refreshTokenHandler?: RefreshTokenHandler;
});
getName(): ProviderName;
private shouldRefreshToken;
private updateAuth;
private doRefreshToken;
private performAPICall;
private paginate;
private paginateWithNext;
createRepository(opt: {
owner: string;
repo: string;
autoInit?: boolean;
private?: boolean;
}): Promise<Repository>;
fetchRawFile(opts: {
owner: string;
repo: string;
ref: string;
path: string;
}): Promise<string>;
getBranch(opts: {
owner: string;
repo: string;
branch: string;
}): Promise<Branch>;
getRepository(opts: {
owner: string;
repo: string;
}): Promise<Repository>;
listBranches(opts: {
owner: string;
repo: string;
limit?: number;
page?: number;
branchMatchingName?: string;
}): Promise<Branch[]>;
createBranch(): Promise<Branch>;
listRepositoriesForOwner(): Promise<Repository[]>;
createRepositoryWebhook(): Promise<Webhook>;
listWebhooks(): Promise<Webhook[]>;
deleteRepositoryWebhook(): Promise<void>;
listRepositoriesWithAffiliation(opt: {
affiliation?: string;
sort?: 'name' | 'pushed' | 'created';
direction?: 'desc' | 'asc';
limit?: number;
page?: number;
filters?: RepositoryFilters;
}): Promise<Repository[]>;
listOrganizations(opt: {
limit?: number;
page?: number;
}): Promise<string[]>;
listRepositoriesForOrganization(): Promise<Repository[]>;
createCommitStatus(): Promise<void>;
getUser(opt?: {
username?: string;
orgRepo?: string;
commitHash?: string;
}): Promise<User>;
getUserByEmail(email: string, orgRepo?: string, commitHash?: string): Promise<User>;
getPullRequestFiles(): Promise<string[]>;
getPullRequest(): Promise<PullRequest>;
searchMergedPullRequestByCommitSha(): Promise<PullRequest | undefined>;
createPullRequest(): Promise<PullRequest>;
getRepositoryPermissions(opt: {
owner: string;
repo: string;
user?: string;
}): Promise<RepositoryPermission>;
assertApiScopes(opt: {
scopes: PermissionScopes[];
repoUrl?: string;
}): Promise<void>;
validateToken(): Promise<void>;
skipPermissionsValidation(): {
skip: boolean;
reason?: string;
};
toOwnerRepo(fullRepoName: string): [string, string];
getAuth(): GitAuth;
isTokenMutable(): boolean;
requiresRepoToCheckTokenScopes(): boolean;
private getCurrentUser;
private getUserFromCommit;
useAdminForUserPermission(): boolean;
}
//# sourceMappingURL=bitbucket.d.ts.map