backport
Version:
A CLI tool that automates the process of backporting commits
42 lines • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isMissingStatusChecksError = exports.enablePullRequestAutoMerge = void 0;
const generated_1 = require("../../../graphql/generated");
const graphqlClient_1 = require("./client/graphqlClient");
const fetchPullRequestId2_1 = require("./fetchPullRequestId2");
async function enablePullRequestAutoMerge(options, targetPullRequestNumber) {
const { accessToken, githubApiBaseUrlV4, autoMergeMethod = 'merge', } = options;
const pullRequestId = await (0, fetchPullRequestId2_1.fetchPullRequestId)(options, targetPullRequestNumber);
const query = (0, generated_1.graphql)(`
mutation EnablePullRequestAutoMerge(
$pullRequestId: ID!
$mergeMethod: PullRequestMergeMethod!
) {
enablePullRequestAutoMerge(
input: { pullRequestId: $pullRequestId, mergeMethod: $mergeMethod }
) {
pullRequest {
number
}
}
}
`);
const variables = {
pullRequestId,
mergeMethod: autoMergeMethod.toUpperCase(),
};
const client = (0, graphqlClient_1.getGraphQLClient)({ accessToken, githubApiBaseUrlV4 });
const result = await client.mutation(query, variables);
if (result.error) {
throw new graphqlClient_1.GithubV4Exception(result);
}
return result.data?.enablePullRequestAutoMerge?.pullRequest?.number;
}
exports.enablePullRequestAutoMerge = enablePullRequestAutoMerge;
function isMissingStatusChecksError(e) {
return e.result.error?.graphQLErrors.some((e) => e.extensions.type === 'UNPROCESSABLE' &&
(e.message.includes('Branch does not have required protected branch rules') ||
e.message.includes('Pull request is in clean status')));
}
exports.isMissingStatusChecksError = isMissingStatusChecksError;
//# sourceMappingURL=enablePullRequestAutoMerge.js.map