UNPKG

backport

Version:

A CLI tool that automates the process of backporting commits

65 lines 3.04 kB
/** Public module API for programmatic consumers. Re-exports types and wraps backportRun. */ import { backportRun as run } from './backport-run.js'; import { fetchCommitsByPullNumber } from './lib/github/v4/fetchCommits/fetch-commit-by-pull-number.js'; import { fetchCommitBySha } from './lib/github/v4/fetchCommits/fetch-commit-by-sha.js'; import { fetchCommitsByAuthor } from './lib/github/v4/fetchCommits/fetch-commits-by-author.js'; import { fetchPullRequestsBySearchQuery } from './lib/github/v4/fetchCommits/fetch-pull-requests-by-search-query.js'; import { getOptionsFromGithub as _getOptionsFromGithub } from './lib/github/v4/getOptionsFromGithub/get-options-from-github.js'; import { initLogger } from './lib/logger.js'; import { excludeUndefined } from './utils/exclude-undefined.js'; export { getTargetBranchFromLabel } from './lib/sourceCommit/get-pull-request-states.js'; export { BackportError } from './lib/backport-error.js'; export { getGlobalConfig } from './options/config/global-config.js'; export { getProjectConfig } from './options/config/project-config.js'; // wrap `getOptionsFromGithub` with logger export function getOptionsFromGithub(options) { initLogger({ interactive: false, githubToken: options.githubToken }); return _getOptionsFromGithub(options); } export async function backportRun({ options = {}, processArgs = [], exitCodeOnFailure = true, }) { return run({ optionsFromModule: excludeUndefined(options), processArgs, exitCodeOnFailure, }); } export async function getCommits(options) { initLogger({ interactive: false, githubToken: options.githubToken }); const optionsFromGithub = await _getOptionsFromGithub(options); if (options.pullNumber) { const pullNumbers = Array.isArray(options.pullNumber) ? options.pullNumber : [options.pullNumber]; const nestedCommits = await Promise.all(pullNumbers.map((pullNumber) => fetchCommitsByPullNumber({ ...optionsFromGithub, ...options, pullNumber, }))); return nestedCommits.flat(); } if (options.sha) { const shas = Array.isArray(options.sha) ? options.sha : [options.sha]; return Promise.all(shas.map((sha) => fetchCommitBySha({ ...optionsFromGithub, ...options, sha }))); } if (options.prQuery) { return fetchPullRequestsBySearchQuery({ ...optionsFromGithub, ...options, prQuery: options.prQuery, author: options.author ?? null, since: options.since ?? null, until: options.until ?? null, }); } if (options.author) { return fetchCommitsByAuthor({ ...optionsFromGithub, ...options, author: options.author, since: options.since ?? null, until: options.until ?? null, }); } throw new Error('Must supply one of: `pullNumber`, `sha`, `prQuery` or `author`'); } //# sourceMappingURL=entrypoint.api.js.map