From 7670c929b6b24093f80d54c052fce5d4144653c3 Mon Sep 17 00:00:00 2001 From: gitphill Date: Mon, 28 Oct 2019 16:26:35 +0000 Subject: [PATCH] fix: refactor pin remediation data structure Align Pin and Upgrade data structures, using 'vuln' instead of 'issues'. --- .../remediation-based-format-issues.ts | 6 +++--- src/lib/snyk-test/legacy.ts | 16 ++++++++++------ .../response-with-remediation.json | 6 +++--- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/cli/commands/test/formatters/remediation-based-format-issues.ts b/src/cli/commands/test/formatters/remediation-based-format-issues.ts index 5233a017db1..b51dec1f783 100644 --- a/src/cli/commands/test/formatters/remediation-based-format-issues.ts +++ b/src/cli/commands/test/formatters/remediation-based-format-issues.ts @@ -98,7 +98,7 @@ export function formatIssuesWithRemediation( ); const allVulnIds = new Set(); Object.keys(remediationInfo.pin).forEach((name) => - remediationInfo.pin[name].issues.forEach((vid) => allVulnIds.add(vid)), + remediationInfo.pin[name].vulns.forEach((vid) => allVulnIds.add(vid)), ); remediationInfo.unresolved = remediationInfo.unresolved.filter( (issue) => !allVulnIds.has(issue.id), @@ -260,7 +260,7 @@ function processUpgrades( const data = upgradesByDep[dep]; const upgradeDepTo = data.upgradeTo; const vulnIds = - (data as UpgradeRemediation).vulns || (data as PinRemediation).issues; + (data as UpgradeRemediation).vulns || (data as PinRemediation).vulns; const upgradeText = `\n Upgrade ${chalk.bold.whiteBright( dep, )} to ${chalk.bold.whiteBright(upgradeDepTo)} to fix\n`; @@ -328,7 +328,7 @@ function constructPinText( if (pinables.length) { for (const pkgName of pinables) { const data = pins[pkgName]; - const vulnIds = data.issues; + const vulnIds = data.vulns; const upgradeDepTo = data.upgradeTo; const upgradeText = `\n Pin ${chalk.bold.whiteBright( pkgName, diff --git a/src/lib/snyk-test/legacy.ts b/src/lib/snyk-test/legacy.ts index 021dd2d14a3..b4dfc6a59f1 100644 --- a/src/lib/snyk-test/legacy.ts +++ b/src/lib/snyk-test/legacy.ts @@ -201,12 +201,18 @@ export interface PatchObject { }; } -export interface UpgradeRemediation { - upgradeTo: string; - upgrades: string[]; +export interface Upgrade { + upgradeTo: string; // name@version +} + +export interface UpgradeVulns extends Upgrade { vulns: string[]; } +export interface UpgradeRemediation extends UpgradeVulns { + upgrades: string[]; +} + export interface PatchRemediation { paths: PatchObject[]; } @@ -215,9 +221,7 @@ export interface DependencyUpdates { [from: string]: UpgradeRemediation; } -export interface PinRemediation { - upgradeTo: string; - issues: string[]; +export interface PinRemediation extends UpgradeVulns { isTransitive: boolean; } diff --git a/test/acceptance/workspaces/pip-app-transitive-vuln/response-with-remediation.json b/test/acceptance/workspaces/pip-app-transitive-vuln/response-with-remediation.json index b30ad7f39cc..5131ee93c62 100644 --- a/test/acceptance/workspaces/pip-app-transitive-vuln/response-with-remediation.json +++ b/test/acceptance/workspaces/pip-app-transitive-vuln/response-with-remediation.json @@ -455,7 +455,7 @@ "pin": { "flask": { "upgradeTo": "1.0", - "issues": [ + "vulns": [ "SNYK-PYTHON-FLASK-42185", "SNYK-PYTHON-FLASK-451637" ], @@ -463,14 +463,14 @@ }, "Jinja2": { "upgradeTo": "2.10.1", - "issues": [ + "vulns": [ "SNYK-PYTHON-JINJA2-174126" ], "isTransitive": true }, "Werkzeug": { "upgradeTo": "0.15.3", - "issues": [ + "vulns": [ "SNYK-PYTHON-WERKZEUG-458931" ], "isTransitive": true