@codefresh-io/cf-git-providers
Version:
An NPM module/CLI for interacting with various git providers
140 lines • 4.19 kB
TypeScript
import { Provider, Branch, Repository, Webhook, ProviderName, User, PullRequest, RepositoryPermission, PermissionScopes, GitAuth, RefreshTokenHandler } from './types';
import { RetryConfigMap } from '../helpers/request-retry';
export default class Gitlab implements Provider {
private baseUrl;
private authenticationHeader;
private timeout;
private agent?;
private auth;
private refreshTokenHandler?;
private retryConfig?;
constructor(opts: {
password: string;
refreshToken?: string;
apiURL?: string;
timeout?: number;
insecure?: boolean;
apiUrl?: string;
apiVersion?: string;
refreshTokenHandler?: RefreshTokenHandler;
retryConfig?: RetryConfigMap;
});
createRepository(opt: {
owner: string;
repo: string;
autoInit?: boolean;
private?: boolean;
}): Promise<Repository>;
private shouldRefreshToken;
private updateAuth;
private performAPICall;
private getPaginatedResults;
getName(): ProviderName;
fetchRawFile(opt: {
owner: string;
repo: string;
ref: string;
path: string;
}): Promise<string>;
getBranch(opt: {
owner: string;
repo: string;
branch: string;
}): Promise<Branch>;
getRepository(opt: {
owner: string;
repo: string;
}): Promise<Repository>;
listBranches(opt: {
owner: string;
repo: string;
limit?: number;
page?: number;
}): Promise<Branch[]>;
createBranch(): Promise<Branch>;
listRepositoriesForOwner(opt: {
owner: string;
sort?: 'name' | 'pushed' | 'created';
direction?: 'desc' | 'asc';
limit?: number;
page?: number;
}): Promise<Repository[]>;
listWebhooks(opt: {
owner: string;
repo: string;
limit?: number;
page?: number;
}): Promise<Webhook[]>;
createRepositoryWebhook(opt: {
owner: string;
repo: string;
endpoint: string;
secret: string;
}): Promise<Webhook>;
deleteRepositoryWebhook(opt: {
owner: string;
repo: string;
hookId: number;
}): Promise<void>;
listRepositoriesWithAffiliation(opt: {
affiliation?: string;
sort?: 'name' | 'pushed' | 'created';
direction?: 'desc' | 'asc';
limit?: number;
page?: number;
}): Promise<Repository[]>;
listOrganizations(opt: {
limit?: number;
page?: number;
}): Promise<string[]>;
listRepositoriesForOrganization(opt: {
organization: string;
sort?: 'name' | 'pushed' | 'created';
direction?: 'desc' | 'asc';
limit?: number;
page?: number;
}): Promise<Repository[]>;
createCommitStatus(opt: {
owner: string;
repo: string;
sha: string;
targetUrl: string;
state: string;
description: string;
context: string;
}): Promise<void>;
getUser(opt?: {
username?: string;
}): Promise<User>;
getUserByEmail(email: 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;
};
assertReadScope(): Promise<any>;
assertWriteScope(repoUrl: string): Promise<any>;
assertAdminScope(): Promise<any>;
getGroupId(opt: {
groupName: string;
}): Promise<number>;
toOwnerRepo(fullRepoName: string): [string, string];
getAuth(): GitAuth;
isTokenMutable(): boolean;
requiresRepoToCheckTokenScopes(): boolean;
useAdminForUserPermission(): boolean;
}
//# sourceMappingURL=gitlab.d.ts.map