backport
Version:
A CLI tool that automates the process of backporting commits
65 lines • 3.04 kB
JavaScript
/** 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