Skip to content

Commit

Permalink
feat: adding manifest file to vuln card if scanning multi-project
Browse files Browse the repository at this point in the history
  • Loading branch information
dotkas committed Dec 5, 2023
1 parent 6a578dc commit f741b90
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 5 deletions.
25 changes: 22 additions & 3 deletions src/lib/snyk-to-html.ts
Original file line number Diff line number Diff line change
Expand Up @@ -256,15 +256,34 @@ async function generateCodeTemplate(
}

function mergeData(dataArray: any[]): any {
const vulnsArrays = dataArray.map(project => project.vulnerabilities || []);
const vulnsArrays = dataArray.map((project) => {
if (!project.vulnerabilities) {
return [];
}

// Add project data to each of the vulnerabilities to display more
// details on each vulnerability card, in order to properly distinguish
// from which project a vuln is connected, in case of displaying multiple
// projects.
const vulns = project.vulnerabilities.map((vuln) => ({
...vuln,
displayTargetFile: project.displayTargetFile,
path: project.path
}));
return vulns;
});
const aggregateVulnerabilities = [].concat(...vulnsArrays);

const totalUniqueCount =
dataArray.reduce((acc, item) => acc + item.vulnerabilities.length || 0, 0);
const totalDepCount =
dataArray.reduce((acc, item) => acc + item.dependencyCount || 0, 0);

const paths = dataArray.map(project => ({ path: project.path, packageManager: project.packageManager }));
const paths = dataArray.map(project => ({
path: project.path,
packageManager: project.packageManager,
displayTargetFile: project.displayTargetFile,
}));

return {
vulnerabilities: aggregateVulnerabilities,
Expand Down Expand Up @@ -325,7 +344,7 @@ async function processCodeData(
const dataArray = Array.isArray(data) ? data : [data];

const OrderedIssuesArray = await processSourceCode(dataArray);

const totalIssues = dataArray[0].runs[0].results.length;
const processedData = {
projects: OrderedIssuesArray,
Expand Down
3 changes: 2 additions & 1 deletion tap-snapshots/test-snyk-to-html.test.ts-TAP.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2176,7 +2176,8 @@ exports[`test/snyk-to-html.test.ts TAP template output displays vulns in descend
<div class="source-panel">
<span>Scanned the following paths:</span>
<ul>
<li class="paths">./java-goof (maven)</li><li class="paths">./goof (npm)</li>
<li class="paths">./java-goof (maven)</li>
<li class="paths">./goof (npm)</li>
</ul>
</div>
Expand Down
12 changes: 11 additions & 1 deletion template/test-report.header.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,25 @@
<div class="source-panel">
<span>Scanned the following paths:</span>
<ul>
{{#each paths}}<li class="paths">{{path}} ({{packageManager}})</li>{{/each}}
{{#each paths}}
{{#if_not_eq packageManager "nuget"}}
<li class="paths">{{path}} ({{packageManager}})</li>
{{else}}
<li class="paths">{{path}}/{{displayTargetFile}} ({{packageManager}})</li>
{{/if_not_eq}}
{{/each}}
</ul>
</div>
{{/if}}
{{#if path}}
<div class="source-panel">
<span>Scanned the following path:</span>
<ul>
{{#if_not_eq packageManager "nuget"}}
<li class="paths">{{path}} ({{packageManager}})</li>
{{else}}
<li class="paths">{{path}}/{{dislpayTargetFile}} ({{packageManager}})</li>
{{/if_not_eq}}
</ul>
</div>
{{/if}}
Expand Down
5 changes: 5 additions & 0 deletions template/test-report.vuln-card.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@
<hr/>

<ul class="card__meta">
{{#if list.[0].displayTargetFile }}
<li class="card__meta__item">
Manifest file: {{list.[0].path}} <span class="list-paths__item__arrow">›</span> {{list.[0].displayTargetFile}}
</li>
{{/if}}
<li class="card__meta__item">
Package Manager: {{metadata.packageManager}}
</li>
Expand Down

0 comments on commit f741b90

Please sign in to comment.