@appland/scanner 1.44.1 → 1.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/built/cli/ci/command.js +4 -2
- package/built/cli/ci/command.js.map +1 -1
- package/built/cli/upload/command.js +4 -2
- package/built/cli/upload/command.js.map +1 -1
- package/built/cli/upload.js +156 -0
- package/built/cli/upload.js.map +1 -0
- package/built/integration/appland/appMap/create.js +48 -35
- package/built/integration/appland/appMap/create.js.map +1 -1
- package/built/integration/appland/mapset/create.js +48 -33
- package/built/integration/appland/mapset/create.js.map +1 -1
- package/built/integration/appland/retry.js +26 -0
- package/built/integration/appland/retry.js.map +1 -0
- package/built/integration/appland/retryOptions.js +3 -0
- package/built/integration/appland/retryOptions.js.map +1 -0
- package/built/integration/appland/scannerJob/create.js +46 -122
- package/built/integration/appland/scannerJob/create.js.map +1 -1
- package/built/integration/appland/scannerJob/merge.js +1 -1
- package/built/integration/appland/scannerJob/merge.js.map +1 -1
- package/built/sampleConfig/default.yml +4 -4
- package/package.json +10 -9
package/built/cli/ci/command.js
CHANGED
|
@@ -61,13 +61,13 @@ var util_1 = require("util");
|
|
|
61
61
|
var configurationProvider_1 = require("../../configuration/configurationProvider");
|
|
62
62
|
var errors_1 = require("../../errors");
|
|
63
63
|
var util_2 = require("../../rules/lib/util");
|
|
64
|
-
var create_1 = require("../../integration/appland/scannerJob/create");
|
|
65
64
|
var findings_1 = require("../../findings");
|
|
66
65
|
var findingsReport_1 = __importDefault(require("../../report/findingsReport"));
|
|
67
66
|
var summaryReport_1 = __importDefault(require("../../report/summaryReport"));
|
|
68
67
|
var exitCode_1 = require("../exitCode");
|
|
69
68
|
var resolveAppId_1 = __importDefault(require("../resolveAppId"));
|
|
70
69
|
var validateFile_1 = __importDefault(require("../validateFile"));
|
|
70
|
+
var upload_1 = __importDefault(require("../upload"));
|
|
71
71
|
var scanner_1 = __importDefault(require("../scan/scanner"));
|
|
72
72
|
var scanArgs_1 = __importDefault(require("../scanArgs"));
|
|
73
73
|
var updateCommitStatus_1 = __importDefault(require("../updateCommitStatus"));
|
|
@@ -140,7 +140,9 @@ exports.default = {
|
|
|
140
140
|
(0, findingsReport_1.default)(scanResults.findings, scanResults.appMapMetadata);
|
|
141
141
|
(0, summaryReport_1.default)(scanResults, true);
|
|
142
142
|
if (!doUpload) return [3 /*break*/, 9];
|
|
143
|
-
return [4 /*yield*/, (0,
|
|
143
|
+
return [4 /*yield*/, (0, upload_1.default)(rawScanResults, appId, mergeKey, {
|
|
144
|
+
maxRetries: 3,
|
|
145
|
+
})];
|
|
144
146
|
case 8:
|
|
145
147
|
uploadResponse = _c.sent();
|
|
146
148
|
(0, reportUploadURL_1.default)(uploadResponse.summary.numFindings, uploadResponse.url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/cli/ci/command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAA4C;AAC5C,wCAAwC;AACxC,6BAAiC;AAKjC,mFAA4E;AAC5E,uCAA2D;AAE3D,6CAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/cli/ci/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,11 +40,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
40
40
|
};
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
var promises_1 = require("fs/promises");
|
|
43
|
-
var create_1 = require("../../integration/appland/scannerJob/create");
|
|
44
43
|
var util_1 = require("../../rules/lib/util");
|
|
45
44
|
var validateFile_1 = __importDefault(require("../validateFile"));
|
|
46
45
|
var resolveAppId_1 = __importDefault(require("../resolveAppId"));
|
|
47
46
|
var reportUploadURL_1 = __importDefault(require("../reportUploadURL"));
|
|
47
|
+
var upload_1 = __importDefault(require("../upload"));
|
|
48
48
|
exports.default = {
|
|
49
49
|
command: 'upload',
|
|
50
50
|
describe: 'Upload Findings to the AppMap Server',
|
|
@@ -87,7 +87,9 @@ exports.default = {
|
|
|
87
87
|
return [4 /*yield*/, (0, promises_1.readFile)(reportFile)];
|
|
88
88
|
case 4:
|
|
89
89
|
scanResults = _c.apply(_b, [(_d.sent()).toString()]);
|
|
90
|
-
return [4 /*yield*/, (0,
|
|
90
|
+
return [4 /*yield*/, (0, upload_1.default)(scanResults, appId, mergeKey, {
|
|
91
|
+
maxRetries: 3,
|
|
92
|
+
})];
|
|
91
93
|
case 5:
|
|
92
94
|
uploadResponse = _d.sent();
|
|
93
95
|
(0, reportUploadURL_1.default)(uploadResponse.summary.numFindings, uploadResponse.url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/cli/upload/command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wCAAuC;
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/cli/upload/command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wCAAuC;AAGvC,6CAA+C;AAE/C,iEAA2C;AAC3C,iEAA2C;AAC3C,uEAAiD;AAGjD,qDAA+B;AAE/B,kBAAe;IACb,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,sCAAsC;IAChD,OAAO,EAAP,UAAQ,IAAU;QAChB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACxB,QAAQ,EAAE,2BAA2B;YACrC,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YACzB,QAAQ,EAAE,qCAAqC;YAC/C,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,QAAQ,EACN,sGAAsG;SACzG,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACvB,QAAQ,EAAE,8EAA8E;SACzF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IACK,OAAO,EAAb,UAAc,OAAkB;;;;;;wBACxB,KAMF,OAAoC,EAL7B,SAAS,aAAA,EAClB,UAAU,gBAAA,EACV,SAAS,eAAA,EACJ,QAAQ,SAAA,EACb,QAAQ,cAAA,CAC+B;wBAEzC,IAAI,SAAS,EAAE;4BACb,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;yBACf;6BAEG,SAAS,EAAT,wBAAS;wBAAE,qBAAM,IAAA,sBAAY,EAAC,WAAW,EAAE,SAAU,CAAC,EAAA;;wBAA3C,SAA2C,CAAC;;4BAC7C,qBAAM,IAAA,sBAAY,EAAC,QAAQ,EAAE,SAAS,CAAC,EAAA;;wBAA/C,KAAK,GAAG,SAAuC;wBAEjC,KAAA,CAAA,KAAA,IAAI,CAAA,CAAC,KAAK,CAAA;wBAAE,qBAAM,IAAA,mBAAQ,EAAC,UAAU,CAAC,EAAA;;wBAApD,WAAW,GAAG,cAAW,CAAC,SAA0B,CAAC,CAAC,QAAQ,EAAE,EAAgB;wBAC/D,qBAAM,IAAA,gBAAM,EAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;gCAChE,UAAU,EAAE,CAAC;6BACd,CAAC,EAAA;;wBAFI,cAAc,GAAG,SAErB;wBAEF,IAAA,yBAAe,EAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;;;;;KACzE;CACF,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
50
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
51
|
+
if (!m) return o;
|
|
52
|
+
var i = m.call(o), r, ar = [], e;
|
|
53
|
+
try {
|
|
54
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
55
|
+
}
|
|
56
|
+
catch (error) { e = { error: error }; }
|
|
57
|
+
finally {
|
|
58
|
+
try {
|
|
59
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
60
|
+
}
|
|
61
|
+
finally { if (e) throw e.error; }
|
|
62
|
+
}
|
|
63
|
+
return ar;
|
|
64
|
+
};
|
|
65
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
66
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
67
|
+
if (ar || !(i in from)) {
|
|
68
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
69
|
+
ar[i] = from[i];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
73
|
+
};
|
|
74
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
|
+
var async_1 = require("async");
|
|
76
|
+
var promises_1 = require("fs/promises");
|
|
77
|
+
var util_1 = require("../rules/lib/util");
|
|
78
|
+
var create_1 = require("../integration/appland/appMap/create");
|
|
79
|
+
var create_2 = require("../integration/appland/mapset/create");
|
|
80
|
+
var create_3 = require("../integration/appland/scannerJob/create");
|
|
81
|
+
function create(scanResults, appId, mergeKey, options) {
|
|
82
|
+
if (options === void 0) { options = {}; }
|
|
83
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
+
var findings, relevantFilePaths, appMapUUIDByFileName, branchCount, commitCount, createAppMapOptions, q, mostFrequent, branch, commit, mapset;
|
|
85
|
+
return __generator(this, function (_a) {
|
|
86
|
+
switch (_a.label) {
|
|
87
|
+
case 0:
|
|
88
|
+
if ((0, util_1.verbose)())
|
|
89
|
+
console.log("Uploading AppMaps and findings to application '" + appId + "'");
|
|
90
|
+
findings = scanResults.findings;
|
|
91
|
+
relevantFilePaths = __spreadArray([], __read(new Set(findings.filter(function (f) { return f.appMapFile; }).map(function (f) { return f.appMapFile; }))), false);
|
|
92
|
+
appMapUUIDByFileName = {};
|
|
93
|
+
branchCount = {};
|
|
94
|
+
commitCount = {};
|
|
95
|
+
createAppMapOptions = {
|
|
96
|
+
app: appId,
|
|
97
|
+
};
|
|
98
|
+
q = (0, async_1.queue)(function (filePath, callback) {
|
|
99
|
+
if ((0, util_1.verbose)())
|
|
100
|
+
console.log("Uploading AppMap " + filePath);
|
|
101
|
+
(0, promises_1.readFile)(filePath)
|
|
102
|
+
.then(function (buffer) {
|
|
103
|
+
var _a, _b;
|
|
104
|
+
var appMapStruct = JSON.parse(buffer.toString());
|
|
105
|
+
var metadata = appMapStruct.metadata;
|
|
106
|
+
var branch = (_a = appMapStruct.metadata.git) === null || _a === void 0 ? void 0 : _a.branch;
|
|
107
|
+
var commit = (_b = appMapStruct.metadata.git) === null || _b === void 0 ? void 0 : _b.commit;
|
|
108
|
+
if (branch) {
|
|
109
|
+
branchCount[branch] || (branchCount[branch] = 1);
|
|
110
|
+
branchCount[branch] += 1;
|
|
111
|
+
}
|
|
112
|
+
if (commit) {
|
|
113
|
+
commitCount[commit] || (commitCount[commit] = 1);
|
|
114
|
+
commitCount[commit] += 1;
|
|
115
|
+
}
|
|
116
|
+
return (0, create_1.create)(buffer, Object.assign(options, __assign(__assign({}, createAppMapOptions), { metadata: metadata })));
|
|
117
|
+
})
|
|
118
|
+
.then(function (appMap) {
|
|
119
|
+
if (appMap) {
|
|
120
|
+
appMapUUIDByFileName[filePath] = appMap.uuid;
|
|
121
|
+
}
|
|
122
|
+
})
|
|
123
|
+
.then(function () { return callback(); })
|
|
124
|
+
.catch(callback);
|
|
125
|
+
}, 3);
|
|
126
|
+
q.error(function (err, filePath) {
|
|
127
|
+
console.error("An error occurred uploading " + filePath + ": " + err);
|
|
128
|
+
});
|
|
129
|
+
if ((0, util_1.verbose)())
|
|
130
|
+
console.log("Uploading " + relevantFilePaths.length + " AppMaps");
|
|
131
|
+
q.push(relevantFilePaths);
|
|
132
|
+
return [4 /*yield*/, q.drain()];
|
|
133
|
+
case 1:
|
|
134
|
+
_a.sent();
|
|
135
|
+
mostFrequent = function (counts) {
|
|
136
|
+
if (Object.keys(counts).length === 0)
|
|
137
|
+
return;
|
|
138
|
+
var maxCount = Object.values(counts).reduce(function (max, count) { return Math.max(max, count); }, 0);
|
|
139
|
+
return Object.entries(counts).find(function (e) { return e[1] === maxCount; })[0];
|
|
140
|
+
};
|
|
141
|
+
branch = mostFrequent(branchCount);
|
|
142
|
+
commit = mostFrequent(commitCount);
|
|
143
|
+
return [4 /*yield*/, (0, create_2.create)(appId, Object.values(appMapUUIDByFileName), Object.assign(options, {
|
|
144
|
+
branch: branch,
|
|
145
|
+
commit: commit,
|
|
146
|
+
}))];
|
|
147
|
+
case 2:
|
|
148
|
+
mapset = _a.sent();
|
|
149
|
+
console.warn('Uploading findings');
|
|
150
|
+
return [2 /*return*/, (0, create_3.create)(scanResults, mapset.id, appMapUUIDByFileName, { mergeKey: mergeKey }, options)];
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
exports.default = create;
|
|
156
|
+
//# sourceMappingURL=upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/cli/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,44 +53,57 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
53
53
|
exports.create = void 0;
|
|
54
54
|
var src_1 = require("@appland/client/dist/src");
|
|
55
55
|
var form_data_1 = __importDefault(require("form-data"));
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
var retry_1 = __importDefault(require("../retry"));
|
|
57
|
+
function create(data, options, retryOptions) {
|
|
58
|
+
if (retryOptions === void 0) { retryOptions = {}; }
|
|
58
59
|
return __awaiter(this, void 0, void 0, function () {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
60
|
+
function makeRequest() {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
62
|
+
var form, request;
|
|
63
|
+
return __generator(this, function (_a) {
|
|
64
|
+
switch (_a.label) {
|
|
65
|
+
case 0:
|
|
66
|
+
form = new form_data_1.default();
|
|
67
|
+
form.append('data', data.toString());
|
|
68
|
+
if (options.metadata) {
|
|
69
|
+
form.append('metadata', JSON.stringify(options.metadata));
|
|
70
|
+
}
|
|
71
|
+
if (options.app) {
|
|
72
|
+
form.append('app', options.app);
|
|
73
|
+
}
|
|
74
|
+
return [4 /*yield*/, (0, src_1.buildRequest)('api/appmaps')];
|
|
75
|
+
case 1:
|
|
76
|
+
request = _a.sent();
|
|
77
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
78
|
+
var req = request.requestFunction(request.url, {
|
|
79
|
+
method: 'POST',
|
|
80
|
+
headers: __assign(__assign({}, request.headers), form.getHeaders()),
|
|
81
|
+
}, resolve);
|
|
82
|
+
req.on('error', (0, src_1.retryOnError)(retrier, resolve, reject));
|
|
83
|
+
form.pipe(req);
|
|
84
|
+
}).then((0, src_1.retryOn503)(retrier))];
|
|
67
85
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
var retrier;
|
|
90
|
+
return __generator(this, function (_a) {
|
|
91
|
+
retrier = (0, retry_1.default)("Upload AppMap", retryOptions, makeRequest);
|
|
92
|
+
return [2 /*return*/, makeRequest()
|
|
93
|
+
.then(src_1.handleError)
|
|
94
|
+
.then(function (response) {
|
|
95
|
+
return new Promise(function (resolve, reject) {
|
|
96
|
+
var responseData = [];
|
|
97
|
+
response
|
|
98
|
+
.on('data', function (chunk) {
|
|
99
|
+
responseData.push(Buffer.from(chunk));
|
|
78
100
|
})
|
|
79
|
-
.
|
|
80
|
-
.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
responseData.push(Buffer.from(chunk));
|
|
86
|
-
})
|
|
87
|
-
.on('end', function () {
|
|
88
|
-
resolve(JSON.parse(Buffer.concat(responseData).toString()));
|
|
89
|
-
})
|
|
90
|
-
.on('error', reject);
|
|
91
|
-
});
|
|
92
|
-
})];
|
|
93
|
-
}
|
|
101
|
+
.on('end', function () {
|
|
102
|
+
resolve(JSON.parse(Buffer.concat(responseData).toString()));
|
|
103
|
+
})
|
|
104
|
+
.on('error', reject);
|
|
105
|
+
});
|
|
106
|
+
})];
|
|
94
107
|
});
|
|
95
108
|
});
|
|
96
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/integration/appland/appMap/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/integration/appland/appMap/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAA+F;AAC/F,wDAAiC;AAGjC,mDAA6B;AAW7B,SAAsB,MAAM,CAC1B,IAAY,EACZ,OAAsB,EACtB,YAA+B;IAA/B,6BAAA,EAAA,iBAA+B;;QAI/B,SAAe,WAAW;;;;;;4BAClB,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;4BAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;4BACrC,IAAI,OAAO,CAAC,QAAQ,EAAE;gCACpB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;6BAC3D;4BACD,IAAI,OAAO,CAAC,GAAG,EAAE;gCACf,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;6BACjC;4BACe,qBAAM,IAAA,kBAAY,EAAC,aAAa,CAAC,EAAA;;4BAA3C,OAAO,GAAG,SAAiC;4BACjD,sBAAO,IAAI,OAAO,CAAkB,UAAC,OAAO,EAAE,MAAM;oCAClD,IAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CACjC,OAAO,CAAC,GAAG,EACX;wCACE,MAAM,EAAE,MAAM;wCACd,OAAO,wBACF,OAAO,CAAC,OAAO,GACf,IAAI,CAAC,UAAU,EAAE,CACrB;qCACF,EACD,OAAO,CACR,CAAC;oCACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAA,kBAAY,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;oCACxD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACjB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAU,EAAC,OAAO,CAAC,CAAC,EAAC;;;;SAC9B;;;YA3BK,OAAO,GAAG,IAAA,eAAK,EAAC,eAAe,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;YA6BlE,sBAAO,WAAW,EAAE;qBACjB,IAAI,CAAC,iBAAW,CAAC;qBACjB,IAAI,CAAC,UAAC,QAAyB;oBAC9B,OAAO,IAAI,OAAO,CAAuB,UAAC,OAAO,EAAE,MAAM;wBACvD,IAAM,YAAY,GAAa,EAAE,CAAC;wBAClC,QAAQ;6BACL,EAAE,CAAC,MAAM,EAAE,UAAC,KAAa;4BACxB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBACxC,CAAC,CAAC;6BACD,EAAE,CAAC,KAAK,EAAE;4BACT,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAyB,CAAC,CAAC;wBACtF,CAAC,CAAC;6BACD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBACzB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,EAAC;;;CACN;AAjDD,wBAiDC"}
|
|
@@ -46,45 +46,60 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
49
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
53
|
exports.create = void 0;
|
|
51
54
|
var src_1 = require("@appland/client/dist/src");
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
var util_1 = require("../../../rules/lib/util");
|
|
56
|
+
var retry_1 = __importDefault(require("../retry"));
|
|
57
|
+
function create(appId, appMapIds, options, retryOptions) {
|
|
58
|
+
if (retryOptions === void 0) { retryOptions = {}; }
|
|
54
59
|
return __awaiter(this, void 0, void 0, function () {
|
|
55
|
-
|
|
60
|
+
function makeRequest() {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
62
|
+
var payload, request;
|
|
63
|
+
return __generator(this, function (_a) {
|
|
64
|
+
switch (_a.label) {
|
|
65
|
+
case 0:
|
|
66
|
+
payload = JSON.stringify(__assign({ app: appId, appmaps: appMapIds }, options));
|
|
67
|
+
return [4 /*yield*/, (0, src_1.buildRequest)('api/mapsets')];
|
|
68
|
+
case 1:
|
|
69
|
+
request = _a.sent();
|
|
70
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
71
|
+
var req = request.requestFunction(request.url, {
|
|
72
|
+
method: 'POST',
|
|
73
|
+
headers: __assign({ 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(payload) }, request.headers),
|
|
74
|
+
}, resolve);
|
|
75
|
+
req.on('error', (0, src_1.retryOnError)(retrier, resolve, reject));
|
|
76
|
+
req.write(payload);
|
|
77
|
+
req.end();
|
|
78
|
+
}).then((0, src_1.retryOn503)(retrier))];
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
var retrier;
|
|
56
84
|
return __generator(this, function (_a) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}, resolve);
|
|
69
|
-
req.on('error', reject);
|
|
70
|
-
req.write(payload);
|
|
71
|
-
req.end();
|
|
85
|
+
if ((0, util_1.verbose)())
|
|
86
|
+
console.log("Creating mapset in app " + appId + " with " + appMapIds.length + " AppMaps");
|
|
87
|
+
retrier = (0, retry_1.default)("Create Mapset", retryOptions, makeRequest);
|
|
88
|
+
return [2 /*return*/, makeRequest()
|
|
89
|
+
.then(src_1.handleError)
|
|
90
|
+
.then(function (response) {
|
|
91
|
+
return new Promise(function (resolve, reject) {
|
|
92
|
+
var responseData = [];
|
|
93
|
+
response
|
|
94
|
+
.on('data', function (chunk) {
|
|
95
|
+
responseData.push(Buffer.from(chunk));
|
|
72
96
|
})
|
|
73
|
-
.
|
|
74
|
-
.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
responseData.push(Buffer.from(chunk));
|
|
80
|
-
})
|
|
81
|
-
.on('end', function () {
|
|
82
|
-
resolve(JSON.parse(Buffer.concat(responseData).toString()));
|
|
83
|
-
})
|
|
84
|
-
.on('error', reject);
|
|
85
|
-
});
|
|
86
|
-
})];
|
|
87
|
-
}
|
|
97
|
+
.on('end', function () {
|
|
98
|
+
resolve(JSON.parse(Buffer.concat(responseData).toString()));
|
|
99
|
+
})
|
|
100
|
+
.on('error', reject);
|
|
101
|
+
});
|
|
102
|
+
})];
|
|
88
103
|
});
|
|
89
104
|
});
|
|
90
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/integration/appland/mapset/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/integration/appland/mapset/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAA+F;AAC/F,gDAAkD;AAElD,mDAA6B;AAsB7B,SAAsB,MAAM,CAC1B,KAAa,EACb,SAAmB,EACnB,OAAsB,EACtB,YAA+B;IAA/B,6BAAA,EAAA,iBAA+B;;QAM/B,SAAe,WAAW;;;;;;4BAClB,OAAO,GAAG,IAAI,CAAC,SAAS,YAC5B,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,SAAS,IACf,OAAO,EACV,CAAC;4BACa,qBAAM,IAAA,kBAAY,EAAC,aAAa,CAAC,EAAA;;4BAA3C,OAAO,GAAG,SAAiC;4BACjD,sBAAO,IAAI,OAAO,CAAkB,UAAC,OAAO,EAAE,MAAM;oCAClD,IAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CACjC,OAAO,CAAC,GAAG,EACX;wCACE,MAAM,EAAE,MAAM;wCACd,OAAO,aACL,cAAc,EAAE,kBAAkB,EAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IACzC,OAAO,CAAC,OAAO,CACnB;qCACF,EACD,OAAO,CACR,CAAC;oCACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAA,kBAAY,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;oCACxD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oCACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gCACZ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAU,EAAC,OAAO,CAAC,CAAC,EAAC;;;;SAC9B;;;YA5BD,IAAI,IAAA,cAAO,GAAE;gBAAE,OAAO,CAAC,GAAG,CAAC,4BAA0B,KAAK,cAAS,SAAS,CAAC,MAAM,aAAU,CAAC,CAAC;YAEzF,OAAO,GAAG,IAAA,eAAK,EAAC,eAAe,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;YA4BlE,sBAAO,WAAW,EAAE;qBACjB,IAAI,CAAC,iBAAW,CAAC;qBACjB,IAAI,CAAC,UAAC,QAAyB;oBAC9B,OAAO,IAAI,OAAO,CAAiB,UAAC,OAAO,EAAE,MAAM;wBACjD,IAAM,YAAY,GAAa,EAAE,CAAC;wBAClC,QAAQ;6BACL,EAAE,CAAC,MAAM,EAAE,UAAC,KAAa;4BACxB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBACxC,CAAC,CAAC;6BACD,EAAE,CAAC,KAAK,EAAE;4BACT,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAmB,CAAC,CAAC;wBAChF,CAAC,CAAC;6BACD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBACzB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,EAAC;;;CACN;AAnDD,wBAmDC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var util_1 = require("../../rules/lib/util");
|
|
4
|
+
var RetryDelay = 500;
|
|
5
|
+
var MaxRetries = 3;
|
|
6
|
+
function retry(description, retryOptions, retryFn) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
var maxRetries = (_a = retryOptions.maxRetries) !== null && _a !== void 0 ? _a : MaxRetries;
|
|
9
|
+
var retryDelay = (_b = retryOptions.retryDelay) !== null && _b !== void 0 ? _b : RetryDelay;
|
|
10
|
+
var retryCount = 0;
|
|
11
|
+
function computeDelay() {
|
|
12
|
+
return retryDelay * Math.pow(2, retryCount - 1);
|
|
13
|
+
}
|
|
14
|
+
return function (resolve, reject) {
|
|
15
|
+
retryCount += 1;
|
|
16
|
+
if (retryCount > maxRetries) {
|
|
17
|
+
reject(new Error(description + " failed: Max retries exceeded."));
|
|
18
|
+
}
|
|
19
|
+
if ((0, util_1.verbose)()) {
|
|
20
|
+
console.log("Retrying " + description + " in " + computeDelay() + "ms");
|
|
21
|
+
}
|
|
22
|
+
setTimeout(function () { return retryFn().then(resolve).catch(reject); }, computeDelay());
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
exports.default = retry;
|
|
26
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/integration/appland/retry.ts"],"names":[],"mappings":";;AAOA,6CAA+C;AAE/C,IAAM,UAAU,GAAG,GAAG,CAAC;AACvB,IAAM,UAAU,GAAG,CAAC,CAAC;AAErB,SAAwB,KAAK,CAC3B,WAAmB,EACnB,YAA0B,EAC1B,OAAuC;;IAEvC,IAAM,UAAU,GAAG,MAAA,YAAY,CAAC,UAAU,mCAAI,UAAU,CAAC;IACzD,IAAM,UAAU,GAAG,MAAA,YAAY,CAAC,UAAU,mCAAI,UAAU,CAAC;IAEzD,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,SAAS,YAAY;QACnB,OAAO,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,UAAC,OAAwB,EAAE,MAAsB;QACtD,UAAU,IAAI,CAAC,CAAC;QAChB,IAAI,UAAU,GAAG,UAAU,EAAE;YAC3B,MAAM,CAAC,IAAI,KAAK,CAAI,WAAW,mCAAgC,CAAC,CAAC,CAAC;SACnE;QACD,IAAI,IAAA,cAAO,GAAE,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,cAAY,WAAW,YAAO,YAAY,EAAE,OAAI,CAAC,CAAC;SAC/D;QACD,UAAU,CAAC,cAAM,OAAA,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAArC,CAAqC,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC;AACJ,CAAC;AAxBD,wBAwBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retryOptions.js","sourceRoot":"","sources":["../../../src/integration/appland/retryOptions.ts"],"names":[],"mappings":""}
|
|
@@ -46,135 +46,59 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
var
|
|
50
|
-
|
|
51
|
-
if (!m) return o;
|
|
52
|
-
var i = m.call(o), r, ar = [], e;
|
|
53
|
-
try {
|
|
54
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
55
|
-
}
|
|
56
|
-
catch (error) { e = { error: error }; }
|
|
57
|
-
finally {
|
|
58
|
-
try {
|
|
59
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
60
|
-
}
|
|
61
|
-
finally { if (e) throw e.error; }
|
|
62
|
-
}
|
|
63
|
-
return ar;
|
|
64
|
-
};
|
|
65
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
66
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
67
|
-
if (ar || !(i in from)) {
|
|
68
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
69
|
-
ar[i] = from[i];
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
73
51
|
};
|
|
74
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
53
|
exports.create = void 0;
|
|
76
|
-
var async_1 = require("async");
|
|
77
|
-
var promises_1 = require("fs/promises");
|
|
78
54
|
var url_1 = require("url");
|
|
79
55
|
var src_1 = require("@appland/client/dist/src");
|
|
80
|
-
var
|
|
81
|
-
var
|
|
82
|
-
function create(scanResults,
|
|
56
|
+
var util_1 = require("../../../rules/lib/util");
|
|
57
|
+
var retry_1 = __importDefault(require("../retry"));
|
|
58
|
+
function create(scanResults, mapsetId, appMapUUIDByFileName, createOptions, retryOptions) {
|
|
59
|
+
if (createOptions === void 0) { createOptions = {}; }
|
|
60
|
+
if (retryOptions === void 0) { retryOptions = {}; }
|
|
83
61
|
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
-
|
|
62
|
+
function makeRequest() {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
64
|
+
var payload;
|
|
65
|
+
return __generator(this, function (_a) {
|
|
66
|
+
switch (_a.label) {
|
|
67
|
+
case 0:
|
|
68
|
+
payload = JSON.stringify(__assign({ scan_results: scanResults, mapset: mapsetId, appmap_uuid_by_file_name: appMapUUIDByFileName }, { merge_key: createOptions.mergeKey }));
|
|
69
|
+
return [4 /*yield*/, (0, src_1.buildRequest)('api/scanner_jobs')];
|
|
70
|
+
case 1:
|
|
71
|
+
request = _a.sent();
|
|
72
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
73
|
+
var req = request.requestFunction(request.url, {
|
|
74
|
+
method: 'POST',
|
|
75
|
+
headers: __assign({ 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(payload) }, request.headers),
|
|
76
|
+
}, resolve);
|
|
77
|
+
req.on('error', (0, src_1.retryOnError)(retrier, resolve, reject));
|
|
78
|
+
req.write(payload);
|
|
79
|
+
req.end();
|
|
80
|
+
}).then((0, src_1.retryOn503)(retrier))];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
var uploadURL, request, retrier;
|
|
85
86
|
return __generator(this, function (_a) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
var _a, _b;
|
|
102
|
-
var appMapStruct = JSON.parse(buffer.toString());
|
|
103
|
-
var branch = (_a = appMapStruct.metadata.git) === null || _a === void 0 ? void 0 : _a.branch;
|
|
104
|
-
var commit = (_b = appMapStruct.metadata.git) === null || _b === void 0 ? void 0 : _b.commit;
|
|
105
|
-
if (branch) {
|
|
106
|
-
branchCount[branch] || (branchCount[branch] = 1);
|
|
107
|
-
branchCount[branch] += 1;
|
|
108
|
-
}
|
|
109
|
-
if (commit) {
|
|
110
|
-
commitCount[commit] || (commitCount[commit] = 1);
|
|
111
|
-
commitCount[commit] += 1;
|
|
112
|
-
}
|
|
113
|
-
return (0, create_1.create)(buffer, createAppMapOptions);
|
|
114
|
-
})
|
|
115
|
-
.then(function (appMap) {
|
|
116
|
-
if (appMap) {
|
|
117
|
-
appMapUUIDByFileName[filePath] = appMap.uuid;
|
|
118
|
-
}
|
|
119
|
-
})
|
|
120
|
-
.then(function () { return callback(); })
|
|
121
|
-
.catch(callback);
|
|
122
|
-
}, 5);
|
|
123
|
-
q.error(function (err, filePath) {
|
|
124
|
-
console.error("An error occurred uploading " + filePath + ": " + err);
|
|
125
|
-
});
|
|
126
|
-
console.log("Uploading " + relevantFilePaths.length + " AppMaps");
|
|
127
|
-
q.push(relevantFilePaths);
|
|
128
|
-
return [4 /*yield*/, q.drain()];
|
|
129
|
-
case 1:
|
|
130
|
-
_a.sent();
|
|
131
|
-
mostFrequent = function (counts) {
|
|
132
|
-
if (Object.keys(counts).length === 0)
|
|
133
|
-
return;
|
|
134
|
-
var maxCount = Object.values(counts).reduce(function (max, count) { return Math.max(max, count); }, 0);
|
|
135
|
-
return Object.entries(counts).find(function (e) { return e[1] === maxCount; })[0];
|
|
136
|
-
};
|
|
137
|
-
branch = mostFrequent(branchCount);
|
|
138
|
-
commit = mostFrequent(commitCount);
|
|
139
|
-
return [4 /*yield*/, (0, create_2.create)(appId, Object.values(appMapUUIDByFileName), {
|
|
140
|
-
branch: branch,
|
|
141
|
-
commit: commit,
|
|
142
|
-
})];
|
|
143
|
-
case 2:
|
|
144
|
-
mapset = _a.sent();
|
|
145
|
-
console.warn('Uploading findings');
|
|
146
|
-
createScannerJobOptions = {
|
|
147
|
-
scan_results: scanResults,
|
|
148
|
-
mapset: mapset.id,
|
|
149
|
-
appmap_uuid_by_file_name: appMapUUIDByFileName,
|
|
150
|
-
};
|
|
151
|
-
if (mergeKey)
|
|
152
|
-
createScannerJobOptions.merge_key = mergeKey;
|
|
153
|
-
scanResultsData = JSON.stringify(createScannerJobOptions);
|
|
154
|
-
return [4 /*yield*/, (0, src_1.buildRequest)('api/scanner_jobs')];
|
|
155
|
-
case 3:
|
|
156
|
-
request = _a.sent();
|
|
157
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
158
|
-
var req = request.requestFunction(request.url, {
|
|
159
|
-
method: 'POST',
|
|
160
|
-
headers: __assign({ 'Content-Type': 'application/json', 'Content-Length': scanResultsData.length }, request.headers),
|
|
161
|
-
}, resolve);
|
|
162
|
-
req.on('error', reject);
|
|
163
|
-
req.write(scanResultsData);
|
|
164
|
-
req.end();
|
|
165
|
-
})
|
|
166
|
-
.then(src_1.handleError)
|
|
167
|
-
.then(function (response) {
|
|
168
|
-
if (response.headers.location) {
|
|
169
|
-
uploadURL = new url_1.URL(response.headers.location, request.url.href);
|
|
170
|
-
}
|
|
171
|
-
return (0, src_1.reportJSON)(response);
|
|
172
|
-
})
|
|
173
|
-
.then(function (uploadResponse) {
|
|
174
|
-
uploadResponse.url = uploadURL;
|
|
175
|
-
return uploadResponse;
|
|
176
|
-
})];
|
|
177
|
-
}
|
|
87
|
+
if ((0, util_1.verbose)())
|
|
88
|
+
console.warn('Uploading findings');
|
|
89
|
+
retrier = (0, retry_1.default)("Create scanner job", retryOptions, makeRequest);
|
|
90
|
+
return [2 /*return*/, makeRequest()
|
|
91
|
+
.then(src_1.handleError)
|
|
92
|
+
.then(function (response) {
|
|
93
|
+
if (response.headers.location) {
|
|
94
|
+
uploadURL = new url_1.URL(response.headers.location, request.url.href);
|
|
95
|
+
}
|
|
96
|
+
return (0, src_1.reportJSON)(response);
|
|
97
|
+
})
|
|
98
|
+
.then(function (uploadResponse) {
|
|
99
|
+
uploadResponse.url = uploadURL;
|
|
100
|
+
return uploadResponse;
|
|
101
|
+
})];
|
|
178
102
|
});
|
|
179
103
|
});
|
|
180
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/integration/appland/scannerJob/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/integration/appland/scannerJob/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2BAA0B;AAE1B,gDAMkC;AAElC,gDAAkD;AAKlD,mDAA6B;AAS7B,SAAsB,MAAM,CAC1B,WAAwB,EACxB,QAAgB,EAChB,oBAA4C,EAC5C,aAAiC,EACjC,YAA+B;IAD/B,8BAAA,EAAA,kBAAiC;IACjC,6BAAA,EAAA,iBAA+B;;QAQ/B,SAAe,WAAW;;;;;;4BAClB,OAAO,GAAG,IAAI,CAAC,SAAS,YAC5B,YAAY,EAAE,WAAW,EACzB,MAAM,EAAE,QAAQ,EAChB,wBAAwB,EAAE,oBAAoB,IAC3C,EAAE,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,EACxC,CAAC;4BAEO,qBAAM,IAAA,kBAAY,EAAC,kBAAkB,CAAC,EAAA;;4BAAhD,OAAO,GAAG,SAAsC,CAAC;4BACjD,sBAAO,IAAI,OAAO,CAAkB,UAAC,OAAO,EAAE,MAAM;oCAClD,IAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CACjC,OAAO,CAAC,GAAG,EACX;wCACE,MAAM,EAAE,MAAM;wCACd,OAAO,aACL,cAAc,EAAE,kBAAkB,EAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IACzC,OAAO,CAAC,OAAO,CACnB;qCACF,EACD,OAAO,CACR,CAAC;oCACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAA,kBAAY,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;oCACxD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oCACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gCACZ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAU,EAAC,OAAO,CAAC,CAAC,EAAC;;;;SAC9B;;;YAhCD,IAAI,IAAA,cAAO,GAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAI5C,OAAO,GAAG,IAAA,eAAK,EAAC,oBAAoB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;YA6BvE,sBAAO,WAAW,EAAE;qBACjB,IAAI,CAAC,iBAAW,CAAC;qBACjB,IAAI,CAAC,UAAC,QAAQ;oBACb,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;wBAC7B,SAAS,GAAG,IAAI,SAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBAClE;oBACD,OAAO,IAAA,gBAAU,EAAiB,QAAQ,CAAC,CAAC;gBAC9C,CAAC,CAAC;qBACD,IAAI,CAAC,UAAC,cAAc;oBACnB,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC;oBAC/B,OAAO,cAAc,CAAC;gBACxB,CAAC,CAAC,EAAC;;;CACN;AApDD,wBAoDC"}
|
|
@@ -67,7 +67,7 @@ function merge(appId, mergeKey) {
|
|
|
67
67
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
68
68
|
var req = request.requestFunction(request.url, {
|
|
69
69
|
method: 'POST',
|
|
70
|
-
headers: __assign({ 'Content-Type': 'application/json', 'Content-Length': payload
|
|
70
|
+
headers: __assign({ 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(payload) }, request.headers),
|
|
71
71
|
}, resolve);
|
|
72
72
|
req.on('error', reject);
|
|
73
73
|
req.write(payload);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../src/integration/appland/scannerJob/merge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAAiF;AAGjF,2BAA0B;AAI1B,SAAsB,KAAK,CAAC,KAAa,EAAE,QAAgB;;;;;;oBACzD,OAAO,CAAC,GAAG,CAAC,iCAA+B,KAAK,wBAAmB,QAAU,CAAC,CAAC;oBAEzE,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC7B,GAAG,EAAE,KAAK;wBACV,SAAS,EAAE,QAAQ;qBACpB,CAAC,CAAC;oBACa,qBAAM,IAAA,kBAAY,EAAC,wBAAwB,CAAC,EAAA;;oBAAtD,OAAO,GAAG,SAA4C;oBAE5D,sBAAO,IAAI,OAAO,CAAkB,UAAC,OAAO,EAAE,MAAM;4BAClD,IAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CACjC,OAAO,CAAC,GAAG,EACX;gCACE,MAAM,EAAE,MAAM;gCACd,OAAO,aACL,cAAc,EAAE,kBAAkB,EAClC,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../src/integration/appland/scannerJob/merge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAAiF;AAGjF,2BAA0B;AAI1B,SAAsB,KAAK,CAAC,KAAa,EAAE,QAAgB;;;;;;oBACzD,OAAO,CAAC,GAAG,CAAC,iCAA+B,KAAK,wBAAmB,QAAU,CAAC,CAAC;oBAEzE,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC7B,GAAG,EAAE,KAAK;wBACV,SAAS,EAAE,QAAQ;qBACpB,CAAC,CAAC;oBACa,qBAAM,IAAA,kBAAY,EAAC,wBAAwB,CAAC,EAAA;;oBAAtD,OAAO,GAAG,SAA4C;oBAE5D,sBAAO,IAAI,OAAO,CAAkB,UAAC,OAAO,EAAE,MAAM;4BAClD,IAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CACjC,OAAO,CAAC,GAAG,EACX;gCACE,MAAM,EAAE,MAAM;gCACd,OAAO,aACL,cAAc,EAAE,kBAAkB,EAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IACzC,OAAO,CAAC,OAAO,CACnB;6BACF,EACD,OAAO,CACR,CAAC;4BACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;4BACxB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACnB,GAAG,CAAC,GAAG,EAAE,CAAC;wBACZ,CAAC,CAAC;6BACC,IAAI,CAAC,iBAAW,CAAC;6BACjB,IAAI,CAAC,UAAC,QAAQ;4BACb,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;gCAC7B,SAAS,GAAG,IAAI,SAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;6BAClE;4BACD,OAAO,IAAA,gBAAU,EAAgB,QAAQ,CAAC,CAAC;wBAC7C,CAAC,CAAC;6BACD,IAAI,CAAC,UAAC,cAAc;4BACnB,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC;4BAC/B,OAAO,cAAc,CAAC;wBACxB,CAAC,CAAC,EAAC;;;;CACN;AArCD,sBAqCC"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
checks:
|
|
2
2
|
- rule: authzBeforeAuthn
|
|
3
3
|
- rule: circularDependency
|
|
4
|
-
- rule: deserializationOfUntrustedData
|
|
4
|
+
# - rule: deserializationOfUntrustedData
|
|
5
5
|
- rule: http500
|
|
6
6
|
# - rule: illegalPackageDependency
|
|
7
7
|
# - rule: incompatibleHttpClientRequest
|
|
8
8
|
# - rule: insecureCompare
|
|
9
9
|
# - rule: jobNotCancelled
|
|
10
10
|
- rule: logoutWithoutSessionReset
|
|
11
|
-
- rule: missingAuthentication
|
|
11
|
+
# - rule: missingAuthentication
|
|
12
12
|
- rule: missingContentType
|
|
13
13
|
- rule: nPlusOneQuery
|
|
14
14
|
# - rule: queryFromInvalidPackage
|
|
15
15
|
- rule: queryFromView
|
|
16
16
|
# - rule: rpcWithoutCircuitBreaker
|
|
17
|
-
- rule: saveWithoutValidation
|
|
17
|
+
# - rule: saveWithoutValidation
|
|
18
18
|
- rule: secretInLog
|
|
19
19
|
# - rule: slowFunctionCall
|
|
20
20
|
# - rule: slowHttpServerRequest
|
|
21
21
|
# - rule: slowQuery
|
|
22
22
|
- rule: tooManyJoins
|
|
23
23
|
- rule: tooManyUpdates
|
|
24
|
-
- rule: unbatchedMaterializedQuery
|
|
24
|
+
# - rule: unbatchedMaterializedQuery
|
|
25
25
|
- rule: updateInGetRequest
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appland/scanner",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.46.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"bin": "built/cli.js",
|
|
6
6
|
"files": [
|
|
@@ -25,10 +25,14 @@
|
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@semantic-release/changelog": "^6.0.1",
|
|
27
27
|
"@semantic-release/git": "^10.0.1",
|
|
28
|
-
"@types/
|
|
28
|
+
"@types/async": "^3.2.12",
|
|
29
|
+
"@types/glob": "^7.2.0",
|
|
29
30
|
"@types/jest": "^27.0.1",
|
|
30
31
|
"@types/js-yaml": "^4.0.3",
|
|
32
|
+
"@types/lru-cache": "^5.1.1",
|
|
31
33
|
"@types/node": "^16.7.10",
|
|
34
|
+
"@types/sinon": "^10.0.2",
|
|
35
|
+
"@types/tar-stream": "^2.2.2",
|
|
32
36
|
"@types/yargs": "^17.0.2",
|
|
33
37
|
"@typescript-eslint/eslint-plugin": "^4.30.0",
|
|
34
38
|
"@typescript-eslint/parser": "^4.30.0",
|
|
@@ -49,18 +53,15 @@
|
|
|
49
53
|
"typescript": "^4.4.2"
|
|
50
54
|
},
|
|
51
55
|
"dependencies": {
|
|
52
|
-
"@appland/client": "^1.
|
|
53
|
-
"@appland/models": "^1.
|
|
54
|
-
"@appland/sql-parser": "^1.
|
|
55
|
-
"@types/async": "^3.2.12",
|
|
56
|
-
"@types/lru-cache": "^5.1.1",
|
|
57
|
-
"@types/sinon": "^10.0.2",
|
|
58
|
-
"@types/tar-stream": "^2.2.2",
|
|
56
|
+
"@appland/client": "^1.3.0",
|
|
57
|
+
"@appland/models": "^1.14.1",
|
|
58
|
+
"@appland/sql-parser": "^1.4.0",
|
|
59
59
|
"ajv": "^8.8.2",
|
|
60
60
|
"ansi-escapes": "^5.0.0",
|
|
61
61
|
"async": "^3.2.3",
|
|
62
62
|
"chalk": "^4.1.2",
|
|
63
63
|
"form-data": "^4.0.0",
|
|
64
|
+
"glob": "^7.2.0",
|
|
64
65
|
"js-yaml": "^4.1.0",
|
|
65
66
|
"lru-cache": "^6.0.0",
|
|
66
67
|
"minimatch": "^3.0.4",
|