@@ -3694,7 +3694,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36943694 return (mod && mod.__esModule) ? mod : { "default": mod };
36953695};
36963696Object.defineProperty(exports, "__esModule", ({ value: true }));
3697- exports.coverageMetrics = exports.createCoverageMetric = exports.authProject = exports.createGithubAccessToken = void 0;
3697+ exports.clonesMetrics = exports.createClonesMetric = exports. coverageMetrics = exports.createCoverageMetric = exports.authProject = exports.createGithubAccessToken = void 0;
36983698const axios_1 = __importDefault(__nccwpck_require__(96545));
36993699const config_1 = __nccwpck_require__(8919);
37003700// TODO: define api request response interfaces
@@ -3778,6 +3778,55 @@ const coverageMetrics = (accessToken, variables) => __awaiter(void 0, void 0, vo
37783778 return response.data.coverageMetrics;
37793779});
37803780exports.coverageMetrics = coverageMetrics;
3781+ const createClonesMetric = (accessToken, variables) => __awaiter(void 0, void 0, void 0, function* () {
3782+ const query = `mutation createClonesMetric(
3783+ $projectId: Int!,
3784+ $totalLinesPercentage: Float!,
3785+ $totalBranchesPercentage: Float!,
3786+ $ref: String!,
3787+ $sha: String!) {
3788+ createClonesMetric(input: {
3789+ projectId: $projectId,
3790+ totalLinesPercentage: $totalLinesPercentage,
3791+ totalBranchesPercentage: $totalBranchesPercentage,
3792+ ref: $ref,
3793+ sha: $sha }) {
3794+ id
3795+ totalLinesPercentage
3796+ totalBranchesPercentage
3797+ ref
3798+ sha
3799+ createdAt
3800+ updatedAt
3801+ }
3802+ }
3803+ `;
3804+ const response = yield makeRequest(accessToken, query, variables);
3805+ if (!response.data) {
3806+ throw new Error("Couldn't send your project clones metric. Check if `accessToken` is valid or receive new one by using `authProject` mutation");
3807+ }
3808+ return response.data.createClonesMetric;
3809+ });
3810+ exports.createClonesMetric = createClonesMetric;
3811+ const clonesMetrics = (accessToken, variables) => __awaiter(void 0, void 0, void 0, function* () {
3812+ const query = `query clonesMetrics($projectId: Int!, $ref: String, $dateTo: DateTime, $take: Int ) {
3813+ clonesMetrics(projectId: $projectId, ref:$ref, dateTo: $dateTo, take: $take){
3814+ id
3815+ ref
3816+ sha
3817+ totalLinesPercentage
3818+ totalBranchesPercentage
3819+ createdAt
3820+ }
3821+ }
3822+ `;
3823+ const response = yield makeRequest(accessToken, query, variables);
3824+ if (!response.data) {
3825+ return null;
3826+ }
3827+ return response.data.clonesMetrics;
3828+ });
3829+ exports.clonesMetrics = clonesMetrics;
37813830//# sourceMappingURL=endpoints.js.map
37823831
37833832/***/ }),
@@ -3847,13 +3896,13 @@ const fetchCoverage = (apiKey, ref) => __awaiter(void 0, void 0, void 0, functio
38473896exports.fetchCoverage = fetchCoverage;
38483897const sendCoverage = (apiKey, totalCoverage, ref, sha) => __awaiter(void 0, void 0, void 0, function* () {
38493898 const { accessToken, project } = yield (0, endpoints_1.authProject)({ apiKey });
3850- const [latestCoverage] = yield (0, endpoints_1.createCoverageMetric)(accessToken, {
3899+ const createdCoverage = yield (0, endpoints_1.createCoverageMetric)(accessToken, {
38513900 projectId: project.id,
38523901 ref,
38533902 sha,
38543903 totalCoverage
38553904 });
3856- return latestCoverage ? latestCoverage .totalCoverage : 0 ;
3905+ return createdCoverage .totalCoverage;
38573906});
38583907exports.sendCoverage = sendCoverage;
38593908//# sourceMappingURL=index.js.map
@@ -4072,8 +4121,8 @@ exports.getChangedFiles = getChangedFiles;
40724121Object.defineProperty(exports, "__esModule", ({ value: true }));
40734122exports.getClonesReportBody = void 0;
40744123const getClonesReportBody = (title, statistic) => {
4075- const totalLines = `Total Lines: <b>${statistic.total.lines}% </b>`;
4076- const duplicatedLines = `Duplicated Lines: <b>${statistic.total.duplicatedLines}% </b>`;
4124+ const totalLines = `Total Lines: <b>${statistic.total.lines}</b>`;
4125+ const duplicatedLines = `Duplicated Lines: <b>${statistic.total.duplicatedLines}</b>`;
40774126 const description = `${totalLines}\n\n${duplicatedLines}`;
40784127 const body = `<h3>${title}</h3>${description}`;
40794128 return body;
@@ -50663,6 +50712,87 @@ module.exports = {
5066350712};
5066450713
5066550714
50715+ /***/ }),
50716+
50717+ /***/ 12069:
50718+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
50719+
50720+ const core = __nccwpck_require__(42186);
50721+ const { barecheckApi } = __nccwpck_require__(35396);
50722+
50723+ const { getBaseRefSha, getCurrentRefSha } = __nccwpck_require__(68383);
50724+ const { getBarecheckApiKey } = __nccwpck_require__(70006);
50725+
50726+ let projectAuthState = false;
50727+
50728+ const authProject = async () => {
50729+ if (!projectAuthState) {
50730+ const apiKey = getBarecheckApiKey();
50731+
50732+ const authProjectRes = await barecheckApi.authProject({
50733+ apiKey
50734+ });
50735+
50736+ projectAuthState = {
50737+ projectId: authProjectRes.project.id,
50738+ accessToken: authProjectRes.accessToken
50739+ };
50740+ }
50741+
50742+ return projectAuthState;
50743+ };
50744+
50745+ const cleanAuthProject = () => {
50746+ projectAuthState = false;
50747+ };
50748+
50749+ const getBaseBranchClones = async () => {
50750+ const { ref, sha } = getBaseRefSha();
50751+
50752+ core.info(`Getting metrics from Barecheck. ref=${ref}, sha=${sha}`);
50753+
50754+ const { projectId, accessToken } = await authProject();
50755+
50756+ const clonesMetrics = await barecheckApi.clonesMetrics(accessToken, {
50757+ projectId,
50758+ ref,
50759+ sha,
50760+ take: 1
50761+ });
50762+
50763+ return clonesMetrics[0] ? clonesMetrics[0].totalLinesPercentage : false;
50764+ };
50765+
50766+ const sendCurrentClones = async (
50767+ totalLinesPercentage,
50768+ totalBranchesPercentage
50769+ ) => {
50770+ const { ref, sha } = getCurrentRefSha();
50771+
50772+ const metricsMessage = `totalLinesPercentage=${totalLinesPercentage}, totalBranchesPercentage=${totalBranchesPercentage}`;
50773+ core.info(
50774+ `Sending metrics to Barecheck. ref=${ref}, sha=${sha}, ${metricsMessage}`
50775+ );
50776+
50777+ const { projectId, accessToken } = await authProject();
50778+
50779+ await barecheckApi.createClonesMetric(accessToken, {
50780+ projectId,
50781+ ref,
50782+ sha,
50783+ totalLinesPercentage,
50784+ totalBranchesPercentage
50785+ });
50786+ };
50787+
50788+ module.exports = {
50789+ getBaseBranchClones,
50790+ sendCurrentClones,
50791+ authProject,
50792+ cleanAuthProject
50793+ };
50794+
50795+
5066650796/***/ }),
5066750797
5066850798/***/ 68383:
@@ -50965,6 +51095,7 @@ const { detectClones } = __nccwpck_require__(17572);
5096551095const { getClonesReportBody, githubApi } = __nccwpck_require__(35396);
5096651096
5096751097const { getPullRequestContext, getOctokit } = __nccwpck_require__(68383);
51098+ const { sendCurrentClones } = __nccwpck_require__(12069);
5096851099
5096951100const { commentTitle } = __nccwpck_require__(34570);
5097051101
@@ -50985,6 +51116,11 @@ async function main() {
5098551116 searchBody: commentTitle,
5098651117 body
5098751118 });
51119+
51120+ await sendCurrentClones(
51121+ statistic.total.percentage,
51122+ statistic.total.percentageTokens
51123+ );
5098851124 } catch (err) {
5098951125 core.info(err);
5099051126 core.setFailed(err.message);
0 commit comments