@halospv3/hce.shared-config
Version:
Automate commit message quality, changelogs, and CI/CD releases. Exports a semantic-release shareable configuration deserialized from this package's '.releaserc.yml'. Shared resources for .NET projects are also distributed with this package.
89 lines (87 loc) • 4.16 kB
TypeScript
/* eslint-disable jsdoc/tag-lines, jsdoc/require-param, jsdoc/require-returns */
/**
* @see {@link ../node_modules/@semantic-release/git/index.js}
*/
declare module '@semantic-release/git' {
import type { GlobalConfig, PrepareContext, VerifyConditionsContext } from 'semantic-release';
export type MicromatchGlob = string;
export interface AssetObject {
path: MicromatchGlob;
}
export type AssetEntry = AssetObject | MicromatchGlob;
export interface Options {
/**
* Files to include in the release commit. Set to `false` to disable adding files to the release commit.
* @default ['CHANGELOG.md','package.json','package-lock.json','npm-shrinkwrap.json']
* @description
* Can be an Array or a single entry. Each entry can be either:
* - a glob
* - or an Object with a path property containing a glob.
*
* Each entry in the assets Array is globbed individually. A glob can be a String ("dist/\*\*\/\*.js" or "dist/mylib.js") or an Array of Strings that will be globbed together (["dist/\*\*", "!\*\*\/\*.css"]).
*
* If a directory is configured, all the files under this directory and its children will be included.
*
* Note: If a file has a match in assets it will be included even if it also has a match in .gitignore.
*
* @example
* // include all js files in the dist directory, but not in its sub-directories.
* 'dist/*.js'
* // include all js files in the dist directory and its sub-directories.
* 'dist/**\/*.js'
* // include all files in the dist directory and its sub-directories excluding the css files.
* [['dist', '!**\/*.css']]
* // include package.json and all files in the dist directory and its sub-directories excluding the css files.
* [['dist', '!**\/*.css'], 'package.json']
* // include all js and css files in the dist directory and its sub-directories excluding the minified version.
* [['dist/**\/*.{js,css}', '!**\/*.min.*']]
*/
assets?: AssetEntry | AssetEntry[] | false;
/**
* The message for the release commit.
* @default `chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}`
* @description
* The message for the release commit is generated with Lodash template. The following variables are available:
* | Parameter | Description |
* | ----------------- | ----------- |
* | branch | The branch from which the release is done. |
* | branch.name | The branch name. |
* | branch.type | The type of branch. |
* | branch.channel | The distribution channel on which to publish releases from this branch. |
* | branch.range | The range of semantic versions to support on this branch. |
* | branch.prerelease | The pre-release detonation to append to semantic versions released from this branch. |
* | lastRelease | Object with version, gitTag and gitHead of the last release. |
* | nextRelease | Object with version, gitTag, gitHead and notes of the release being done. |
*
* Note: It is recommended to include `[skip ci]` in the commit message to not trigger a new build. Some CI service support the `[skip ci]` keyword only in the subject of the message.
*
* #### `message` examples
* The `message` `Release <%= nextRelease.version %> - <%= new Date().toLocaleDateString('en-US', {year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' }) %> [skip ci]\n\n<%= nextRelease.notes %>` will generate the commit message:
* > Release v1.0.0 - Oct. 21, 2015 1:24 AM [skip ci]
* >
* > ## 1.0.0
* >
* > ### Features
* > * Generate 1.21 gigawatts of electricity
* >
* > ...
*
*/
message?: string;
}
function verifyConditions(
pluginConfig: Options,
context: VerifyConditionsContext & {
options: {
prepare: unknown;
};
},
): void;
function prepare(
pluginConfig: Options,
context: PrepareContext & {
options: GlobalConfig;
},
): Promise<void>;
export { prepare, verifyConditions };
}