UNPKG

backport

Version:

A CLI tool that automates the process of backporting commits

98 lines 5.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCommits = exports.backportRun = exports.getOptionsFromGithub = exports.getProjectConfig = exports.getGlobalConfig = exports.BackportError = exports.getTargetBranchFromLabel = void 0; require("./lib/apm"); const elastic_apm_node_1 = __importDefault(require("elastic-apm-node")); const backportRun_1 = require("./backportRun"); const fetchCommitByPullNumber_1 = require("./lib/github/v4/fetchCommits/fetchCommitByPullNumber"); const fetchCommitBySha_1 = require("./lib/github/v4/fetchCommits/fetchCommitBySha"); const fetchCommitsByAuthor_1 = require("./lib/github/v4/fetchCommits/fetchCommitsByAuthor"); const fetchPullRequestsBySearchQuery_1 = require("./lib/github/v4/fetchCommits/fetchPullRequestsBySearchQuery"); const getOptionsFromGithub_1 = require("./lib/github/v4/getOptionsFromGithub/getOptionsFromGithub"); const logger_1 = require("./lib/logger"); const excludeUndefined_1 = require("./utils/excludeUndefined"); var getPullRequestStates_1 = require("./lib/sourceCommit/getPullRequestStates"); Object.defineProperty(exports, "getTargetBranchFromLabel", { enumerable: true, get: function () { return getPullRequestStates_1.getTargetBranchFromLabel; } }); var BackportError_1 = require("./lib/BackportError"); Object.defineProperty(exports, "BackportError", { enumerable: true, get: function () { return BackportError_1.BackportError; } }); var globalConfig_1 = require("./options/config/globalConfig"); Object.defineProperty(exports, "getGlobalConfig", { enumerable: true, get: function () { return globalConfig_1.getGlobalConfig; } }); var projectConfig_1 = require("./options/config/projectConfig"); Object.defineProperty(exports, "getProjectConfig", { enumerable: true, get: function () { return projectConfig_1.getProjectConfig; } }); // wrap `getOptionsFromGithub` with logger function getOptionsFromGithub(options) { (0, logger_1.initLogger)({ interactive: false, accessToken: options.accessToken }); return (0, getOptionsFromGithub_1.getOptionsFromGithub)(options); } exports.getOptionsFromGithub = getOptionsFromGithub; async function backportRun({ options = {}, processArgs = [], exitCodeOnFailure = true, }) { const apmTransaction = elastic_apm_node_1.default.startTransaction('API: backportRun'); const res = await (0, backportRun_1.backportRun)({ optionsFromModule: (0, excludeUndefined_1.excludeUndefined)(options), processArgs, exitCodeOnFailure, apmTransaction, }); elastic_apm_node_1.default.endTransaction(res.status); return res; } exports.backportRun = backportRun; async function getCommits(options) { return apmStartTransaction('API: getCommits', async () => { (0, logger_1.initLogger)({ interactive: false, accessToken: options.accessToken }); const optionsFromGithub = await (0, getOptionsFromGithub_1.getOptionsFromGithub)(options); if (options.pullNumber) { const pullNumbers = Array.isArray(options.pullNumber) ? options.pullNumber : [options.pullNumber]; const nestedCommits = await Promise.all(pullNumbers.map((pullNumber) => (0, fetchCommitByPullNumber_1.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) => (0, fetchCommitBySha_1.fetchCommitBySha)({ ...optionsFromGithub, ...options, sha }))); } if (options.prFilter) { return (0, fetchPullRequestsBySearchQuery_1.fetchPullRequestsBySearchQuery)({ ...optionsFromGithub, ...options, prFilter: options.prFilter, author: options.author ?? null, dateSince: options.dateSince ?? null, dateUntil: options.dateUntil ?? null, }); } if (options.author) { return (0, fetchCommitsByAuthor_1.fetchCommitsByAuthor)({ ...optionsFromGithub, ...options, author: options.author, dateSince: options.dateSince ?? null, dateUntil: options.dateUntil ?? null, }); } throw new Error('Must supply one of: `pullNumber`, `sha`, `prFilter` or `author`'); }); } exports.getCommits = getCommits; async function apmStartTransaction(transactionName, cb) { elastic_apm_node_1.default.startTransaction(transactionName); try { const res = await cb(); elastic_apm_node_1.default.endTransaction('success'); return res; } catch (e) { elastic_apm_node_1.default.captureError(e); elastic_apm_node_1.default.endTransaction('failure'); throw e; } } //# sourceMappingURL=entrypoint.api.js.map