@clickview/ship-it 0.0.2-dev.2 → 0.0.2

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.
Files changed (47) hide show
  1. package/lib/src/api-clients/GitLabApiClient.js +1 -1
  2. package/lib/src/api-clients/index.js +1 -1
  3. package/lib/src/commands/BumpPackagesCommand.js +4 -12
  4. package/lib/src/commands/CreateBranchCommand.js +8 -8
  5. package/lib/src/commands/CreateMergeRequestCommand.js +10 -10
  6. package/lib/src/commands/CreateReleaseNotesCommand.js +4 -4
  7. package/lib/src/commands/ReleaseCommand.js +14 -14
  8. package/lib/src/commands/StatusCommand.js +2 -2
  9. package/lib/src/commands/VersionCommand.js +2 -2
  10. package/lib/src/commands/index.js +0 -1
  11. package/lib/src/index.js +85 -2
  12. package/lib/src/interfaces/index.js +1 -2
  13. package/lib/src/inversify.config.js +0 -3
  14. package/lib/src/services/GitLabService.js +33 -60
  15. package/lib/src/tasks/BumpPackagesTask.js +239 -102
  16. package/lib/src/tasks/BumpVersionTxtTask.js +26 -13
  17. package/lib/src/tasks/CreateBranchTask.js +32 -17
  18. package/lib/src/tasks/CreateMergeRequestTask.js +36 -21
  19. package/lib/src/tasks/CreateReleaseNotesTask.js +6 -2
  20. package/lib/src/tasks/ValidateCommitsTask.js +14 -6
  21. package/lib/src/tasks/ValidateDescriptionsTask.js +8 -4
  22. package/lib/src/tasks/ValidateTask.js +6 -5
  23. package/lib/src/tasks/VersionTask.js +20 -7
  24. package/lib/src/tasks/index.js +0 -2
  25. package/lib/src/types.js +1 -4
  26. package/lib/src/utils/Descriptions.js +4 -5
  27. package/lib/src/utils/ProjectIds.js +2 -6
  28. package/package.json +22 -22
  29. package/lib/src/api-clients/git-lab/GitLabApiClient.js +0 -285
  30. package/lib/src/api-clients/git-lab/GitLabMapper.js +0 -51
  31. package/lib/src/commands/CommitPackageVersionsCommand.js +0 -78
  32. package/lib/src/commands/InstallPackagesCommand.js +0 -78
  33. package/lib/src/constants/CommandTypeMapping.js +0 -14
  34. package/lib/src/constants/MonorepoPackageJsonFiles.js +0 -13
  35. package/lib/src/constants/index.js +0 -18
  36. package/lib/src/errors/ShipItError.js +0 -32
  37. package/lib/src/errors/index.js +0 -17
  38. package/lib/src/interfaces/VersionType.js +0 -2
  39. package/lib/src/interfaces/command-options/BumpPackagesCommandOptions.js +0 -2
  40. package/lib/src/interfaces/command-options/CommitPackageVersionsCommandOptions.js +0 -2
  41. package/lib/src/interfaces/command-options/MilestoneCommandOptions.js +0 -2
  42. package/lib/src/interfaces/command-options/index.js +0 -18
  43. package/lib/src/startup/AddMilestoneCommand.js +0 -75
  44. package/lib/src/startup/SetupCommands.js +0 -66
  45. package/lib/src/tasks/CommitLocalPackagesTask.js +0 -137
  46. package/lib/src/tasks/CommitPackageVersionsTask.js +0 -111
  47. package/lib/src/tasks/InstallPackagesTask.js +0 -317
@@ -52,7 +52,7 @@ exports.GitLabApiClient = void 0;
52
52
  require("reflect-metadata");
53
53
  var inversify_1 = require("inversify");
54
54
  var node_1 = require("@gitbeaker/node");
55
- var types_1 = require("types");
55
+ var types_1 = require("../types");
56
56
  var GitLabApiClient = /** @class */ (function () {
57
57
  function GitLabApiClient(config) {
58
58
  this._config = config;
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./git-lab/GitLabApiClient"), exports);
17
+ __exportStar(require("./GitLabApiClient"), exports);
@@ -53,22 +53,15 @@ require("reflect-metadata");
53
53
  var inversify_1 = require("inversify");
54
54
  var types_1 = require("../types");
55
55
  var BumpPackagesCommand = /** @class */ (function () {
56
- function BumpPackagesCommand(bumpPackagesTask, commitPackageVersionsTask) {
57
- this.bumpPackagesTask = bumpPackagesTask;
58
- this.commitPackageVersionsTask = commitPackageVersionsTask;
56
+ function BumpPackagesCommand(bumpPackagesTask) {
57
+ this._bumpPackagesTask = bumpPackagesTask;
59
58
  }
60
59
  BumpPackagesCommand.prototype.run = function (options) {
61
60
  return __awaiter(this, void 0, void 0, function () {
62
- var cont;
63
61
  return __generator(this, function (_a) {
64
62
  switch (_a.label) {
65
- case 0: return [4 /*yield*/, this.bumpPackagesTask.run(options)];
63
+ case 0: return [4 /*yield*/, this._bumpPackagesTask.run(options)];
66
64
  case 1:
67
- cont = _a.sent();
68
- if (!cont)
69
- return [2 /*return*/];
70
- return [4 /*yield*/, this.commitPackageVersionsTask.run(options)];
71
- case 2:
72
65
  _a.sent();
73
66
  return [2 /*return*/];
74
67
  }
@@ -78,8 +71,7 @@ var BumpPackagesCommand = /** @class */ (function () {
78
71
  BumpPackagesCommand = __decorate([
79
72
  (0, inversify_1.injectable)(),
80
73
  __param(0, (0, inversify_1.inject)(types_1.TASKS.BumpPackagesTask)),
81
- __param(1, (0, inversify_1.inject)(types_1.TASKS.CommitPackageVersionsTask)),
82
- __metadata("design:paramtypes", [Object, Object])
74
+ __metadata("design:paramtypes", [Object])
83
75
  ], BumpPackagesCommand);
84
76
  return BumpPackagesCommand;
85
77
  }());
@@ -54,34 +54,34 @@ var inversify_1 = require("inversify");
54
54
  var types_1 = require("../types");
55
55
  var CreateBranchCommand = /** @class */ (function () {
56
56
  function CreateBranchCommand(validateTask, versionTask, validateCommitsTask, createBranchTask) {
57
- this.validateTask = validateTask;
58
- this.versionTask = versionTask;
59
- this.validateCommitsTask = validateCommitsTask;
60
- this.createBranchTask = createBranchTask;
57
+ this._validateTask = validateTask;
58
+ this._versionTask = versionTask;
59
+ this._validateCommitsTask = validateCommitsTask;
60
+ this._createBranchTask = createBranchTask;
61
61
  }
62
62
  CreateBranchCommand.prototype.run = function (options) {
63
63
  return __awaiter(this, void 0, void 0, function () {
64
64
  var cont;
65
65
  return __generator(this, function (_a) {
66
66
  switch (_a.label) {
67
- case 0: return [4 /*yield*/, this.validateTask.run(options)];
67
+ case 0: return [4 /*yield*/, this._validateTask.run(options)];
68
68
  case 1:
69
69
  cont = _a.sent();
70
70
  // Check if we want to continue with inquirer?
71
71
  if (!cont)
72
72
  return [2 /*return*/];
73
- return [4 /*yield*/, this.versionTask.run(options)];
73
+ return [4 /*yield*/, this._versionTask.run(options)];
74
74
  case 2:
75
75
  cont = _a.sent();
76
76
  // Check if we want to continue with inquirer?
77
77
  if (!cont)
78
78
  return [2 /*return*/];
79
- return [4 /*yield*/, this.validateCommitsTask.run(options)];
79
+ return [4 /*yield*/, this._validateCommitsTask.run(options)];
80
80
  case 3:
81
81
  cont = _a.sent();
82
82
  if (!cont)
83
83
  return [2 /*return*/];
84
- return [4 /*yield*/, this.createBranchTask.run(options)];
84
+ return [4 /*yield*/, this._createBranchTask.run(options)];
85
85
  case 4:
86
86
  _a.sent();
87
87
  return [2 /*return*/];
@@ -54,40 +54,40 @@ var inversify_1 = require("inversify");
54
54
  var types_1 = require("../types");
55
55
  var CreateMergeRequestCommand = /** @class */ (function () {
56
56
  function CreateMergeRequestCommand(validateTask, versionTask, validateDescriptionsTask, validateCommitsTask, createMergeRequestCommand) {
57
- this.validateTask = validateTask;
58
- this.versionTask = versionTask;
59
- this.validateDescriptionsTask = validateDescriptionsTask;
60
- this.validateCommitsTask = validateCommitsTask;
61
- this.createMergeRequestCommand = createMergeRequestCommand;
57
+ this._validateTask = validateTask;
58
+ this._versionTask = versionTask;
59
+ this._validateDescriptionsTask = validateDescriptionsTask;
60
+ this._validateCommitsTask = validateCommitsTask;
61
+ this._createMergeRequestCommand = createMergeRequestCommand;
62
62
  }
63
63
  CreateMergeRequestCommand.prototype.run = function (options) {
64
64
  return __awaiter(this, void 0, void 0, function () {
65
65
  var cont;
66
66
  return __generator(this, function (_a) {
67
67
  switch (_a.label) {
68
- case 0: return [4 /*yield*/, this.validateTask.run(options)];
68
+ case 0: return [4 /*yield*/, this._validateTask.run(options)];
69
69
  case 1:
70
70
  cont = _a.sent();
71
71
  // Check if we want to continue with inquirer?
72
72
  if (!cont)
73
73
  return [2 /*return*/];
74
- return [4 /*yield*/, this.versionTask.run(options)];
74
+ return [4 /*yield*/, this._versionTask.run(options)];
75
75
  case 2:
76
76
  cont = _a.sent();
77
77
  // Check if we want to continue with inquirer?
78
78
  if (!cont)
79
79
  return [2 /*return*/];
80
- return [4 /*yield*/, this.validateDescriptionsTask.run(options)];
80
+ return [4 /*yield*/, this._validateDescriptionsTask.run(options)];
81
81
  case 3:
82
82
  cont = _a.sent();
83
83
  if (!cont)
84
84
  return [2 /*return*/];
85
- return [4 /*yield*/, this.validateCommitsTask.run(options)];
85
+ return [4 /*yield*/, this._validateCommitsTask.run(options)];
86
86
  case 4:
87
87
  cont = _a.sent();
88
88
  if (!cont)
89
89
  return [2 /*return*/];
90
- return [4 /*yield*/, this.createMergeRequestCommand.run(options)];
90
+ return [4 /*yield*/, this._createMergeRequestCommand.run(options)];
91
91
  case 5:
92
92
  _a.sent();
93
93
  return [2 /*return*/];
@@ -54,20 +54,20 @@ var inversify_1 = require("inversify");
54
54
  var types_1 = require("../types");
55
55
  var CreateReleaseNotesCommand = /** @class */ (function () {
56
56
  function CreateReleaseNotesCommand(validateDescriptionsTask, createReleaseNotesTask) {
57
- this.validateDescriptionsTask = validateDescriptionsTask;
58
- this.createReleaseNotesTask = createReleaseNotesTask;
57
+ this._validateDescriptionsTask = validateDescriptionsTask;
58
+ this._createReleaseNotesTask = createReleaseNotesTask;
59
59
  }
60
60
  CreateReleaseNotesCommand.prototype.run = function (options) {
61
61
  return __awaiter(this, void 0, void 0, function () {
62
62
  var cont;
63
63
  return __generator(this, function (_a) {
64
64
  switch (_a.label) {
65
- case 0: return [4 /*yield*/, this.validateDescriptionsTask.run(options)];
65
+ case 0: return [4 /*yield*/, this._validateDescriptionsTask.run(options)];
66
66
  case 1:
67
67
  cont = _a.sent();
68
68
  if (!cont)
69
69
  return [2 /*return*/];
70
- return [4 /*yield*/, this.createReleaseNotesTask.run(options)];
70
+ return [4 /*yield*/, this._createReleaseNotesTask.run(options)];
71
71
  case 2:
72
72
  _a.sent();
73
73
  return [2 /*return*/];
@@ -54,51 +54,51 @@ var inversify_1 = require("inversify");
54
54
  var types_1 = require("../types");
55
55
  var ReleaseCommand = /** @class */ (function () {
56
56
  function ReleaseCommand(validateTask, versionTask, validateDescriptionsTask, validateCommitsTask, createBranchTask, bumpVersionTxtTask, createMergeRequestTask) {
57
- this.validateTask = validateTask;
58
- this.versionTask = versionTask;
59
- this.validateDescriptionsTask = validateDescriptionsTask;
60
- this.validateCommitsTask = validateCommitsTask;
61
- this.createBranchTask = createBranchTask;
62
- this.bumpVersionTxtTask = bumpVersionTxtTask;
63
- this.createMergeRequestTask = createMergeRequestTask;
57
+ this._validateTask = validateTask;
58
+ this._versionTask = versionTask;
59
+ this._validateDescriptionsTask = validateDescriptionsTask;
60
+ this._validateCommitsTask = validateCommitsTask;
61
+ this._createBranchTask = createBranchTask;
62
+ this._bumpVersionTxtTask = bumpVersionTxtTask;
63
+ this._createMergeRequestTask = createMergeRequestTask;
64
64
  }
65
65
  ReleaseCommand.prototype.run = function (options) {
66
66
  return __awaiter(this, void 0, void 0, function () {
67
67
  var cont;
68
68
  return __generator(this, function (_a) {
69
69
  switch (_a.label) {
70
- case 0: return [4 /*yield*/, this.validateTask.run(options)];
70
+ case 0: return [4 /*yield*/, this._validateTask.run(options)];
71
71
  case 1:
72
72
  cont = _a.sent();
73
73
  // Check if we want to continue with inquirer?
74
74
  if (!cont)
75
75
  return [2 /*return*/];
76
- return [4 /*yield*/, this.versionTask.run(options)];
76
+ return [4 /*yield*/, this._versionTask.run(options)];
77
77
  case 2:
78
78
  cont = _a.sent();
79
79
  if (!cont)
80
80
  return [2 /*return*/];
81
- return [4 /*yield*/, this.validateDescriptionsTask.run(options)];
81
+ return [4 /*yield*/, this._validateDescriptionsTask.run(options)];
82
82
  case 3:
83
83
  cont = _a.sent();
84
84
  if (!cont)
85
85
  return [2 /*return*/];
86
- return [4 /*yield*/, this.validateCommitsTask.run(options)];
86
+ return [4 /*yield*/, this._validateCommitsTask.run(options)];
87
87
  case 4:
88
88
  cont = _a.sent();
89
89
  if (!cont)
90
90
  return [2 /*return*/];
91
- return [4 /*yield*/, this.createBranchTask.run(options)];
91
+ return [4 /*yield*/, this._createBranchTask.run(options)];
92
92
  case 5:
93
93
  cont = _a.sent();
94
94
  if (!cont)
95
95
  return [2 /*return*/];
96
- return [4 /*yield*/, this.bumpVersionTxtTask.run(options)];
96
+ return [4 /*yield*/, this._bumpVersionTxtTask.run(options)];
97
97
  case 6:
98
98
  cont = _a.sent();
99
99
  if (!cont)
100
100
  return [2 /*return*/];
101
- return [4 /*yield*/, this.createMergeRequestTask.run(options)];
101
+ return [4 /*yield*/, this._createMergeRequestTask.run(options)];
102
102
  case 7:
103
103
  _a.sent();
104
104
  return [2 /*return*/];
@@ -54,13 +54,13 @@ var inversify_1 = require("inversify");
54
54
  var types_1 = require("../types");
55
55
  var StatusCommand = /** @class */ (function () {
56
56
  function StatusCommand(validateTask) {
57
- this.validateTask = validateTask;
57
+ this._validateTask = validateTask;
58
58
  }
59
59
  StatusCommand.prototype.run = function (options) {
60
60
  return __awaiter(this, void 0, void 0, function () {
61
61
  return __generator(this, function (_a) {
62
62
  switch (_a.label) {
63
- case 0: return [4 /*yield*/, this.validateTask.run(options)];
63
+ case 0: return [4 /*yield*/, this._validateTask.run(options)];
64
64
  case 1:
65
65
  _a.sent();
66
66
  return [2 /*return*/];
@@ -54,13 +54,13 @@ var inversify_1 = require("inversify");
54
54
  var types_1 = require("../types");
55
55
  var VersionCommand = /** @class */ (function () {
56
56
  function VersionCommand(versionTask) {
57
- this.versionTask = versionTask;
57
+ this._versionTask = versionTask;
58
58
  }
59
59
  VersionCommand.prototype.run = function (options) {
60
60
  return __awaiter(this, void 0, void 0, function () {
61
61
  return __generator(this, function (_a) {
62
62
  switch (_a.label) {
63
- case 0: return [4 /*yield*/, this.versionTask.run(options)];
63
+ case 0: return [4 /*yield*/, this._versionTask.run(options)];
64
64
  case 1:
65
65
  _a.sent();
66
66
  return [2 /*return*/];
@@ -18,7 +18,6 @@ __exportStar(require("./BumpPackagesCommand"), exports);
18
18
  __exportStar(require("./CreateBranchCommand"), exports);
19
19
  __exportStar(require("./CreateMergeRequestCommand"), exports);
20
20
  __exportStar(require("./CreateReleaseNotesCommand"), exports);
21
- __exportStar(require("./InstallPackagesCommand"), exports);
22
21
  __exportStar(require("./ReleaseCommand"), exports);
23
22
  __exportStar(require("./StatusCommand"), exports);
24
23
  __exportStar(require("./VersionCommand"), exports);
package/lib/src/index.js CHANGED
@@ -1,18 +1,101 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __generator = (this && this.__generator) || function (thisArg, body) {
13
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
14
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
15
+ function verb(n) { return function (v) { return step([n, v]); }; }
16
+ function step(op) {
17
+ if (f) throw new TypeError("Generator is already executing.");
18
+ while (_) try {
19
+ 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;
20
+ if (y = 0, t) op = [op[0] & 2, t.value];
21
+ switch (op[0]) {
22
+ case 0: case 1: t = op; break;
23
+ case 4: _.label++; return { value: op[1], done: false };
24
+ case 5: _.label++; y = op[1]; op = [0]; continue;
25
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
26
+ default:
27
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
28
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
29
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
30
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
31
+ if (t[2]) _.ops.pop();
32
+ _.trys.pop(); continue;
33
+ }
34
+ op = body.call(thisArg, _);
35
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
36
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37
+ }
38
+ };
3
39
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
40
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
41
  };
6
42
  Object.defineProperty(exports, "__esModule", { value: true });
7
43
  var commander_1 = require("commander");
8
44
  var inversify_config_1 = require("./inversify.config");
9
- var SetupCommands_1 = require("./startup/SetupCommands");
45
+ var types_1 = require("./types");
46
+ var utils_1 = require("./utils");
10
47
  var config_json_1 = __importDefault(require("../config.json"));
48
+ function processOptions(options) {
49
+ var opts = {
50
+ milestone: options.milestone,
51
+ version: 'minor'
52
+ };
53
+ if (options.projectIds)
54
+ opts.projectIds = utils_1.ProjectIds.getProjectIds(options.projectIds);
55
+ if (options.hotfix && options.major)
56
+ throw new Error('Cannot pass both --hotfix and --major options');
57
+ if (options.major)
58
+ opts.version = 'major';
59
+ if (options.hotfix)
60
+ opts.version = 'patch';
61
+ return opts;
62
+ }
63
+ var commandTypeMapping = {
64
+ 'status': types_1.COMMANDS.StatusCommand,
65
+ 'version': types_1.COMMANDS.VersionCommand,
66
+ 'release': types_1.COMMANDS.ReleaseCommand,
67
+ 'create-branches': types_1.COMMANDS.CreateBranchCommand,
68
+ 'create-mrs': types_1.COMMANDS.CreateMergeRequestCommand,
69
+ 'create-notes': types_1.COMMANDS.CreateReleaseNotesCommand,
70
+ 'bump-packages': types_1.COMMANDS.BumpPackagesCommand
71
+ };
72
+ function addCommand(name, description) {
73
+ var _this = this;
74
+ program.command(name)
75
+ .description(description)
76
+ .requiredOption('-m, --milestone <milestone>')
77
+ .option('-p, --projectIds <projectIds...>')
78
+ .option('--hotfix')
79
+ .option('--major')
80
+ .action(function (options) { return __awaiter(_this, void 0, void 0, function () {
81
+ return __generator(this, function (_a) {
82
+ container.get(commandTypeMapping[name])
83
+ .run(processOptions(options));
84
+ return [2 /*return*/];
85
+ });
86
+ }); });
87
+ }
11
88
  var program = new commander_1.Command();
12
89
  program
13
90
  .name('ship-it')
14
91
  .description('ClickView Release Manager')
15
92
  .version('0.0.0');
16
93
  var container = (0, inversify_config_1.createContainer)(config_json_1.default);
17
- (0, SetupCommands_1.setupCommands)(program, container);
94
+ addCommand('status', 'Get the status of all MRs in a milestone');
95
+ addCommand('version', 'Display the versions that will be used for the release');
96
+ addCommand('create-branches', 'Create release branches for all projects that are part of a milestone');
97
+ addCommand('create-mrs', 'Create merge requests for all projects that are part of a milestone');
98
+ addCommand('create-notes', 'Builds descriptions for all projects that are part of a milestone');
99
+ addCommand('release', 'Create releases for all projects that are part of a milestone');
100
+ addCommand('bump-packages', 'Bump consuming project npm packages for all projects that are part of a milestone');
18
101
  program.parseAsync();
@@ -14,10 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./command-options"), exports);
18
17
  __exportStar(require("./models"), exports);
19
18
  __exportStar(require("./view-models"), exports);
20
19
  __exportStar(require("./Config"), exports);
21
20
  __exportStar(require("./ShipItCommand"), exports);
21
+ __exportStar(require("./ShipItOptions"), exports);
22
22
  __exportStar(require("./ShipItTask"), exports);
23
- __exportStar(require("./VersionType"), exports);
@@ -32,9 +32,7 @@ function createContainer(config) {
32
32
  container.bind(types_1.TASKS.CreateMergeRequestTask).to(tasks_1.CreateMergeRequestTask);
33
33
  container.bind(types_1.TASKS.ValidateDescriptionsTask).to(tasks_1.ValidateDescriptionsTask);
34
34
  container.bind(types_1.TASKS.CreateReleaseNotesTask).to(tasks_1.CreateReleaseNotesTask);
35
- container.bind(types_1.TASKS.InstallPackagesTask).to(tasks_1.InstallPackagesTask);
36
35
  container.bind(types_1.TASKS.BumpPackagesTask).to(tasks_1.BumpPackagesTask);
37
- container.bind(types_1.TASKS.CommitPackageVersionsTask).to(tasks_1.CommitPackageVersionsTask);
38
36
  /**
39
37
  * Commands
40
38
  */
@@ -44,7 +42,6 @@ function createContainer(config) {
44
42
  container.bind(types_1.COMMANDS.CreateMergeRequestCommand).to(commands_1.CreateMergeRequestCommand);
45
43
  container.bind(types_1.COMMANDS.ReleaseCommand).to(commands_1.ReleaseCommand);
46
44
  container.bind(types_1.COMMANDS.CreateReleaseNotesCommand).to(commands_1.CreateReleaseNotesCommand);
47
- container.bind(types_1.COMMANDS.InstallPackagesCommand).to(commands_1.InstallPackagesCommand);
48
45
  container.bind(types_1.COMMANDS.BumpPackagesCommand).to(commands_1.BumpPackagesCommand);
49
46
  return container;
50
47
  }
@@ -69,11 +69,9 @@ var lodash_1 = __importDefault(require("lodash"));
69
69
  var semver_1 = __importDefault(require("semver"));
70
70
  var types_1 = require("../types");
71
71
  var api_clients_1 = require("../api-clients");
72
- var errors_1 = require("../errors");
73
- var utils_1 = require("../utils");
74
72
  var GitLabService = /** @class */ (function () {
75
73
  function GitLabService(apiClient) {
76
- this.apiClient = apiClient;
74
+ this._apiClient = apiClient;
77
75
  }
78
76
  GitLabService.prototype.getProjects = function (options) {
79
77
  return __awaiter(this, void 0, void 0, function () {
@@ -81,20 +79,20 @@ var GitLabService = /** @class */ (function () {
81
79
  return __generator(this, function (_a) {
82
80
  switch (_a.label) {
83
81
  case 0:
84
- if (this.projects)
85
- return [2 /*return*/, this.projects];
86
- return [4 /*yield*/, this.apiClient.getMergeRequests(options)];
82
+ if (this._projects)
83
+ return [2 /*return*/, this._projects];
84
+ return [4 /*yield*/, this._apiClient.getMergeRequests(options)];
87
85
  case 1:
88
86
  mergeRequests = _a.sent();
89
87
  if (!(mergeRequests === null || mergeRequests === void 0 ? void 0 : mergeRequests.length))
90
- throw new errors_1.ShipItError('Could not find any merge requests for the specified options');
88
+ throw new Error('Could not find any merge requests for the specified options');
91
89
  projectIds = lodash_1.default.uniqBy(mergeRequests, function (m) { return m.projectId; }).map(function (m) { return m.projectId; });
92
- return [4 /*yield*/, this.apiClient.getProjectsByIds(projectIds)];
90
+ return [4 /*yield*/, this._apiClient.getProjectsByIds(projectIds)];
93
91
  case 2:
94
92
  projects = _a.sent();
95
93
  if (!(projects === null || projects === void 0 ? void 0 : projects.length) || projects.length !== projectIds.length)
96
- throw new errors_1.ShipItError('Could not find all projects for the found merge requests');
97
- return [2 /*return*/, (this.projects = projects.map(function (p) { return (__assign(__assign({}, p), { mergeRequests: mergeRequests.filter(function (mr) { return mr.projectId === p.id; }) })); }))];
94
+ throw new Error('Could not find all projects for the found merge requests');
95
+ return [2 /*return*/, (this._projects = projects.map(function (p) { return (__assign(__assign({}, p), { mergeRequests: mergeRequests.filter(function (mr) { return mr.projectId === p.id; }) })); }))];
98
96
  }
99
97
  });
100
98
  });
@@ -104,7 +102,7 @@ var GitLabService = /** @class */ (function () {
104
102
  var commits, lastDevCommit, title;
105
103
  return __generator(this, function (_a) {
106
104
  switch (_a.label) {
107
- case 0: return [4 /*yield*/, this.apiClient.getCommitsSince(projectId, 'dev', sinceSha)];
105
+ case 0: return [4 /*yield*/, this._apiClient.getCommitsSince(projectId, 'dev', sinceSha)];
108
106
  case 1:
109
107
  commits = _a.sent();
110
108
  lastDevCommit = lodash_1.default.last(commits);
@@ -115,7 +113,7 @@ var GitLabService = /** @class */ (function () {
115
113
  commits.pop();
116
114
  }
117
115
  if (!(commits === null || commits === void 0 ? void 0 : commits.length))
118
- throw new errors_1.ShipItError("Could not find any commits in dev for projectId: ".concat(projectId, " since ").concat(sinceSha));
116
+ throw new Error("Could not find any commits in dev for projectId: ".concat(projectId, " since ").concat(sinceSha));
119
117
  return [2 /*return*/, commits];
120
118
  }
121
119
  });
@@ -125,7 +123,7 @@ var GitLabService = /** @class */ (function () {
125
123
  return __awaiter(this, void 0, void 0, function () {
126
124
  return __generator(this, function (_a) {
127
125
  switch (_a.label) {
128
- case 0: return [4 /*yield*/, this.apiClient.getBranch(projectId, branchName)];
126
+ case 0: return [4 /*yield*/, this._apiClient.getBranch(projectId, branchName)];
129
127
  case 1: return [2 /*return*/, _a.sent()];
130
128
  }
131
129
  });
@@ -133,47 +131,53 @@ var GitLabService = /** @class */ (function () {
133
131
  };
134
132
  GitLabService.prototype.createBranch = function (project, branchFrom, branchName, cherryPick) {
135
133
  return __awaiter(this, void 0, void 0, function () {
136
- var newBranch, i, mr;
134
+ var newBranch_1, i, mr, newBranch;
137
135
  return __generator(this, function (_a) {
138
136
  switch (_a.label) {
139
137
  case 0:
140
138
  if (!cherryPick) return [3 /*break*/, 6];
141
- return [4 /*yield*/, this.apiClient.createBranch(project.id, branchName, 'master')];
139
+ return [4 /*yield*/, this._apiClient.createBranch(project.id, branchName, 'master')];
142
140
  case 1:
143
- newBranch = _a.sent();
141
+ newBranch_1 = _a.sent();
142
+ if (!newBranch_1)
143
+ throw new Error("Failed to create branch from master for projectId: ".concat(project.id));
144
144
  i = 0;
145
145
  _a.label = 2;
146
146
  case 2:
147
147
  if (!(i < project.mergeRequests.length)) return [3 /*break*/, 5];
148
148
  mr = project.mergeRequests[i];
149
149
  if (!mr.mergeCommit)
150
- throw new errors_1.ShipItError("Could not find the merge commit sha for MR: ".concat(mr.title, " in projectId: ").concat(project.id));
151
- return [4 /*yield*/, this.apiClient.cherryPick(project.id, mr.mergeCommit, branchName)];
150
+ throw new Error("Could not find the merge commit sha for MR: ".concat(mr.title, " in projectId: ").concat(project.id));
151
+ return [4 /*yield*/, this._apiClient.cherryPick(project.id, mr.mergeCommit, branchName)];
152
152
  case 3:
153
153
  _a.sent();
154
154
  _a.label = 4;
155
155
  case 4:
156
156
  i++;
157
157
  return [3 /*break*/, 2];
158
- case 5: return [2 /*return*/, newBranch];
159
- case 6: return [4 /*yield*/, this.apiClient.createBranch(project.id, branchName, branchFrom)];
160
- case 7: return [2 /*return*/, _a.sent()];
158
+ case 5: return [2 /*return*/, newBranch_1];
159
+ case 6: return [4 /*yield*/, this._apiClient.createBranch(project.id, branchName, branchFrom)];
160
+ case 7:
161
+ newBranch = _a.sent();
162
+ if (!newBranch)
163
+ throw new Error("Failed to create branch from master for projectId: ".concat(project.id));
164
+ return [2 /*return*/, newBranch];
161
165
  }
162
166
  });
163
167
  });
164
168
  };
165
169
  GitLabService.prototype.getMergeRequest = function (projectId, branchName) {
166
- return this.apiClient.getMergeRequest(projectId, branchName, 'master');
170
+ return this._apiClient.getMergeRequest(projectId, branchName, 'master');
167
171
  };
168
172
  GitLabService.prototype.createMergeRequest = function (projectId, branchName, description) {
169
- return this.apiClient.createMergeRequest(projectId, branchName, 'master', branchName, description);
173
+ return this._apiClient.createMergeRequest(projectId, branchName, 'master', branchName, description);
170
174
  };
171
175
  GitLabService.prototype.bumpVersionTxt = function (projectId, branchName, newVersion) {
172
176
  return __awaiter(this, void 0, void 0, function () {
173
177
  var versionTxt, buff, text;
174
178
  return __generator(this, function (_a) {
175
179
  switch (_a.label) {
176
- case 0: return [4 /*yield*/, this.apiClient.getFile(projectId, 'version.txt', branchName)];
180
+ case 0: return [4 /*yield*/, this._apiClient.getFile(projectId, 'version.txt', branchName)];
177
181
  case 1:
178
182
  versionTxt = _a.sent();
179
183
  if (!versionTxt)
@@ -182,7 +186,7 @@ var GitLabService = /** @class */ (function () {
182
186
  text = buff.toString('utf-8');
183
187
  if (text === newVersion)
184
188
  return [2 /*return*/, false];
185
- return [4 /*yield*/, this.apiClient.updateFile(projectId, 'version.txt', branchName, newVersion, 'Bumping version.txt')];
189
+ return [4 /*yield*/, this._apiClient.updateFile(projectId, 'version.txt', branchName, newVersion, 'Bumping version.txt')];
186
190
  case 2:
187
191
  _a.sent();
188
192
  return [2 /*return*/, true];
@@ -194,20 +198,20 @@ var GitLabService = /** @class */ (function () {
194
198
  return __awaiter(this, void 0, void 0, function () {
195
199
  return __generator(this, function (_a) {
196
200
  switch (_a.label) {
197
- case 0: return [4 /*yield*/, this.apiClient.getFile(projectId, file, branchName)];
201
+ case 0: return [4 /*yield*/, this._apiClient.getFile(projectId, file, branchName)];
198
202
  case 1: return [2 /*return*/, _a.sent()];
199
203
  }
200
204
  });
201
205
  });
202
206
  };
203
207
  GitLabService.prototype.updateFile = function (projectId, filePath, branchName, content, commit) {
204
- return this.apiClient.updateFile(projectId, filePath, branchName, content, commit);
208
+ return this._apiClient.updateFile(projectId, filePath, branchName, content, commit);
205
209
  };
206
210
  GitLabService.prototype.commit = function (projectId, branchName, commitMessage, files) {
207
211
  return __awaiter(this, void 0, void 0, function () {
208
212
  return __generator(this, function (_a) {
209
213
  switch (_a.label) {
210
- case 0: return [4 /*yield*/, this.apiClient.commit(projectId, branchName, files, commitMessage)];
214
+ case 0: return [4 /*yield*/, this._apiClient.commit(projectId, branchName, files, commitMessage)];
211
215
  case 1:
212
216
  _a.sent();
213
217
  return [2 /*return*/];
@@ -215,16 +219,12 @@ var GitLabService = /** @class */ (function () {
215
219
  });
216
220
  });
217
221
  };
218
- /**
219
- * We use the latest valid semver tag in master to determine what the current version
220
- * of a project is
221
- */
222
222
  GitLabService.prototype.getCurrentVersionTag = function (projectId) {
223
223
  return __awaiter(this, void 0, void 0, function () {
224
224
  var tags, tagNames, sortedTagNames, currentVersion, currentTag;
225
225
  return __generator(this, function (_a) {
226
226
  switch (_a.label) {
227
- case 0: return [4 /*yield*/, this.apiClient.getLatestTags(projectId)];
227
+ case 0: return [4 /*yield*/, this._apiClient.getLatestTags(projectId)];
228
228
  case 1:
229
229
  tags = _a.sent();
230
230
  if (!(tags === null || tags === void 0 ? void 0 : tags.length))
@@ -242,33 +242,6 @@ var GitLabService = /** @class */ (function () {
242
242
  });
243
243
  });
244
244
  };
245
- GitLabService.prototype.getNextBranchInfo = function (projectId, version) {
246
- return __awaiter(this, void 0, void 0, function () {
247
- var tag, nextVersion, branchName, branch;
248
- return __generator(this, function (_a) {
249
- switch (_a.label) {
250
- case 0: return [4 /*yield*/, this.getCurrentVersionTag(projectId)];
251
- case 1:
252
- tag = _a.sent();
253
- if (!tag)
254
- throw new errors_1.ShipItError("Could not find the latest semver tag for projectId: ".concat(projectId));
255
- nextVersion = utils_1.Versions.getNextVersion(tag.name, version);
256
- branchName = version === 'patch' ?
257
- utils_1.BranchNames.getHotfix(nextVersion) :
258
- utils_1.BranchNames.getRelease(nextVersion);
259
- return [4 /*yield*/, this.getBranch(projectId, branchName)];
260
- case 2:
261
- branch = _a.sent();
262
- return [2 /*return*/, {
263
- nextVersion: nextVersion,
264
- branchName: branchName,
265
- branch: branch,
266
- tag: tag
267
- }];
268
- }
269
- });
270
- });
271
- };
272
245
  GitLabService = __decorate([
273
246
  (0, inversify_1.injectable)(),
274
247
  __param(0, (0, inversify_1.inject)(types_1.API_CLIENTS.GitLabApiClient)),