@datadog/datadog-ci 2.5.2-alpha → 2.6.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/dist/commands/dsyms/upload.js +9 -3
- package/dist/commands/dsyms/upload.js.map +1 -1
- package/dist/commands/flutter-symbols/upload.js +9 -3
- package/dist/commands/flutter-symbols/upload.js.map +1 -1
- package/dist/commands/git-metadata/renderer.d.ts +1 -0
- package/dist/commands/git-metadata/renderer.js +11 -8
- package/dist/commands/git-metadata/renderer.js.map +1 -1
- package/dist/commands/git-metadata/upload.d.ts +2 -9
- package/dist/commands/git-metadata/upload.js +46 -108
- package/dist/commands/git-metadata/upload.js.map +1 -1
- package/dist/commands/junit/api.d.ts +0 -1
- package/dist/commands/junit/api.js +3 -7
- package/dist/commands/junit/api.js.map +1 -1
- package/dist/commands/react-native/upload.js +12 -6
- package/dist/commands/react-native/upload.js.map +1 -1
- package/dist/commands/sarif/api.d.ts +7 -0
- package/dist/commands/sarif/api.js +65 -0
- package/dist/commands/sarif/api.js.map +1 -0
- package/dist/commands/sarif/cli.d.ts +1 -0
- package/dist/commands/sarif/cli.js +5 -0
- package/dist/commands/sarif/cli.js.map +1 -0
- package/dist/commands/sarif/interfaces.d.ts +12 -0
- package/dist/commands/sarif/interfaces.js +3 -0
- package/dist/commands/sarif/interfaces.js.map +1 -0
- package/dist/commands/sarif/json-schema/sarif-schema-2.1.0.json +2885 -0
- package/dist/commands/sarif/renderer.d.ts +9 -0
- package/dist/commands/sarif/renderer.js +60 -0
- package/dist/commands/sarif/renderer.js.map +1 -0
- package/dist/commands/sarif/upload.d.ts +17 -0
- package/dist/commands/sarif/upload.js +197 -0
- package/dist/commands/sarif/upload.js.map +1 -0
- package/dist/commands/sarif/utils.d.ts +1 -0
- package/dist/commands/sarif/utils.js +11 -0
- package/dist/commands/sarif/utils.js.map +1 -0
- package/dist/helpers/file.d.ts +1 -0
- package/dist/helpers/file.js +9 -0
- package/dist/helpers/file.js.map +1 -0
- package/dist/helpers/interfaces.d.ts +2 -2
- package/dist/helpers/retry.d.ts +1 -1
- package/dist/helpers/retry.js +2 -3
- package/dist/helpers/retry.js.map +1 -1
- package/dist/helpers/utils.d.ts +9 -0
- package/dist/helpers/utils.js +13 -1
- package/dist/helpers/utils.js.map +1 -1
- package/dist/helpers/validation.d.ts +3 -0
- package/dist/helpers/validation.js +10 -1
- package/dist/helpers/validation.js.map +1 -1
- package/package.json +3 -1
- package/dist/commands/git-metadata/gitdb.d.ts +0 -7
- package/dist/commands/git-metadata/gitdb.js +0 -262
- package/dist/commands/git-metadata/gitdb.js.map +0 -1
- package/dist/commands/git-metadata/utils.d.ts +0 -16
- package/dist/commands/git-metadata/utils.js +0 -57
- package/dist/commands/git-metadata/utils.js.map +0 -1
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.uploadPackfile = exports.uploadPackfiles = exports.uploadToGitDB = void 0;
|
|
16
|
-
const child_process_1 = __importDefault(require("child_process"));
|
|
17
|
-
const fs_1 = __importDefault(require("fs"));
|
|
18
|
-
const promises_1 = require("fs/promises");
|
|
19
|
-
const os_1 = __importDefault(require("os"));
|
|
20
|
-
const path_1 = __importDefault(require("path"));
|
|
21
|
-
const form_data_1 = __importDefault(require("form-data"));
|
|
22
|
-
const retry_1 = require("../../helpers/retry");
|
|
23
|
-
const git_1 = require("./git");
|
|
24
|
-
const API_TIMEOUT = 15000;
|
|
25
|
-
// we only consider recent commits to avoid uploading the whole repository
|
|
26
|
-
// at most 1000 commits or > 1 month of data is considered.
|
|
27
|
-
const MAX_HISTORY = {
|
|
28
|
-
maxCommits: 1000,
|
|
29
|
-
oldestCommits: '1 month ago',
|
|
30
|
-
};
|
|
31
|
-
const uploadToGitDB = (log, request, git, dryRun) => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
-
let repoURL;
|
|
33
|
-
try {
|
|
34
|
-
repoURL = yield git_1.gitRemote(git);
|
|
35
|
-
log.debug(`Syncing repository ${repoURL}`);
|
|
36
|
-
}
|
|
37
|
-
catch (err) {
|
|
38
|
-
log.warn(`Failed getting repository URL: ${err}`);
|
|
39
|
-
throw err;
|
|
40
|
-
}
|
|
41
|
-
yield unshallowRepositoryWhenNeeded(log, git);
|
|
42
|
-
let latestCommits;
|
|
43
|
-
try {
|
|
44
|
-
latestCommits = yield getLatestLocalCommits(git);
|
|
45
|
-
if (latestCommits.length === 0) {
|
|
46
|
-
log.debug('No local commits found.');
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
log.debug(`${latestCommits.length} commits found, asking GitDB which ones are missing.`);
|
|
50
|
-
}
|
|
51
|
-
catch (err) {
|
|
52
|
-
log.warn(`Failed getting local commits: ${err}`);
|
|
53
|
-
throw err;
|
|
54
|
-
}
|
|
55
|
-
let commitsToExclude;
|
|
56
|
-
try {
|
|
57
|
-
commitsToExclude = yield getKnownCommits(log, request, repoURL, latestCommits);
|
|
58
|
-
log.debug(`${commitsToExclude.length} commits already in GitDB.`);
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
log.warn(`Failed getting commits to exclude: ${err}`);
|
|
62
|
-
throw err;
|
|
63
|
-
}
|
|
64
|
-
// Get the list of all objects (commits, trees) to upload. This list can be quite long
|
|
65
|
-
// so quite memory intensive (multiple MBs).
|
|
66
|
-
let objectsToUpload;
|
|
67
|
-
try {
|
|
68
|
-
objectsToUpload = yield getObjectsToUpload(git, commitsToExclude);
|
|
69
|
-
log.debug(`${objectsToUpload.length} objects to upload.`);
|
|
70
|
-
}
|
|
71
|
-
catch (err) {
|
|
72
|
-
log.warn(`Failed getting objects to upload: ${err}`);
|
|
73
|
-
throw err;
|
|
74
|
-
}
|
|
75
|
-
let packfiles;
|
|
76
|
-
let tmpDir;
|
|
77
|
-
try {
|
|
78
|
-
;
|
|
79
|
-
[packfiles, tmpDir] = yield generatePackFilesForCommits(log, objectsToUpload);
|
|
80
|
-
log.debug(`${packfiles.length} packfiles generated.`);
|
|
81
|
-
}
|
|
82
|
-
catch (err) {
|
|
83
|
-
log.warn(`Failed generating packfiles: ${err}`);
|
|
84
|
-
throw err;
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
if (dryRun) {
|
|
88
|
-
log.debug(`Dry-run enabled, not uploading anything.`);
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
log.debug(`Uploading packfiles...`);
|
|
92
|
-
yield exports.uploadPackfiles(log, request, repoURL, latestCommits[0], packfiles);
|
|
93
|
-
log.debug('Successfully uploaded packfiles.');
|
|
94
|
-
}
|
|
95
|
-
catch (err) {
|
|
96
|
-
log.warn(`Failed to upload packfiles: ${err}`);
|
|
97
|
-
throw err;
|
|
98
|
-
}
|
|
99
|
-
finally {
|
|
100
|
-
if (tmpDir !== undefined) {
|
|
101
|
-
fs_1.default.rmSync(tmpDir, { recursive: true });
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
exports.uploadToGitDB = uploadToGitDB;
|
|
106
|
-
const getLatestLocalCommits = (git) => __awaiter(void 0, void 0, void 0, function* () {
|
|
107
|
-
// we add some boundaries to avoid retrieving ALL commits here.
|
|
108
|
-
const logResult = yield git.log([`-n ${MAX_HISTORY.maxCommits}`, `--since="${MAX_HISTORY.oldestCommits}"`]);
|
|
109
|
-
return logResult.all.map((c) => c.hash);
|
|
110
|
-
});
|
|
111
|
-
const unshallowRepositoryWhenNeeded = (log, git) => __awaiter(void 0, void 0, void 0, function* () {
|
|
112
|
-
const isShallow = (yield git.revparse('--is-shallow-repository')) === 'true';
|
|
113
|
-
if (isShallow) {
|
|
114
|
-
log.info('[unshallow] Git repository is a shallow clone., unshallowing it...');
|
|
115
|
-
log.info('[unshallow] Setting remote.origin.partialclonefilter to "blob:none" to avoid fetching file content');
|
|
116
|
-
yield git.addConfig('remote.origin.partialclonefilter', 'blob:none');
|
|
117
|
-
log.info(`[unshallow] Running git fetch --shallow-since="${MAX_HISTORY.oldestCommits}" --update-shallow --refetch`);
|
|
118
|
-
yield git.fetch([`--shallow-since="${MAX_HISTORY.oldestCommits}"`, '--update-shallow', '--refetch']);
|
|
119
|
-
log.info('[unshallow] Fetch completed.');
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
// getKnownCommits asks the backend which of the given commits are already known
|
|
123
|
-
const getKnownCommits = (log, request, repoURL, latestCommits) => __awaiter(void 0, void 0, void 0, function* () {
|
|
124
|
-
const localCommitData = JSON.stringify({
|
|
125
|
-
meta: {
|
|
126
|
-
repository_url: repoURL,
|
|
127
|
-
},
|
|
128
|
-
data: latestCommits.map((commit) => ({
|
|
129
|
-
id: commit,
|
|
130
|
-
type: 'commit',
|
|
131
|
-
})),
|
|
132
|
-
});
|
|
133
|
-
const response = yield runRequest(log, 'search_commits', () => request({
|
|
134
|
-
url: '/api/v2/git/repository/search_commits',
|
|
135
|
-
headers: {
|
|
136
|
-
'Content-Type': 'application/json',
|
|
137
|
-
},
|
|
138
|
-
data: localCommitData,
|
|
139
|
-
method: 'POST',
|
|
140
|
-
timeout: API_TIMEOUT,
|
|
141
|
-
}));
|
|
142
|
-
const commits = response.data;
|
|
143
|
-
if (!commits || commits.data === undefined) {
|
|
144
|
-
throw new Error(`Invalid API response: ${response}`);
|
|
145
|
-
}
|
|
146
|
-
return commits.data.map((c) => {
|
|
147
|
-
if (c.type !== 'commit' || c.id === undefined) {
|
|
148
|
-
throw new Error('Invalid commit type response');
|
|
149
|
-
}
|
|
150
|
-
return validateCommit(c.id);
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
const validateCommit = (sha) => {
|
|
154
|
-
const isValidSha1 = (s) => /^[0-9a-f]{40}$/.test(s);
|
|
155
|
-
const isValidSha256 = (s) => /^[0-9a-f]{64}$/.test(s);
|
|
156
|
-
if (!isValidSha1(sha) && !isValidSha256(sha)) {
|
|
157
|
-
throw new Error(`Invalid commit format: ${sha}`);
|
|
158
|
-
}
|
|
159
|
-
return sha;
|
|
160
|
-
};
|
|
161
|
-
const getObjectsToUpload = (git, commitsToExclude) => __awaiter(void 0, void 0, void 0, function* () {
|
|
162
|
-
const rawResponse = yield git.raw([
|
|
163
|
-
'rev-list',
|
|
164
|
-
'--objects',
|
|
165
|
-
'--no-object-names',
|
|
166
|
-
'--filter=blob:none',
|
|
167
|
-
`--since="${MAX_HISTORY.oldestCommits}"`,
|
|
168
|
-
'HEAD',
|
|
169
|
-
].concat(commitsToExclude.map((sha) => '^' + sha)));
|
|
170
|
-
const commitsToInclude = rawResponse.split('\n').filter((c) => c !== '');
|
|
171
|
-
return commitsToInclude;
|
|
172
|
-
});
|
|
173
|
-
const generatePackFilesForCommits = (log, commits) => __awaiter(void 0, void 0, void 0, function* () {
|
|
174
|
-
if (commits.length === 0) {
|
|
175
|
-
return [[], undefined];
|
|
176
|
-
}
|
|
177
|
-
const generatePackfiles = (baseTmpPath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
178
|
-
const randomPrefix = String(Math.floor(Math.random() * 10000));
|
|
179
|
-
const tmpPath = yield promises_1.mkdtemp(path_1.default.join(baseTmpPath, 'dd-packfiles-'));
|
|
180
|
-
const packfilePath = path_1.default.join(tmpPath, randomPrefix);
|
|
181
|
-
const packObjectResults = child_process_1.default
|
|
182
|
-
.execSync(`git pack-objects --compression=9 --max-pack-size=3m ${packfilePath}`, {
|
|
183
|
-
input: commits.join('\n'),
|
|
184
|
-
})
|
|
185
|
-
.toString()
|
|
186
|
-
.split('\n')
|
|
187
|
-
.filter((sha) => sha.length > 0)
|
|
188
|
-
.map((sha) => `${packfilePath}-${sha}.pack`);
|
|
189
|
-
return [packObjectResults, tmpPath];
|
|
190
|
-
});
|
|
191
|
-
// Try using tmp folder first:
|
|
192
|
-
try {
|
|
193
|
-
return generatePackfiles(os_1.default.tmpdir());
|
|
194
|
-
}
|
|
195
|
-
catch (err) {
|
|
196
|
-
/**
|
|
197
|
-
* The generation of pack files in the temporary folder (from `os.tmpdir()`)
|
|
198
|
-
* sometimes fails in certain CI setups with the error message
|
|
199
|
-
* `unable to rename temporary pack file: Invalid cross-device link`.
|
|
200
|
-
* The reason why is unclear.
|
|
201
|
-
*
|
|
202
|
-
* A workaround is to attempt to generate the pack files in `process.cwd()`.
|
|
203
|
-
* While this works most of the times, it's not ideal since it affects the git status.
|
|
204
|
-
* This workaround is intended to be temporary.
|
|
205
|
-
*
|
|
206
|
-
* TODO: fix issue and remove workaround.
|
|
207
|
-
*/
|
|
208
|
-
log.warn(`Failed generation of packfiles in tmpdir: ${err}`);
|
|
209
|
-
log.warn(`Generating them in ${process.cwd()} instead`);
|
|
210
|
-
return generatePackfiles(process.cwd());
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
const uploadPackfiles = (log, request, repoURL, headCommit, packfilePaths) => __awaiter(void 0, void 0, void 0, function* () {
|
|
214
|
-
// this loop makes sure requests are performed sequentially
|
|
215
|
-
for (const pack of packfilePaths) {
|
|
216
|
-
yield exports.uploadPackfile(log, request, repoURL, headCommit, pack);
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
exports.uploadPackfiles = uploadPackfiles;
|
|
220
|
-
const uploadPackfile = (log, request, repoURL, headCommit, packfilePath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
221
|
-
const pushedSha = JSON.stringify({
|
|
222
|
-
data: {
|
|
223
|
-
id: headCommit,
|
|
224
|
-
type: 'commit',
|
|
225
|
-
},
|
|
226
|
-
meta: {
|
|
227
|
-
repository_url: repoURL,
|
|
228
|
-
},
|
|
229
|
-
});
|
|
230
|
-
const form = new form_data_1.default();
|
|
231
|
-
form.append('pushedSha', pushedSha, { contentType: 'application/json' });
|
|
232
|
-
const packFileContent = fs_1.default.readFileSync(packfilePath);
|
|
233
|
-
// The original filename includes a random prefix, so we remove it here
|
|
234
|
-
const [, filename] = path_1.default.basename(packfilePath).split('-');
|
|
235
|
-
form.append('packfile', packFileContent, {
|
|
236
|
-
filename,
|
|
237
|
-
contentType: 'application/octet-stream',
|
|
238
|
-
});
|
|
239
|
-
return runRequest(log, 'packfile', () => request({
|
|
240
|
-
url: '/api/v2/git/repository/packfile',
|
|
241
|
-
headers: Object.assign({}, form.getHeaders()),
|
|
242
|
-
timeout: API_TIMEOUT,
|
|
243
|
-
data: form,
|
|
244
|
-
method: 'POST',
|
|
245
|
-
}));
|
|
246
|
-
});
|
|
247
|
-
exports.uploadPackfile = uploadPackfile;
|
|
248
|
-
// runRequest will run the passed request, with retries of retriable errors + logging of any retry attempt.
|
|
249
|
-
const runRequest = (log, reqName, request) => __awaiter(void 0, void 0, void 0, function* () {
|
|
250
|
-
return retry_1.retryRequest(request, {
|
|
251
|
-
retries: 2,
|
|
252
|
-
onRetry: (e, attempt) => {
|
|
253
|
-
let errorMessage = `${e}`;
|
|
254
|
-
const maybeHttpError = e;
|
|
255
|
-
if (maybeHttpError.response && maybeHttpError.response.statusText) {
|
|
256
|
-
errorMessage = `${maybeHttpError.message} (${maybeHttpError.response.statusText})`;
|
|
257
|
-
}
|
|
258
|
-
log.warn(`[attempt ${attempt}] Retrying ${reqName} request: ${errorMessage}`);
|
|
259
|
-
},
|
|
260
|
-
});
|
|
261
|
-
});
|
|
262
|
-
//# sourceMappingURL=gitdb.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gitdb.js","sourceRoot":"","sources":["../../../src/commands/git-metadata/gitdb.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAAyC;AACzC,4CAAmB;AACnB,0CAAmC;AACnC,4CAAmB;AACnB,gDAAuB;AAGvB,0DAAgC;AAIhC,+CAAgD;AAEhD,+BAA6C;AAG7C,MAAM,WAAW,GAAG,KAAK,CAAA;AAEzB,0EAA0E;AAC1E,2DAA2D;AAC3D,MAAM,WAAW,GAAG;IAClB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,aAAa;CAC7B,CAAA;AAEM,MAAM,aAAa,GAAG,CAC3B,GAAW,EACX,OAAuB,EACvB,GAAwB,EACxB,MAAe,EACf,EAAE;IACF,IAAI,OAAO,CAAA;IACX,IAAI;QACF,OAAO,GAAG,MAAM,eAAU,CAAC,GAAG,CAAC,CAAA;QAC/B,GAAG,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAA;KAC3C;IAAC,OAAO,GAAG,EAAE;QACZ,GAAG,CAAC,IAAI,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAA;QACjD,MAAM,GAAG,CAAA;KACV;IAED,MAAM,6BAA6B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAE7C,IAAI,aAAa,CAAA;IACjB,IAAI;QACF,aAAa,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAA;QAChD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;YAEpC,OAAM;SACP;QACD,GAAG,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,MAAM,sDAAsD,CAAC,CAAA;KACzF;IAAC,OAAO,GAAG,EAAE;QACZ,GAAG,CAAC,IAAI,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAA;QAChD,MAAM,GAAG,CAAA;KACV;IAED,IAAI,gBAAgB,CAAA;IACpB,IAAI;QACF,gBAAgB,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QAC9E,GAAG,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,MAAM,4BAA4B,CAAC,CAAA;KAClE;IAAC,OAAO,GAAG,EAAE;QACZ,GAAG,CAAC,IAAI,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAA;QACrD,MAAM,GAAG,CAAA;KACV;IAED,sFAAsF;IACtF,4CAA4C;IAC5C,IAAI,eAAe,CAAA;IACnB,IAAI;QACF,eAAe,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;QACjE,GAAG,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,MAAM,qBAAqB,CAAC,CAAA;KAC1D;IAAC,OAAO,GAAG,EAAE;QACZ,GAAG,CAAC,IAAI,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAA;QACpD,MAAM,GAAG,CAAA;KACV;IAED,IAAI,SAAS,CAAA;IACb,IAAI,MAAM,CAAA;IACV,IAAI;QACF,CAAC;QAAA,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,2BAA2B,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;QAC9E,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,uBAAuB,CAAC,CAAA;KACtD;IAAC,OAAO,GAAG,EAAE;QACZ,GAAG,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAA;QAC/C,MAAM,GAAG,CAAA;KACV;IAED,IAAI;QACF,IAAI,MAAM,EAAE;YACV,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAErD,OAAM;SACP;QACD,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACnC,MAAM,uBAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACzE,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;KAC9C;IAAC,OAAO,GAAG,EAAE;QACZ,GAAG,CAAC,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAA;QAC9C,MAAM,GAAG,CAAA;KACV;YAAS;QACR,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,YAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;SACrC;KACF;AACH,CAAC,CAAA,CAAA;AA9EY,QAAA,aAAa,iBA8EzB;AAED,MAAM,qBAAqB,GAAG,CAAO,GAAwB,EAAE,EAAE;IAC/D,+DAA+D;IAC/D,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,EAAE,EAAE,YAAY,WAAW,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;IAE3G,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AACzC,CAAC,CAAA,CAAA;AAED,MAAM,6BAA6B,GAAG,CAAO,GAAW,EAAE,GAAwB,EAAE,EAAE;IACpF,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,KAAK,MAAM,CAAA;IAC5E,IAAI,SAAS,EAAE;QACb,GAAG,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;QAC9E,GAAG,CAAC,IAAI,CAAC,oGAAoG,CAAC,CAAA;QAC9G,MAAM,GAAG,CAAC,SAAS,CAAC,kCAAkC,EAAE,WAAW,CAAC,CAAA;QACpE,GAAG,CAAC,IAAI,CAAC,kDAAkD,WAAW,CAAC,aAAa,8BAA8B,CAAC,CAAA;QACnH,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,oBAAoB,WAAW,CAAC,aAAa,GAAG,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAA;QACpG,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;KACzC;AACH,CAAC,CAAA,CAAA;AAED,gFAAgF;AAChF,MAAM,eAAe,GAAG,CAAO,GAAW,EAAE,OAAuB,EAAE,OAAe,EAAE,aAAuB,EAAE,EAAE;IAU/G,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,EAAE;YACJ,cAAc,EAAE,OAAO;SACxB;QACD,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;KACJ,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAC5D,OAAO,CAAC;QACN,GAAG,EAAE,uCAAuC;QAC5C,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,WAAW;KACrB,CAAC,CACH,CAAA;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAA4B,CAAA;IACrD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;KACrD;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;SAChD;QAED,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;IACrC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC3D,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAE7D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;QAC5C,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAA;KACjD;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAO,GAAwB,EAAE,gBAA0B,EAAE,EAAE;IACxF,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,GAAG,CAC/B;QACE,UAAU;QACV,WAAW;QACX,mBAAmB;QACnB,oBAAoB;QACpB,YAAY,WAAW,CAAC,aAAa,GAAG;QACxC,MAAM;KACP,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CACnD,CAAA;IACD,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IAExE,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA,CAAA;AAED,MAAM,2BAA2B,GAAG,CAAO,GAAW,EAAE,OAAiB,EAA2C,EAAE;IACpH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;KACvB;IAED,MAAM,iBAAiB,GAAG,CAAO,WAAmB,EAA2C,EAAE;QAC/F,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;QAC9D,MAAM,OAAO,GAAG,MAAM,kBAAO,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAA;QACtE,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QACrD,MAAM,iBAAiB,GAAG,uBAAa;aACpC,QAAQ,CAAC,uDAAuD,YAAY,EAAE,EAAE;YAC/E,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1B,CAAC;aACD,QAAQ,EAAE;aACV,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;aAC/B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,YAAY,IAAI,GAAG,OAAO,CAAC,CAAA;QAE9C,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC,CAAA,CAAA;IAED,8BAA8B;IAC9B,IAAI;QACF,OAAO,iBAAiB,CAAC,YAAE,CAAC,MAAM,EAAE,CAAC,CAAA;KACtC;IAAC,OAAO,GAAG,EAAE;QACZ;;;;;;;;;;;WAWG;QACH,GAAG,CAAC,IAAI,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAA;QAC5D,GAAG,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAEvD,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;KACxC;AACH,CAAC,CAAA,CAAA;AAEM,MAAM,eAAe,GAAG,CAC7B,GAAW,EACX,OAAuB,EACvB,OAAe,EACf,UAAkB,EAClB,aAAuB,EACvB,EAAE;IACF,2DAA2D;IAC3D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE;QAChC,MAAM,sBAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;KAC9D;AACH,CAAC,CAAA,CAAA;AAXY,QAAA,eAAe,mBAW3B;AAEM,MAAM,cAAc,GAAG,CAC5B,GAAW,EACX,OAAuB,EACvB,OAAe,EACf,UAAkB,EAClB,YAAoB,EACpB,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,EAAE;YACJ,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,cAAc,EAAE,OAAO;SACxB;KACF,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAA;IAE3B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,EAAC,WAAW,EAAE,kBAAkB,EAAC,CAAC,CAAA;IACtE,MAAM,eAAe,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;IACrD,uEAAuE;IACvE,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,cAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3D,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,EAAE;QACvC,QAAQ;QACR,WAAW,EAAE,0BAA0B;KACxC,CAAC,CAAA;IAEF,OAAO,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CACtC,OAAO,CAAC;QACN,GAAG,EAAE,iCAAiC;QACtC,OAAO,oBACF,IAAI,CAAC,UAAU,EAAE,CACrB;QACD,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,MAAM;KACf,CAAC,CACH,CAAA;AACH,CAAC,CAAA,CAAA;AAvCY,QAAA,cAAc,kBAuC1B;AAED,2GAA2G;AAC3G,MAAM,UAAU,GAAG,CAAU,GAAW,EAAE,OAAe,EAAE,OAAwC,EAAE,EAAE;IACrG,OAAO,oBAAY,CAAC,OAAO,EAAE;QAC3B,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;YACtB,IAAI,YAAY,GAAG,GAAG,CAAC,EAAE,CAAA;YACzB,MAAM,cAAc,GAAG,CAAQ,CAAA;YAC/B,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE;gBACjE,YAAY,GAAG,GAAG,cAAc,CAAC,OAAO,KAAK,cAAc,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAA;aACnF;YACD,GAAG,CAAC,IAAI,CAAC,YAAY,OAAO,cAAc,OAAO,aAAa,YAAY,EAAE,CAAC,CAAA;QAC/E,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export declare const timedExecAsync: <I, O>(f: (input: I) => Promise<O>, input: I) => Promise<number>;
|
|
2
|
-
export declare enum LogLevel {
|
|
3
|
-
DEBUG = 1,
|
|
4
|
-
INFO = 2,
|
|
5
|
-
WARN = 3,
|
|
6
|
-
ERROR = 4
|
|
7
|
-
}
|
|
8
|
-
export declare class Logger {
|
|
9
|
-
private loglevel;
|
|
10
|
-
private writeMessage;
|
|
11
|
-
constructor(writeMessage: (s: string) => void, loglevel: LogLevel);
|
|
12
|
-
error(s: string): void;
|
|
13
|
-
warn(s: string): void;
|
|
14
|
-
info(s: string): void;
|
|
15
|
-
debug(s: string): void;
|
|
16
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.Logger = exports.LogLevel = exports.timedExecAsync = void 0;
|
|
16
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
-
const timedExecAsync = (f, input) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
-
const initialTime = Date.now();
|
|
19
|
-
yield f(input);
|
|
20
|
-
return (Date.now() - initialTime) / 1000;
|
|
21
|
-
});
|
|
22
|
-
exports.timedExecAsync = timedExecAsync;
|
|
23
|
-
var LogLevel;
|
|
24
|
-
(function (LogLevel) {
|
|
25
|
-
LogLevel[LogLevel["DEBUG"] = 1] = "DEBUG";
|
|
26
|
-
LogLevel[LogLevel["INFO"] = 2] = "INFO";
|
|
27
|
-
LogLevel[LogLevel["WARN"] = 3] = "WARN";
|
|
28
|
-
LogLevel[LogLevel["ERROR"] = 4] = "ERROR";
|
|
29
|
-
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
|
|
30
|
-
class Logger {
|
|
31
|
-
constructor(writeMessage, loglevel) {
|
|
32
|
-
this.writeMessage = writeMessage;
|
|
33
|
-
this.loglevel = loglevel;
|
|
34
|
-
}
|
|
35
|
-
error(s) {
|
|
36
|
-
if (this.loglevel <= LogLevel.ERROR) {
|
|
37
|
-
this.writeMessage(chalk_1.default.red(s) + '\n');
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
warn(s) {
|
|
41
|
-
if (this.loglevel <= LogLevel.WARN) {
|
|
42
|
-
this.writeMessage(chalk_1.default.yellow(s) + '\n');
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
info(s) {
|
|
46
|
-
if (this.loglevel <= LogLevel.INFO) {
|
|
47
|
-
this.writeMessage(s + '\n');
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
debug(s) {
|
|
51
|
-
if (this.loglevel <= LogLevel.DEBUG) {
|
|
52
|
-
this.writeMessage(s + '\n');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.Logger = Logger;
|
|
57
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/git-metadata/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAyB;AAElB,MAAM,cAAc,GAAG,CAAa,CAA2B,EAAE,KAAQ,EAAmB,EAAE;IACnG,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC9B,MAAM,CAAC,CAAC,KAAK,CAAC,CAAA;IAEd,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,IAAI,CAAA;AAC1C,CAAC,CAAA,CAAA;AALY,QAAA,cAAc,kBAK1B;AAED,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,uCAAI,CAAA;IACJ,uCAAI,CAAA;IACJ,yCAAK,CAAA;AACP,CAAC,EALW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAKnB;AAED,MAAa,MAAM;IAIjB,YAAY,YAAiC,EAAE,QAAkB;QAC/D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEM,KAAK,CAAC,CAAS;QACpB,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;SACvC;IACH,CAAC;IAEM,IAAI,CAAC,CAAS;QACnB,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;SAC1C;IACH,CAAC;IAEM,IAAI,CAAC,CAAS;QACnB,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;SAC5B;IACH,CAAC;IAEM,KAAK,CAAC,CAAS;QACpB,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;SAC5B;IACH,CAAC;CACF;AAhCD,wBAgCC"}
|