backport
Version:
A CLI tool that automates the process of backporting commits
35 lines • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchCommitBySha = void 0;
const generated_1 = require("../../../../graphql/generated");
const BackportError_1 = require("../../../BackportError");
const remoteConfig_1 = require("../../../remoteConfig");
const parseSourceCommit_1 = require("../../../sourceCommit/parseSourceCommit");
const graphqlClient_1 = require("../client/graphqlClient");
async function fetchCommitBySha(options) {
const { accessToken, githubApiBaseUrlV4 = 'https://api.github.com/graphql', repoName, repoOwner, sha, sourceBranch, } = options;
const query = (0, generated_1.graphql)(`
query CommitsBySha($repoOwner: String!, $repoName: String!, $sha: String!) {
repository(owner: $repoOwner, name: $repoName) {
object(expression: $sha) {
__typename
...SourceCommitWithTargetPullRequestFragment
}
}
}
`);
const variables = { repoOwner, repoName, sha };
const client = (0, graphqlClient_1.getGraphQLClient)({ accessToken, githubApiBaseUrlV4 });
const result = await client.query(query, variables);
if (result.error && !(0, remoteConfig_1.isMissingConfigFileException)(result)) {
throw new graphqlClient_1.GithubV4Exception(result);
}
const { data } = result;
const sourceCommit = data?.repository?.object;
if (sourceCommit?.__typename !== 'Commit') {
throw new BackportError_1.BackportError(`No commit found on branch "${sourceBranch}" with sha "${sha}"`);
}
return (0, parseSourceCommit_1.parseSourceCommit)({ options, sourceCommit });
}
exports.fetchCommitBySha = fetchCommitBySha;
//# sourceMappingURL=fetchCommitBySha.js.map