@clickview/ship-it 0.0.2-dev.2 → 0.0.3
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/lib/src/api-clients/git-lab/GitLabApiClient.js +34 -2
- package/lib/src/api-clients/git-lab/GitLabMapper.js +10 -1
- package/lib/src/commands/CreateMergeRequestCommand.js +3 -3
- package/lib/src/commands/{CommitPackageVersionsCommand.js → ValidateMergeRequestCommand.js} +12 -12
- package/lib/src/commands/index.js +1 -0
- package/lib/src/constants/CommandTypeMapping.js +2 -1
- package/lib/src/index.js +1 -1
- package/lib/src/interfaces/command-options/index.js +2 -0
- package/lib/src/interfaces/models/Milestone.js +2 -0
- package/lib/src/interfaces/models/index.js +1 -0
- package/lib/src/inversify.config.js +2 -0
- package/lib/src/services/GitLabService.js +36 -2
- package/lib/src/startup/SetupCommands.js +36 -10
- package/lib/src/tasks/BumpPackagesTask.js +20 -7
- package/lib/src/tasks/CommitPackageVersionsTask.js +11 -17
- package/lib/src/tasks/CreateMergeRequestTask.js +2 -2
- package/lib/src/tasks/InstallPackagesTask.js +58 -17
- package/lib/src/tasks/ValidateDescriptionsTask.js +11 -8
- package/lib/src/tasks/{CommitLocalPackagesTask.js → ValidateMergeRequestTask.js} +38 -67
- package/lib/src/tasks/ValidateTask.js +2 -2
- package/lib/src/tasks/index.js +1 -0
- package/lib/src/types.js +4 -2
- package/lib/src/utils/Descriptions.js +23 -19
- package/lib/src/utils/ProjectIds.js +1 -1
- package/package.json +1 -1
- package/lib/src/api-clients/GitLabApiClient.js +0 -342
- package/lib/src/constants/index.js +0 -18
- /package/lib/src/interfaces/{ShipItOptions.js → command-options/InstallPackagesCommandOptions.js} +0 -0
- /package/lib/src/interfaces/command-options/{CommitPackageVersionsCommandOptions.js → ValidateMRCommandOptions.js} +0 -0
|
@@ -47,91 +47,62 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
47
47
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
51
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
52
|
-
};
|
|
53
50
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
-
exports.
|
|
51
|
+
exports.ValidateMergeRequestTask = void 0;
|
|
55
52
|
require("reflect-metadata");
|
|
56
|
-
var fs_1 = __importDefault(require("fs"));
|
|
57
53
|
var inversify_1 = require("inversify");
|
|
54
|
+
var Logger_1 = require("../utils/Logger");
|
|
58
55
|
var types_1 = require("../types");
|
|
59
56
|
var services_1 = require("../services");
|
|
60
|
-
var MonorepoPackageJsonFiles_1 = require("../constants/MonorepoPackageJsonFiles");
|
|
61
57
|
var utils_1 = require("../utils");
|
|
62
|
-
var
|
|
63
|
-
function
|
|
58
|
+
var ValidateMergeRequestTask = /** @class */ (function () {
|
|
59
|
+
function ValidateMergeRequestTask(service) {
|
|
64
60
|
this.service = service;
|
|
65
61
|
}
|
|
66
|
-
|
|
62
|
+
ValidateMergeRequestTask.prototype.run = function (options) {
|
|
67
63
|
return __awaiter(this, void 0, void 0, function () {
|
|
68
|
-
var mergeRequest,
|
|
64
|
+
var project, mergeRequestId, mergeRequest, isDescriptionValid;
|
|
69
65
|
return __generator(this, function (_a) {
|
|
70
66
|
switch (_a.label) {
|
|
71
67
|
case 0:
|
|
72
|
-
|
|
73
|
-
return [4 /*yield*/, this.service.
|
|
68
|
+
Logger_1.Logger.logTask('Validating Merge Request');
|
|
69
|
+
return [4 /*yield*/, this.service.getProject(options.projectId)];
|
|
74
70
|
case 1:
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
project = _a.sent();
|
|
72
|
+
mergeRequestId = options.branchName.replace('merge-requests/', '');
|
|
73
|
+
return [4 /*yield*/, this.service.getMergeRequestById(project.id, mergeRequestId)];
|
|
77
74
|
case 2:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
75
|
+
mergeRequest = _a.sent();
|
|
76
|
+
if (!mergeRequest) {
|
|
77
|
+
Logger_1.Logger.logError("Could not find merge request [".concat(project.title, "]: [").concat(options.branchName, "]"));
|
|
78
|
+
return [2 /*return*/, false];
|
|
79
|
+
}
|
|
80
|
+
if (mergeRequest.targetBranch !== 'dev') {
|
|
81
|
+
Logger_1.Logger.logMessage("Merge request is not targeting dev and does not need to be validated");
|
|
82
|
+
return [2 /*return*/, true];
|
|
83
|
+
}
|
|
84
|
+
if (!mergeRequest.milestone) {
|
|
85
|
+
Logger_1.Logger.logError("Merge request does not have a milestone");
|
|
86
|
+
return [2 /*return*/, false];
|
|
87
|
+
}
|
|
88
|
+
isDescriptionValid = project.id.toString() === utils_1.ProjectIds.MONOREPO_PROJECT_ID ?
|
|
89
|
+
utils_1.Descriptions.isMonorepoDescriptionValid(mergeRequest.description) :
|
|
90
|
+
utils_1.Descriptions.isDescriptionValid(mergeRequest.description);
|
|
91
|
+
if (!isDescriptionValid) {
|
|
92
|
+
Logger_1.Logger.logError('Merge request description is invalid');
|
|
93
|
+
return [2 /*return*/, false];
|
|
94
|
+
}
|
|
95
|
+
Logger_1.Logger.logSuccess('Merge request is valid');
|
|
86
96
|
return [2 /*return*/, true];
|
|
87
97
|
}
|
|
88
98
|
});
|
|
89
99
|
});
|
|
90
100
|
};
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
return __generator(this, function (_a) {
|
|
95
|
-
commitFiles = [];
|
|
96
|
-
for (_i = 0, MONOREPO_PACKAGE_JSON_FILES_1 = MonorepoPackageJsonFiles_1.MONOREPO_PACKAGE_JSON_FILES; _i < MONOREPO_PACKAGE_JSON_FILES_1.length; _i++) {
|
|
97
|
-
filePath = MONOREPO_PACKAGE_JSON_FILES_1[_i];
|
|
98
|
-
console.log('reading file', filePath);
|
|
99
|
-
commitFiles.push({
|
|
100
|
-
filePath: filePath,
|
|
101
|
-
content: fs_1.default.readFileSync(filePath, { encoding: 'utf8' })
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
return [2 /*return*/, commitFiles];
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
};
|
|
108
|
-
CommitLocalPackagesTask = __decorate([
|
|
109
|
-
inversify_1.injectable(),
|
|
110
|
-
__param(0, inversify_1.inject(types_1.SERVICES.GitLabService)),
|
|
101
|
+
ValidateMergeRequestTask = __decorate([
|
|
102
|
+
(0, inversify_1.injectable)(),
|
|
103
|
+
__param(0, (0, inversify_1.inject)(types_1.SERVICES.GitLabService)),
|
|
111
104
|
__metadata("design:paramtypes", [services_1.GitLabService])
|
|
112
|
-
],
|
|
113
|
-
return
|
|
105
|
+
], ValidateMergeRequestTask);
|
|
106
|
+
return ValidateMergeRequestTask;
|
|
114
107
|
}());
|
|
115
|
-
exports.
|
|
116
|
-
// function getPackageJsonPaths(): string[] {
|
|
117
|
-
// const packageJsonPaths: string[] = [];
|
|
118
|
-
// // Walk through the file system and push the path of each package.json file to the array
|
|
119
|
-
// function findPackageJsonPathsInDirectory(startPath: string) {
|
|
120
|
-
// const files = fs.readdirSync(startPath);
|
|
121
|
-
// files.forEach(file => {
|
|
122
|
-
// const filename = path.join(startPath, file);
|
|
123
|
-
// const stat = fs.lstatSync(filename);
|
|
124
|
-
// if (stat.isDirectory())
|
|
125
|
-
// return findPackageJsonPathsInDirectory(filename);
|
|
126
|
-
// if (!filename.includes('package.json'))
|
|
127
|
-
// return;
|
|
128
|
-
// // Ignore any `package.json` files found under `node_modules`
|
|
129
|
-
// if (filename.includes('node_modules'))
|
|
130
|
-
// return;
|
|
131
|
-
// packageJsonPaths.push(filename);
|
|
132
|
-
// });
|
|
133
|
-
// };
|
|
134
|
-
// const packagesRoot = path.resolve(__dirname, '../../../packages');
|
|
135
|
-
// findPackageJsonPathsInDirectory(packagesRoot); // Start from the `/packages` folder
|
|
136
|
-
// return packageJsonPaths;
|
|
137
|
-
// }
|
|
108
|
+
exports.ValidateMergeRequestTask = ValidateMergeRequestTask;
|
|
@@ -95,7 +95,7 @@ var ValidateTask = /** @class */ (function () {
|
|
|
95
95
|
/**
|
|
96
96
|
* Any MRs that are not targeting dev should not have a milestone
|
|
97
97
|
*/
|
|
98
|
-
var nonDevMrs = project.mergeRequests.filter(function (mr) { return mr.targetBranch !== 'dev'; });
|
|
98
|
+
var nonDevMrs = project.mergeRequests.filter(function (mr) { return mr.targetBranch !== 'dev' && mr.targetBranch !== 'master'; });
|
|
99
99
|
if (nonDevMrs.length)
|
|
100
100
|
ready = false;
|
|
101
101
|
if (!ready)
|
|
@@ -133,7 +133,7 @@ var ValidateTask = /** @class */ (function () {
|
|
|
133
133
|
for (var _i = 0, projects_2 = projects; _i < projects_2.length; _i++) {
|
|
134
134
|
var project = projects_2[_i];
|
|
135
135
|
var notReadyMrs = project.mergeRequests.filter(function (mr) { return mr.status === 'opened'; });
|
|
136
|
-
var nonDevMrs = project.mergeRequests.filter(function (mr) { return mr.targetBranch !== 'dev'; });
|
|
136
|
+
var nonDevMrs = project.mergeRequests.filter(function (mr) { return mr.targetBranch !== 'dev' && mr.targetBranch !== 'master'; });
|
|
137
137
|
if (notReadyMrs.length)
|
|
138
138
|
allNotReadyMrs.push.apply(allNotReadyMrs, notReadyMrs);
|
|
139
139
|
if (nonDevMrs.length)
|
package/lib/src/tasks/index.js
CHANGED
|
@@ -23,5 +23,6 @@ __exportStar(require("./CreateReleaseNotesTask"), exports);
|
|
|
23
23
|
__exportStar(require("./InstallPackagesTask"), exports);
|
|
24
24
|
__exportStar(require("./ValidateCommitsTask"), exports);
|
|
25
25
|
__exportStar(require("./ValidateDescriptionsTask"), exports);
|
|
26
|
+
__exportStar(require("./ValidateMergeRequestTask"), exports);
|
|
26
27
|
__exportStar(require("./ValidateTask"), exports);
|
|
27
28
|
__exportStar(require("./VersionTask"), exports);
|
package/lib/src/types.js
CHANGED
|
@@ -21,7 +21,8 @@ exports.TASKS = {
|
|
|
21
21
|
CreateReleaseNotesTask: Symbol.for('CreateReleaseNotesTask'),
|
|
22
22
|
InstallPackagesTask: Symbol.for('InstallPackagesTask'),
|
|
23
23
|
BumpPackagesTask: Symbol.for('BumpPackagesTask'),
|
|
24
|
-
CommitPackageVersionsTask: Symbol.for('CommitPackageVersionsTask')
|
|
24
|
+
CommitPackageVersionsTask: Symbol.for('CommitPackageVersionsTask'),
|
|
25
|
+
ValidateMergeRequestTask: Symbol.for('ValidateMergeRequestTask')
|
|
25
26
|
};
|
|
26
27
|
exports.COMMANDS = {
|
|
27
28
|
StatusCommand: Symbol.for('StatusCommand'),
|
|
@@ -31,5 +32,6 @@ exports.COMMANDS = {
|
|
|
31
32
|
CreateMergeRequestCommand: Symbol.for('CreateMergeRequestCommand'),
|
|
32
33
|
CreateReleaseNotesCommand: Symbol.for('CreateReleaseNotesCommand'),
|
|
33
34
|
InstallPackagesCommand: Symbol.for('InstallPackagesCommand'),
|
|
34
|
-
BumpPackagesCommand: Symbol.for('BumpPackagesCommand')
|
|
35
|
+
BumpPackagesCommand: Symbol.for('BumpPackagesCommand'),
|
|
36
|
+
ValidateMergeRequestCommand: Symbol.for('ValidateMergeRequestCommand')
|
|
35
37
|
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Descriptions = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
var VALID_HEADINGS = {
|
|
5
|
+
'dependencies': true,
|
|
6
|
+
'before release': true,
|
|
7
|
+
'customer changes': true,
|
|
8
|
+
'code changes': true,
|
|
9
|
+
'testing': true,
|
|
10
|
+
'notes': true
|
|
11
|
+
};
|
|
12
12
|
var VALID_MONOREPO_HEADINGS = {
|
|
13
13
|
'common': true,
|
|
14
14
|
'curator': true,
|
|
@@ -32,7 +32,7 @@ function toObject(lines, headingPrefix) {
|
|
|
32
32
|
for (var _i = 0, lines_1 = lines; _i < lines_1.length; _i++) {
|
|
33
33
|
var line = lines_1[_i];
|
|
34
34
|
// Skip empty lines
|
|
35
|
-
if (!line.trim() || line === '/n'
|
|
35
|
+
if (!line.trim() || line === '/n')
|
|
36
36
|
continue;
|
|
37
37
|
if (line.startsWith(headingPrefix + ' ')) {
|
|
38
38
|
// TODO: Potentially add heading transforms to capture multiple variants
|
|
@@ -46,7 +46,11 @@ function toObject(lines, headingPrefix) {
|
|
|
46
46
|
*/
|
|
47
47
|
if (line.startsWith('!'))
|
|
48
48
|
obj[currentHeading] += '\n';
|
|
49
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Skip the line if the dev is opting out by adding n/a
|
|
51
|
+
*/
|
|
52
|
+
if (line.toLowerCase().trim() !== 'n/a')
|
|
53
|
+
obj[currentHeading] += line + '\n';
|
|
50
54
|
}
|
|
51
55
|
return obj;
|
|
52
56
|
}
|
|
@@ -59,11 +63,10 @@ exports.Descriptions = {
|
|
|
59
63
|
var keys = Object.keys(obj);
|
|
60
64
|
if (!(keys === null || keys === void 0 ? void 0 : keys.length))
|
|
61
65
|
return false;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
// return false;
|
|
66
|
+
if (keys.some(function (k) { return !VALID_HEADINGS[k]; }))
|
|
67
|
+
return false;
|
|
68
|
+
if (obj['testing'] === undefined)
|
|
69
|
+
return false;
|
|
67
70
|
return true;
|
|
68
71
|
},
|
|
69
72
|
isMonorepoDescriptionValid: function (description) {
|
|
@@ -75,9 +78,8 @@ exports.Descriptions = {
|
|
|
75
78
|
return false;
|
|
76
79
|
if (keys.some(function (k) { return !VALID_MONOREPO_HEADINGS[k]; }))
|
|
77
80
|
return false;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
// return false;
|
|
81
|
+
if (!obj['testing'])
|
|
82
|
+
return false;
|
|
81
83
|
var isValid = Object.keys(obj).every(function (key) {
|
|
82
84
|
if (key !== 'dependencies' && key !== 'testing')
|
|
83
85
|
return true;
|
|
@@ -90,7 +92,7 @@ exports.Descriptions = {
|
|
|
90
92
|
var descriptionObjs = mergeRequests
|
|
91
93
|
.filter(function (mr) { return mr.status === 'merged'; })
|
|
92
94
|
.map(function (mr) { return toObject(mr.description.split('\n'), headingPrefix); });
|
|
93
|
-
var obj =
|
|
95
|
+
var obj = {};
|
|
94
96
|
var _loop_1 = function (descriptionObj) {
|
|
95
97
|
Object.keys(descriptionObj).forEach(function (key) {
|
|
96
98
|
if (!obj[key])
|
|
@@ -106,6 +108,8 @@ exports.Descriptions = {
|
|
|
106
108
|
Object.keys(obj).forEach(function (key) {
|
|
107
109
|
if (key === 'notes')
|
|
108
110
|
return;
|
|
111
|
+
if (!obj[key])
|
|
112
|
+
return;
|
|
109
113
|
description += '\n' + headingPrefix + ' ' + key.charAt(0).toUpperCase() + key.slice(1) + '\n';
|
|
110
114
|
description += obj[key];
|
|
111
115
|
});
|
package/package.json
CHANGED
|
@@ -1,342 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
24
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
25
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
26
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
27
|
-
function step(op) {
|
|
28
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
29
|
-
while (_) try {
|
|
30
|
-
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;
|
|
31
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
32
|
-
switch (op[0]) {
|
|
33
|
-
case 0: case 1: t = op; break;
|
|
34
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
35
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
36
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
37
|
-
default:
|
|
38
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
39
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
40
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
41
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
42
|
-
if (t[2]) _.ops.pop();
|
|
43
|
-
_.trys.pop(); continue;
|
|
44
|
-
}
|
|
45
|
-
op = body.call(thisArg, _);
|
|
46
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
47
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
-
exports.GitLabApiClient = void 0;
|
|
52
|
-
require("reflect-metadata");
|
|
53
|
-
var inversify_1 = require("inversify");
|
|
54
|
-
var node_1 = require("@gitbeaker/node");
|
|
55
|
-
var types_1 = require("types");
|
|
56
|
-
var GitLabApiClient = /** @class */ (function () {
|
|
57
|
-
function GitLabApiClient(config) {
|
|
58
|
-
this._config = config;
|
|
59
|
-
this._client = new node_1.Gitlab({
|
|
60
|
-
token: this._config.accessToken,
|
|
61
|
-
host: this._config.url
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
GitLabApiClient.prototype.getMergeRequests = function (options) {
|
|
65
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
66
|
-
var milestone, projectIds, mergeRequests;
|
|
67
|
-
return __generator(this, function (_a) {
|
|
68
|
-
switch (_a.label) {
|
|
69
|
-
case 0:
|
|
70
|
-
milestone = options.milestone, projectIds = options.projectIds;
|
|
71
|
-
if (!milestone && !(projectIds === null || projectIds === void 0 ? void 0 : projectIds.length))
|
|
72
|
-
throw new Error('Must specifiy one of the following: Milestone or ProjectIds');
|
|
73
|
-
return [4 /*yield*/, this._client.MergeRequests.all({
|
|
74
|
-
milestone: milestone,
|
|
75
|
-
scope: 'all'
|
|
76
|
-
})];
|
|
77
|
-
case 1:
|
|
78
|
-
mergeRequests = _a.sent();
|
|
79
|
-
/**
|
|
80
|
-
* Filter out only projectIds we care aboutr
|
|
81
|
-
*/
|
|
82
|
-
if (projectIds === null || projectIds === void 0 ? void 0 : projectIds.length) {
|
|
83
|
-
mergeRequests = mergeRequests.filter(function (mr) {
|
|
84
|
-
return projectIds.some(function (p) { return mr.project_id.toString() === p.toString(); });
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
return [2 /*return*/, mergeRequests.map(function (m) {
|
|
88
|
-
var _a;
|
|
89
|
-
return ({
|
|
90
|
-
title: m.title,
|
|
91
|
-
description: m.description,
|
|
92
|
-
status: m.state,
|
|
93
|
-
projectId: m.project_id,
|
|
94
|
-
mergeCommit: m.merge_commit_sha,
|
|
95
|
-
author: m.author.name,
|
|
96
|
-
assignee: (_a = m.assignee) === null || _a === void 0 ? void 0 : _a.name,
|
|
97
|
-
url: m.web_url,
|
|
98
|
-
hasConflicts: m.has_conflicts,
|
|
99
|
-
targetBranch: m.target_branch
|
|
100
|
-
});
|
|
101
|
-
})];
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
GitLabApiClient.prototype.getProjectsByIds = function (projectIds) {
|
|
107
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
108
|
-
var projects, i, projectId, p;
|
|
109
|
-
return __generator(this, function (_a) {
|
|
110
|
-
switch (_a.label) {
|
|
111
|
-
case 0:
|
|
112
|
-
projects = [];
|
|
113
|
-
i = 0;
|
|
114
|
-
_a.label = 1;
|
|
115
|
-
case 1:
|
|
116
|
-
if (!(i < projectIds.length)) return [3 /*break*/, 4];
|
|
117
|
-
projectId = projectIds[i];
|
|
118
|
-
return [4 /*yield*/, this._client.Projects.show(projectId)];
|
|
119
|
-
case 2:
|
|
120
|
-
p = _a.sent();
|
|
121
|
-
projects.push(p);
|
|
122
|
-
_a.label = 3;
|
|
123
|
-
case 3:
|
|
124
|
-
i++;
|
|
125
|
-
return [3 /*break*/, 1];
|
|
126
|
-
case 4: return [2 /*return*/, projects.map(function (p) { return ({
|
|
127
|
-
id: p.id,
|
|
128
|
-
title: p.name
|
|
129
|
-
}); })];
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
};
|
|
134
|
-
GitLabApiClient.prototype.getLatestTags = function (projectId) {
|
|
135
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
136
|
-
var tags;
|
|
137
|
-
return __generator(this, function (_a) {
|
|
138
|
-
switch (_a.label) {
|
|
139
|
-
case 0: return [4 /*yield*/, this._client.Tags.all(projectId, { maxPages: 1, perPage: 20 })];
|
|
140
|
-
case 1:
|
|
141
|
-
tags = _a.sent();
|
|
142
|
-
if (!tags.length)
|
|
143
|
-
throw new Error("Project ".concat(projectId, " does not have any tags"));
|
|
144
|
-
return [2 /*return*/, tags.map(function (t) { return ({
|
|
145
|
-
name: t.name,
|
|
146
|
-
target: t.commit.id
|
|
147
|
-
}); })];
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
});
|
|
151
|
-
};
|
|
152
|
-
GitLabApiClient.prototype.getCommitsSince = function (projectId, branchName, sinceSha) {
|
|
153
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
154
|
-
var commit, commits;
|
|
155
|
-
return __generator(this, function (_a) {
|
|
156
|
-
switch (_a.label) {
|
|
157
|
-
case 0: return [4 /*yield*/, this._client.Commits.show(projectId, sinceSha)];
|
|
158
|
-
case 1:
|
|
159
|
-
commit = _a.sent();
|
|
160
|
-
return [4 /*yield*/, this._client.Commits.all(projectId, {
|
|
161
|
-
ref_name: branchName,
|
|
162
|
-
since: commit.committed_date,
|
|
163
|
-
first_parent: true
|
|
164
|
-
})];
|
|
165
|
-
case 2:
|
|
166
|
-
commits = _a.sent();
|
|
167
|
-
return [2 /*return*/, commits.map(function (c) { return ({
|
|
168
|
-
id: c.id,
|
|
169
|
-
title: c.title,
|
|
170
|
-
message: c.message
|
|
171
|
-
}); })];
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
};
|
|
176
|
-
GitLabApiClient.prototype.getBranch = function (projectId, branchName) {
|
|
177
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
178
|
-
var branch, _a;
|
|
179
|
-
return __generator(this, function (_b) {
|
|
180
|
-
switch (_b.label) {
|
|
181
|
-
case 0:
|
|
182
|
-
_b.trys.push([0, 2, , 3]);
|
|
183
|
-
return [4 /*yield*/, this._client.Branches.show(projectId, branchName)];
|
|
184
|
-
case 1:
|
|
185
|
-
branch = _b.sent();
|
|
186
|
-
return [2 /*return*/, {
|
|
187
|
-
name: branch.name
|
|
188
|
-
}];
|
|
189
|
-
case 2:
|
|
190
|
-
_a = _b.sent();
|
|
191
|
-
return [2 /*return*/, null];
|
|
192
|
-
case 3: return [2 /*return*/];
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
};
|
|
197
|
-
GitLabApiClient.prototype.createBranch = function (projectId, branchName, branchFrom) {
|
|
198
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
199
|
-
var newBranch;
|
|
200
|
-
return __generator(this, function (_a) {
|
|
201
|
-
switch (_a.label) {
|
|
202
|
-
case 0: return [4 /*yield*/, this._client.Branches.create(projectId, branchName, branchFrom)];
|
|
203
|
-
case 1:
|
|
204
|
-
newBranch = _a.sent();
|
|
205
|
-
return [2 /*return*/, {
|
|
206
|
-
name: newBranch.name
|
|
207
|
-
}];
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
});
|
|
211
|
-
};
|
|
212
|
-
GitLabApiClient.prototype.cherryPick = function (projectId, sha, branchName) {
|
|
213
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
214
|
-
return __generator(this, function (_a) {
|
|
215
|
-
switch (_a.label) {
|
|
216
|
-
case 0: return [4 /*yield*/, this._client.Commits.cherryPick(projectId, sha, branchName)];
|
|
217
|
-
case 1:
|
|
218
|
-
_a.sent();
|
|
219
|
-
return [2 /*return*/];
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
});
|
|
223
|
-
};
|
|
224
|
-
GitLabApiClient.prototype.getMergeRequest = function (projectId, sourceBranch, targetBranch) {
|
|
225
|
-
var _a;
|
|
226
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
227
|
-
var mergeRequests, mergeRequest;
|
|
228
|
-
return __generator(this, function (_b) {
|
|
229
|
-
switch (_b.label) {
|
|
230
|
-
case 0: return [4 /*yield*/, this._client.MergeRequests.all({
|
|
231
|
-
projectId: projectId,
|
|
232
|
-
sourceBranch: sourceBranch,
|
|
233
|
-
targetBranch: targetBranch,
|
|
234
|
-
state: 'opened'
|
|
235
|
-
})];
|
|
236
|
-
case 1:
|
|
237
|
-
mergeRequests = _b.sent();
|
|
238
|
-
mergeRequest = mergeRequests[0];
|
|
239
|
-
if (!mergeRequest)
|
|
240
|
-
return [2 /*return*/, null];
|
|
241
|
-
return [2 /*return*/, {
|
|
242
|
-
title: mergeRequest.title,
|
|
243
|
-
description: mergeRequest.description,
|
|
244
|
-
status: mergeRequest.state,
|
|
245
|
-
projectId: mergeRequest.project_id,
|
|
246
|
-
mergeCommit: mergeRequest.merge_commit_sha,
|
|
247
|
-
author: mergeRequest.author.name,
|
|
248
|
-
assignee: (_a = mergeRequest.assignee) === null || _a === void 0 ? void 0 : _a.name,
|
|
249
|
-
url: mergeRequest.web_url,
|
|
250
|
-
hasConflicts: mergeRequest.has_conflicts,
|
|
251
|
-
targetBranch: mergeRequest.target_branch
|
|
252
|
-
}];
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
};
|
|
257
|
-
GitLabApiClient.prototype.createMergeRequest = function (projectId, sourceBranch, targetBranch, title, description) {
|
|
258
|
-
var _a;
|
|
259
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
260
|
-
var mergeRequest;
|
|
261
|
-
return __generator(this, function (_b) {
|
|
262
|
-
switch (_b.label) {
|
|
263
|
-
case 0: return [4 /*yield*/, this._client.MergeRequests.create(projectId, sourceBranch, targetBranch, title, {
|
|
264
|
-
description: description
|
|
265
|
-
})];
|
|
266
|
-
case 1:
|
|
267
|
-
mergeRequest = _b.sent();
|
|
268
|
-
return [2 /*return*/, {
|
|
269
|
-
title: mergeRequest.title,
|
|
270
|
-
description: mergeRequest.description,
|
|
271
|
-
status: mergeRequest.state,
|
|
272
|
-
projectId: mergeRequest.project_id,
|
|
273
|
-
mergeCommit: mergeRequest.merge_commit_sha,
|
|
274
|
-
author: mergeRequest.author.name,
|
|
275
|
-
assignee: (_a = mergeRequest.assignee) === null || _a === void 0 ? void 0 : _a.name,
|
|
276
|
-
url: mergeRequest.web_url,
|
|
277
|
-
hasConflicts: mergeRequest.has_conflicts,
|
|
278
|
-
targetBranch: mergeRequest.target_branch
|
|
279
|
-
}];
|
|
280
|
-
}
|
|
281
|
-
});
|
|
282
|
-
});
|
|
283
|
-
};
|
|
284
|
-
GitLabApiClient.prototype.getFile = function (projectId, filePath, branchName) {
|
|
285
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
286
|
-
var file, _a;
|
|
287
|
-
return __generator(this, function (_b) {
|
|
288
|
-
switch (_b.label) {
|
|
289
|
-
case 0:
|
|
290
|
-
_b.trys.push([0, 2, , 3]);
|
|
291
|
-
return [4 /*yield*/, this._client.RepositoryFiles.show(projectId, filePath, branchName)];
|
|
292
|
-
case 1:
|
|
293
|
-
file = _b.sent();
|
|
294
|
-
return [2 /*return*/, {
|
|
295
|
-
name: file.file_name,
|
|
296
|
-
path: file.file_path,
|
|
297
|
-
content: file.content
|
|
298
|
-
}];
|
|
299
|
-
case 2:
|
|
300
|
-
_a = _b.sent();
|
|
301
|
-
return [2 /*return*/, null];
|
|
302
|
-
case 3: return [2 /*return*/];
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
};
|
|
307
|
-
GitLabApiClient.prototype.updateFile = function (projectId, filePath, branchName, content, commitMessage) {
|
|
308
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
309
|
-
return __generator(this, function (_a) {
|
|
310
|
-
switch (_a.label) {
|
|
311
|
-
case 0: return [4 /*yield*/, this._client.RepositoryFiles.edit(projectId, filePath, branchName, content, commitMessage)];
|
|
312
|
-
case 1:
|
|
313
|
-
_a.sent();
|
|
314
|
-
return [2 /*return*/];
|
|
315
|
-
}
|
|
316
|
-
});
|
|
317
|
-
});
|
|
318
|
-
};
|
|
319
|
-
GitLabApiClient.prototype.commit = function (projectId, branchName, files, commitMessage) {
|
|
320
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
321
|
-
return __generator(this, function (_a) {
|
|
322
|
-
switch (_a.label) {
|
|
323
|
-
case 0: return [4 /*yield*/, this._client.Commits.create(projectId, branchName, commitMessage, files.map(function (f) { return ({
|
|
324
|
-
action: 'update',
|
|
325
|
-
filePath: f.filePath,
|
|
326
|
-
content: f.content
|
|
327
|
-
}); }))];
|
|
328
|
-
case 1:
|
|
329
|
-
_a.sent();
|
|
330
|
-
return [2 /*return*/];
|
|
331
|
-
}
|
|
332
|
-
});
|
|
333
|
-
});
|
|
334
|
-
};
|
|
335
|
-
GitLabApiClient = __decorate([
|
|
336
|
-
(0, inversify_1.injectable)(),
|
|
337
|
-
__param(0, (0, inversify_1.inject)(types_1.MISC.GitLabConfig)),
|
|
338
|
-
__metadata("design:paramtypes", [Object])
|
|
339
|
-
], GitLabApiClient);
|
|
340
|
-
return GitLabApiClient;
|
|
341
|
-
}());
|
|
342
|
-
exports.GitLabApiClient = GitLabApiClient;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./CommandTypeMapping.js"), exports);
|
|
18
|
-
__exportStar(require("./MonorepoPackageJsonFiles.js"), exports);
|
/package/lib/src/interfaces/{ShipItOptions.js → command-options/InstallPackagesCommandOptions.js}
RENAMED
|
File without changes
|
|
File without changes
|