@atomist/automation-client
Version:
Atomist API for software low-level client
32 lines • 1.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ActionResult_1 = require("../../action/ActionResult");
const gitHub_1 = require("../../util/gitHub");
const GitHubRepoRef_1 = require("../common/GitHubRepoRef");
/**
* Create an issue from a review, using Markdown
* @param {ProjectReview} pr
* @param {AllReposByDefaultParameters} params
* @param {string} name
* @return {any}
*/
exports.issueRaisingReviewRouter = (pr, params, name) => {
if (GitHubRepoRef_1.isGitHubRepoRef(pr.repoId)) {
const issue = toIssue(pr, name);
return gitHub_1.raiseIssue(params.targets.credentials.token, pr.repoId, issue)
.then(ap => ActionResult_1.successOn(pr.repoId));
}
else {
return Promise.resolve(ActionResult_1.failureOn(pr.repoId, new Error(`Not a GitHub Repo: ${JSON.stringify(pr.repoId)}`)));
}
};
function toIssue(pr, name) {
return {
title: `${pr.comments.length} problems found by ${name}`,
body: "Problems:\n\n" + pr.comments.map(c => toMarkdown(pr.repoId, c)).join("\n"),
};
}
function toMarkdown(grr, rc) {
return `-\t**${rc.severity}** - ${rc.category}: [${rc.detail}](${gitHub_1.deepLink(grr, rc.sourceLocation)})`;
}
//# sourceMappingURL=issueRaisingReviewRouter.js.map