release-it
Version:
Generic CLI tool to automate versioning and package publishing-related tasks.
206 lines (140 loc) • 4.11 kB
TypeScript
import { Hooks } from './hooks';
export interface Config {
hooks?: Hooks;
plugins?: Record<string, Record<string, any>>;
git?: {
/** @default "git log --pretty=format:\"* %s (%h)\" ${from}...${to}" */
changelog?: string;
/** @default true */
requireCleanWorkingDir?: boolean;
/** @default false */
requireBranch?: false | string;
/** @default true */
requireUpstream?: boolean;
/** @default false */
requireCommits?: boolean;
/** @default true */
requireCommitsFail?: boolean;
/** @default "" */
commitsPath?: string;
/** @default false */
addUntrackedFiles?: boolean;
/** @default true */
commit?: boolean;
/** @default "Release ${version}" */
commitMessage?: string;
commitArgs?: Array<any>;
/** @default true */
tag?: boolean;
/** @default null */
tagExclude?: any;
/** @default null */
tagName?: any;
/** @default null */
tagMatch?: any;
/** @default false */
getLatestTagFromAllRefs?: boolean;
/** @default "Release ${version}" */
tagAnnotation?: string;
tagArgs?: Array<any>;
/** @default true */
push?: boolean;
/** @default ["--follow-tags"] */
pushArgs?: Array<string>;
/** @default "" */
pushRepo?: string;
};
npm?: {
/** @default true */
publish?: boolean;
/** @default "." */
publishPath?: string;
publishArgs?: Array<any>;
/** @default null */
tag?: any;
/** @default null */
otp?: any;
/** @default false */
ignoreVersion?: boolean;
/** @default false */
allowSameVersion?: boolean;
versionArgs?: Array<any>;
/** @default false */
skipChecks?: boolean;
/** @default 10 */
timeout?: number;
};
github?: {
/** @default false */
release?: boolean;
/** @default "Release ${version}" */
releaseName?: string;
/** @default null */
releaseNotes?: string | null | (() => string | Promise<string>) | { commit?: string; excludeMatches?: string[] };
/** @default false */
autoGenerate?: boolean;
/** @default false */
preRelease?: boolean;
/** @default false */
draft?: boolean;
/** @default "GITHUB_TOKEN" */
tokenRef?: string;
/** @default null */
assets?: any;
/** @default null */
host?: any;
/** @default 0 */
timeout?: number;
/** @default null */
proxy?: any;
/**
* @default true
* 'legacy' - Github determines the latest release based on the release creation date and higher semantic version.
* See https://docs.github.com/en/rest/releases/releases?apiVersion=latest#create-a-release
*/
makeLatest?: boolean | 'legacy';
/** @default false */
discussionCategoryName?: boolean | string;
/** @default false */
skipChecks?: boolean;
/** @default false */
web?: boolean;
comments?: {
/** @default false */
submit?: boolean;
/** @default ":rocket?: _This issue has been resolved in v${version}. See [${releaseName}](${releaseUrl}) for release notes._" */
issue?: string;
/** @default ":rocket?: _This pull request is included in v${version}. See [${releaseName}](${releaseUrl}) for release notes._" */
pr?: string;
};
};
gitlab?: {
/** @default false */
release?: boolean;
/** @default "Release ${version}" */
releaseName?: string;
/** @default null */
releaseNotes?: any;
milestones?: Array<any>;
/** @default "GITLAB_TOKEN" */
tokenRef?: string;
/** @default "Private-Token" */
tokenHeader?: string;
/** @default null */
certificateAuthorityFile?: any;
/** @default false */
secure?: boolean;
/** @default null */
assets?: any;
/** @default false */
useIdsForUrls?: boolean;
/** @default false */
useGenericPackageRepositoryForAssets?: boolean;
/** @default "release-it" */
genericPackageRepositoryName?: string;
/** @default null */
origin?: any;
/** @default false */
skipChecks?: boolean;
};
}