Skip to content

Commit 8e02577

Browse files
michael-goorkamara
authored andcommitted
feat: handling source field of every pkg. Bump analyser ver.
2 parents f2f2c1c + 5aecb9c commit 8e02577

File tree

3 files changed

+37
-21
lines changed

3 files changed

+37
-21
lines changed

lib/index.js

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ function getDependencies(analyzerBinaryPath, targetImage) {
6868
)
6969
.then(function (output) {
7070
scanResults = JSON.parse(output);
71-
return Promise.resolve(convertDependecies(targetImage, scanResults));
71+
return convertDependecies(targetImage, scanResults);
7272
})
7373
.catch(function (error) {
7474
if (typeof error === 'string') {
@@ -87,35 +87,39 @@ function getDependencies(analyzerBinaryPath, targetImage) {
8787
}
8888

8989
function convertDependecies(targetImage, scanResults) {
90-
targetSplit = targetImage.split(':');
91-
imageName = targetSplit[0];
92-
imageVersion = targetSplit[1];
93-
imageVersion = (imageVersion ? imageVersion : 'lateset');
90+
var targetSplit = targetImage.split(':');
91+
var imageName = targetSplit[0];
92+
var imageVersion = targetSplit[1] ? targetSplit[1] : 'latest';
9493

95-
root = {};
96-
root.name = imageName;
97-
root.version = imageVersion;
98-
99-
var scanResult = scanResults.filter(function (res) {
94+
var analysisResults = scanResults.results.filter(function (res) {
10095
return res.Analysis && res.Analysis.length > 0;
10196
})[0];
10297

10398
var pkgType;
104-
switch (scanResult.AnalyzeType) {
99+
switch (analysisResults.AnalyzeType) {
105100
case 'Apt': {
106101
pkgType = 'deb';
107102
break;
108103
}
109104
default: {
110-
pkgType = scanResult.AnalyzeType.toLowerCase()
105+
pkgType = analysisResults.AnalyzeType.toLowerCase()
111106
}
112107
}
113-
root.packageFormatVersion = pkgType + ':0.0.1';
108+
var root = {
109+
name: imageName,
110+
version: imageVersion,
111+
dockerOSRelease: scanResults.osRelease,
112+
packageFormatVersion: pkgType + ':0.0.1',
113+
};
114114

115-
pkgs = scanResult['Analysis']
115+
var pkgs = analysisResults['Analysis'];
116116

117117
root.dependencies = pkgs.reduce(function (acc, pkg) {
118-
name = pkg['Name'];
118+
if (!pkg['Source']) {
119+
name = pkg['Name'];
120+
} else {
121+
name = pkg['Source'] + '/' + pkg['Name'];
122+
}
119123
version = pkg['Version'];
120124

121125
acc[name] = {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"semantic-release": "semantic-release pre && npm publish && semantic-release post"
1414
},
1515
"snyk-docker-analyzer": {
16-
"version": "1.0.6"
16+
"version": "1.2.0"
1717
},
1818
"author": "snyk.io",
1919
"license": "Apache-2.0",

test/system.test.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,18 @@ test('inspect nginx:1.13.10', function (t) {
8181
name: imgName,
8282
version: imgTag,
8383
packageFormatVersion: 'deb:0.0.1',
84+
dockerOSRelease: {
85+
name: 'debian',
86+
version: '9',
87+
},
8488
}, 'root pkg');
8589

8690
const deps = pkg.dependencies;
8791

88-
t.equal(Object.keys(deps).length, 80, 'expected number of deps');
92+
t.equal(Object.keys(deps).length, 108, 'expected number of deps');
8993
t.match(deps, {
90-
acl: {
91-
name: 'acl',
94+
'acl/libacl1': {
95+
name: 'acl/libacl1',
9296
version: '2.2.52-3+b1',
9397
},
9498
adduser: {
@@ -99,8 +103,8 @@ test('inspect nginx:1.13.10', function (t) {
99103
name: 'nginx-module-xslt',
100104
version: '1.13.10-1~stretch',
101105
},
102-
openssl: {
103-
name: 'openssl',
106+
'openssl/libssl1.1': {
107+
name: 'openssl/libssl1.1',
104108
version: '1.1.0f-3+deb9u1',
105109
},
106110
}, 'deps');
@@ -125,6 +129,10 @@ test('inspect redis:3.2.11-alpine', function (t) {
125129
name: imgName,
126130
version: imgTag,
127131
packageFormatVersion: 'apk:0.0.1',
132+
dockerOSRelease: {
133+
name: 'alpine',
134+
version: '3.7.0',
135+
},
128136
}, 'root pkg');
129137

130138
const deps = pkg.dependencies;
@@ -166,6 +174,10 @@ test('inspect centos', function (t) {
166174
name: imgName,
167175
version: imgTag,
168176
packageFormatVersion: 'rpm:0.0.1',
177+
dockerOSRelease: {
178+
name: 'centos',
179+
version: '7',
180+
},
169181
}, 'root pkg');
170182

171183
const deps = pkg.dependencies;

0 commit comments

Comments
 (0)