Skip to content

Commit

Permalink
fix: reinstate injecting remediation hints into snyk-test response
Browse files Browse the repository at this point in the history
  • Loading branch information
Konstantin Yegupov committed May 9, 2019
1 parent 7ae9199 commit c6527e8
Showing 1 changed file with 27 additions and 26 deletions.
53 changes: 27 additions & 26 deletions src/lib/snyk-test/nodejs/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,33 @@ async function runTest(packageManager: string, root: string, options): Promise<o
options.severityThreshold);
}

// For Node.js: inject additional information (for remediation etc.) into the response.
if (payload.modules) {
res.dependencyCount = payload.modules.numDependencies;
if (res.vulnerabilities) {
res.vulnerabilities.forEach((vuln) => {
if (payload.modules && payload.modules.pluck) {
const plucked = payload.modules.pluck(vuln.from, vuln.name, vuln.version);
vuln.__filename = plucked.__filename;
vuln.shrinkwrap = plucked.shrinkwrap;
vuln.bundled = plucked.bundled;

// this is an edgecase when we're testing the directly vuln pkg
if (vuln.from.length === 1) {
return;
}

const parentPkg = moduleToObject(vuln.from[1]);
const parent = payload.modules.pluck(vuln.from.slice(0, 2),
parentPkg.name,
parentPkg.version);
vuln.parentDepType = parent.depType;
}
});
}
}


analytics.add('vulns-pre-policy', res.vulnerabilities.length);

res.filesystemPolicy = !!payloadPolicy;
Expand Down Expand Up @@ -235,32 +262,6 @@ async function sendPayload(payload: Payload): Promise<any> {

body.filesystemPolicy = filesystemPolicy;

// This branch is valid for node modules flow only
if (payload.modules) {
body.dependencyCount = payload.modules.numDependencies;
if (body.vulnerabilities) {
body.vulnerabilities.forEach((vuln) => {
if (payload.modules && payload.modules.pluck) {
const plucked = payload.modules.pluck(vuln.from, vuln.name, vuln.version);
vuln.__filename = plucked.__filename;
vuln.shrinkwrap = plucked.shrinkwrap;
vuln.bundled = plucked.bundled;

// this is an edgecase when we're testing the directly vuln pkg
if (vuln.from.length === 1) {
return;
}

const parentPkg = moduleToObject(vuln.from[1]);
const parent = payload.modules.pluck(vuln.from.slice(0, 2),
parentPkg.name,
parentPkg.version);
vuln.parentDepType = parent.depType;
}
});
}
}

resolve(body);
});
});
Expand Down

0 comments on commit c6527e8

Please sign in to comment.