UNPKG

jest-github-reporter

Version:
100 lines 5.92 kB
"use strict"; var __values = (this && this.__values) || function(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var path_1 = __importDefault(require("path")); var strip_ansi_1 = __importDefault(require("strip-ansi")); var create_check_1 = __importDefault(require("create-check")); var APP_ID = 38833; /** * Before you say anything I *know* this is horribly insecure. * * If we were not to to this then every user would have to create * their own GitHub App and manage the APP_ID and PRIVATE_KEY through * env vars. * * How could this go wrong? Well this PRIVATE_KEY only creates jwt * tokens that work on people who have installed the Jest Results * App. If an attacker got ahold of the token they could only read repo * metadata and read/write checks. So the attack surface is really only * messing with a users checks, which is not too risky. */ var PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEAwKPGnXvRdbkXXaIzw2YV4ykKCx6Lx1N+FAByUvQ5k7XaaSsi\nX7MFx3XJlUVMNf47ur5NQ2KjkDqA4Q9alb99yxUzSnsLBsHWQKEUZKmP86dqe2Ku\na2XG+GYtUnaaRrAsj8BWqFZ1Hq38P8ge8BIA51+pgpYOsX3imT5PhJfloeMXCMQ4\nGU+nJf8s0DzxRav3THzDKfzbQ487B1CbcTcEM70v+lFCKX36AzssYnKiEEyDOlUO\n6HkwQB+CTvQgB51JatmFFFZfCgnjYPQHtO6YqFWn8QBF0s9wHhoHWBNx+ZKoOVKw\nqOKcFwYmHdAzpuLmt0gGp4ewBswImJVpsekBQQIDAQABAoIBADp5/LKVgXHQ68za\njggElyRLsubJMPki2STNNecEh+3UyCYgl+ChAWIY2UZcsNO7BvqbBe0spiYD/FdV\nR9QpOtBI8Tbsvt4gPR+FRiGAb1gxO9uUiwnC7XE94wgjRJWsqPpCEowrIoZbnjTm\nVK3faTLTESu4zWEHq5+FELJZQbWwJ/SjJkA1viizBLSLCnhlMzsabHZHKtLPvZJ0\ntnRPVidp1hzQzDOIQBdojUvMZ3evLqYL1pwoRnqitotuchDprTUqGfBLFy1A+1iK\nQqPpHnDe8oEeITOi8cJhOmyk2ZmkSIyRmqZi9Cf/lItQBKws8aHUIoex7AfpXK30\n1mP1wAECgYEA+WIhAzEj7wXu/J+fPfZs0eW8htGtxQTQYpLztfxKGqS4spGJcj89\nga0MNvGAexNMsWW+n9SHNhVuJB7XSuxMrvXPuMPfwT1u910Ah/Wh+61saAOHRA+O\n3c+OyI2ojTchsoC3k1VZ0RTeDZXL870+wLmf1MqEOGovvnUx10oGfcECgYEAxcA7\nJJko/IbkCECtxcupIieZJdELDSkRdFZgVVHZcxwujJxyj2O/YZB31c6AaCbWnIO3\ns98SPhLLS4b10pEqR8FbCKKm9MiqWybAeWn14IM4EAgGRReWquTOWv/bDLjKphTr\noMm4lBm1dXrOfIuNyTOAJPIjJvtUCjfAroaCY4ECgYBllKIL0c1oREt3nXFY5PKo\ngOLNK8WTdgWH0YHyBAUPWz9chUmuPrJICvvpuW9zMoZP0DjYk9JLpmkJz4I0o5IM\nxlXJVgfjh6mWmsxnlRdZE+gPajiD8a5pDW2EpacddnKEakfcfKysLMrST80WyGQy\nTqobHC7FaANwmf4mSqHgQQKBgBwgCAlfgzXPVZVa5ZwxKCAEc8KuJZ08jw/1zQO1\nfXDivDghdCWysSCGNJUDJr4pb/KYxULe4jBT6fgW/NVy8gl8lZ73yzkbZSdLrqpW\nCLNi1lFpYsLm5PXvTu4gX55ClgfjB9Q5fHgL5AQOcFnEW2kXWw1mJtu/eSdu4Iex\n98+BAoGAOF4GUl/Aa6rJNgjBUNZjUomV+FJL3htuu1b3t2tLGnozPxFS6RPMWLvd\nAMBi+Wv6FzuOhZx6aIMlz/LEgC+s9o3S+mSlsp0/UoNcy7j1zSosb4C8QqXbTGRG\nsUdulK+rOI5aef3CRA2/j6V1expVZF/ttOsmybZcuUcSGxN1N5Q=\n-----END RSA PRIVATE KEY-----\n"; function createAnnotations(results) { var e_1, _a; var annotations = []; var _loop_1 = function (result) { var e_2, _a; var testFilePath = result.testFilePath, testResults = result.testResults; var _loop_2 = function (failure) { if ('location' in failure) { var _a = failure, _b = _a.location, location_1 = _b === void 0 ? {} : _b, failureMessages_1 = _a.failureMessages; if (location_1) { failureMessages_1.forEach(function (message) { var numbers = message.match(new RegExp(result.testFilePath + ":(\\d+):\\d+")); var start_line = numbers ? Number(numbers[1]) : location_1.line || 0; annotations.push({ path: path_1.default.relative(process.cwd(), testFilePath), start_line: start_line, end_line: start_line, annotation_level: 'failure', message: failureMessages_1.map(strip_ansi_1.default).join('\n') }); }); } } }; try { for (var testResults_1 = (e_2 = void 0, __values(testResults)), testResults_1_1 = testResults_1.next(); !testResults_1_1.done; testResults_1_1 = testResults_1.next()) { var failure = testResults_1_1.value; _loop_2(failure); } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (testResults_1_1 && !testResults_1_1.done && (_a = testResults_1.return)) _a.call(testResults_1); } finally { if (e_2) throw e_2.error; } } }; try { for (var results_1 = __values(results), results_1_1 = results_1.next(); !results_1_1.done; results_1_1 = results_1.next()) { var result = results_1_1.value; _loop_1(result); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (results_1_1 && !results_1_1.done && (_a = results_1.return)) _a.call(results_1); } finally { if (e_1) throw e_1.error; } } return annotations; } exports.default = (function (results) { return create_check_1.default({ tool: 'Jest', name: 'Test', annotations: createAnnotations(results.testResults), errorCount: results.numFailedTests, appId: process.env.JEST_APP_ID ? Number(process.env.JEST_APP_ID) : APP_ID, privateKey: process.env.JEST_PRIVATE_KEY || PRIVATE_KEY }); }); //# sourceMappingURL=create-check.js.map