@clickview/ship-it 0.0.27-dev.0 → 0.0.27

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 (79) hide show
  1. package/config.json +1 -1
  2. package/lib/config.json +1 -1
  3. package/lib/src/api-clients/git-lab/GitLabApiClient.js +1 -20
  4. package/lib/src/api-clients/git-lab/GitLabMapper.js +0 -1
  5. package/lib/src/commands/CreateReleaseNotesCommand.js +1 -12
  6. package/lib/src/commands/ReleaseCommand.js +34 -22
  7. package/lib/src/constants/ProjectNames.js +0 -1
  8. package/lib/src/constants/TeamCityBuildIDs.js +1 -2
  9. package/lib/src/index.js +0 -0
  10. package/lib/src/services/GitLabService.js +3 -10
  11. package/lib/src/services/SlackService.js +3 -0
  12. package/lib/src/startup/SetupCommands.js +0 -3
  13. package/lib/src/tasks/StartProjectBuildsTask.js +17 -38
  14. package/lib/src/tasks/ValidateTask.js +30 -105
  15. package/package.json +1 -1
  16. package/dist/F1/Analytics Web.md +0 -8
  17. package/dist/F1/AutoCaptions.md +0 -30
  18. package/dist/F1/Classroom.Api.md +0 -23
  19. package/dist/F1/ClickView Online.md +0 -17
  20. package/dist/F1/ClickView.Curator.md +0 -100
  21. package/dist/F1/ClickView.EmailService.md +0 -53
  22. package/dist/F1/ClickView.OnlineApi.md +0 -13
  23. package/dist/F1/Clients.md +0 -19
  24. package/dist/F1/Domain.Api.md +0 -23
  25. package/dist/F1/Exchange.Web.md +0 -8
  26. package/dist/F1/Image.Api.md +0 -8
  27. package/dist/F1/Integrations.Api.md +0 -23
  28. package/dist/F1/Krakend.md +0 -8
  29. package/dist/F1/Library Editor.md +0 -0
  30. package/dist/F1/Lite.md +0 -60
  31. package/dist/F1/Master.Api.md +0 -58
  32. package/dist/F1/Master.Auth.md +0 -22
  33. package/dist/F1/Objects.Api.md +0 -12
  34. package/dist/F1/Permissions.Api.md +0 -12
  35. package/dist/F1/RealtimeSalesforceSync.md +0 -14
  36. package/dist/F1/Release Notes.md +0 -990
  37. package/dist/F1/Search.Api.md +0 -12
  38. package/dist/F1/StreamableLearning.Web.md +0 -35
  39. package/dist/F1/Users.Api.md +0 -13
  40. package/dist/F1/VideoProcessorService.md +0 -23
  41. package/dist/F1/clickview.md +0 -321
  42. package/dist/F2/Analytics Web.md +0 -7
  43. package/dist/F2/Batch.Api.md +0 -27
  44. package/dist/F2/ClickView Online.md +0 -12
  45. package/dist/F2/ClickView.Curator.md +0 -166
  46. package/dist/F2/Clients.md +0 -14
  47. package/dist/F2/CurriculumIngestion.Api.md +0 -13
  48. package/dist/F2/Discover.Api.md +0 -64
  49. package/dist/F2/Domain.Api.md +0 -16
  50. package/dist/F2/Exchange.Web.md +0 -7
  51. package/dist/F2/Krakend.md +0 -12
  52. package/dist/F2/Library Editor.md +0 -11
  53. package/dist/F2/Lite.md +0 -30
  54. package/dist/F2/Objects.Api.md +0 -12
  55. package/dist/F2/Release Notes.md +0 -759
  56. package/dist/F2/Search.Api.md +0 -30
  57. package/dist/F2/Share.Api.md +0 -12
  58. package/dist/F2/StreamableLearning.Web.md +0 -14
  59. package/dist/F2/Subjects.API.md +0 -12
  60. package/dist/F2/Tv.Web.md +0 -8
  61. package/dist/F2/Users.Api.md +0 -21
  62. package/dist/F2/clickview.md +0 -200
  63. package/dist/F2/shortcode-api.md +0 -8
  64. package/dist/F3.1/Analytics Web.md +0 -8
  65. package/dist/F3.1/ClickView.Curator.md +0 -14
  66. package/dist/F3.1/Discover.Api.md +0 -14
  67. package/dist/F3.1/Domain.Api.md +0 -7
  68. package/dist/F3.1/Exchange.Web.md +0 -8
  69. package/dist/F3.1/Library Editor.md +0 -8
  70. package/dist/F3.1/Lite.md +0 -8
  71. package/dist/F3.1/Objects.Api.md +0 -7
  72. package/dist/F3.1/Release Notes.md +0 -207
  73. package/dist/F3.1/Search.Api.md +0 -14
  74. package/dist/F3.1/Share.Api.md +0 -10
  75. package/dist/F3.1/Subjects.API.md +0 -35
  76. package/dist/F3.1/VideoViews.Api.md +0 -7
  77. package/dist/F3.1/clickview.md +0 -28
  78. package/lib/src/commands/StartConsumingProjectBuildsCommand.js +0 -76
  79. package/lib/src/tasks/StartConsumingProjectBuildsTask.js +0 -149
package/config.json CHANGED
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "slack": {
12
12
  "botToken": "xoxb-10474490612-6484075093633-vEo2cgvi7nma9DDSzPEXWDrw",
13
- "channelId": "C06JKU0EUTE"
13
+ "channelId": "C03DX0DSG3F"
14
14
  },
15
15
  "trello": {
16
16
  "apiKey": "6e887685d44e94ae9a680c010c4b622d",
package/lib/config.json CHANGED
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "slack": {
12
12
  "botToken": "xoxb-10474490612-6484075093633-vEo2cgvi7nma9DDSzPEXWDrw",
13
- "channelId": "C06JKU0EUTE"
13
+ "channelId": "C03DX0DSG3F"
14
14
  },
15
15
  "trello": {
16
16
  "apiKey": "6e887685d44e94ae9a680c010c4b622d",
@@ -359,7 +359,7 @@ var GitLabApiClient = /** @class */ (function () {
359
359
  });
360
360
  });
361
361
  };
362
- GitLabApiClient.prototype.getMilestone = function (milestoneName, projectId) {
362
+ GitLabApiClient.prototype.getMilestone = function (projectId, milestoneName) {
363
363
  return __awaiter(this, void 0, void 0, function () {
364
364
  var groupMilestones, milestone, projectMilestones;
365
365
  return __generator(this, function (_a) {
@@ -370,8 +370,6 @@ var GitLabApiClient = /** @class */ (function () {
370
370
  milestone = groupMilestones.find(function (milestone) { return milestone.title === milestoneName; });
371
371
  if (milestone)
372
372
  return [2 /*return*/, GitLabMapper_1.GitLabMapper.milestone(milestone)];
373
- if (!projectId)
374
- return [2 /*return*/, null];
375
373
  return [4 /*yield*/, this.client.ProjectMilestones.all(projectId)];
376
374
  case 2:
377
375
  projectMilestones = _a.sent();
@@ -383,23 +381,6 @@ var GitLabApiClient = /** @class */ (function () {
383
381
  });
384
382
  });
385
383
  };
386
- GitLabApiClient.prototype.updateMilestone = function (projectId, mergeRequestId, newMilestoneId) {
387
- return __awaiter(this, void 0, void 0, function () {
388
- var updated;
389
- return __generator(this, function (_a) {
390
- switch (_a.label) {
391
- case 0: return [4 /*yield*/, this.client.MergeRequests.edit(projectId, mergeRequestId, {
392
- milestoneId: newMilestoneId,
393
- })];
394
- case 1:
395
- updated = _a.sent();
396
- if (!updated)
397
- return [2 /*return*/, null];
398
- return [2 /*return*/, GitLabMapper_1.GitLabMapper.milestone(updated.milestone)];
399
- }
400
- });
401
- });
402
- };
403
384
  GitLabApiClient.prototype.getLabels = function (projectId) {
404
385
  return __awaiter(this, void 0, void 0, function () {
405
386
  var labels;
@@ -5,7 +5,6 @@ exports.GitLabMapper = {
5
5
  mergeRequest: function (m) {
6
6
  var _a;
7
7
  return {
8
- iid: m.iid,
9
8
  title: m.title,
10
9
  description: m.description,
11
10
  status: m.state,
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14
3
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
4
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -73,7 +62,7 @@ var CreateReleaseNotesCommand = /** @class */ (function () {
73
62
  var cont;
74
63
  return __generator(this, function (_a) {
75
64
  switch (_a.label) {
76
- case 0: return [4 /*yield*/, this.validateDescriptionsTask.run(__assign(__assign({}, options), { slackNotifier: false }))];
65
+ case 0: return [4 /*yield*/, this.validateDescriptionsTask.run(options)];
77
66
  case 1:
78
67
  cont = _a.sent();
79
68
  if (!cont)
@@ -74,28 +74,40 @@ var ReleaseCommand = /** @class */ (function () {
74
74
  // Check if we want to continue with inquirer?
75
75
  if (!cont)
76
76
  return [2 /*return*/, false];
77
- // cont = await this.versionTask.run(options);
78
- // if (!cont)
79
- // return false;
80
- // cont = await this.validateDescriptionsTask.run(options);
81
- // if (!cont)
82
- // return false;
83
- // cont = await this.validateCommitsTask.run(options);
84
- // if (!cont)
85
- // return false;
86
- // cont = await this.createBranchTask.run(options);
87
- // if (!cont)
88
- // return false;
89
- // cont = await this.bumpVersionTxtTask.run(options);
90
- // if (!cont)
91
- // return false;
92
- // cont = await this.createMergeRequestTask.run(options);
93
- // if (!cont)
94
- // return false;
95
- // if (!options.triggerMonorepoBuild)
96
- // return true;
97
- // return await this.startMonorepoBuildTask.run(options);
98
- return [2 /*return*/, true];
77
+ return [4 /*yield*/, this.versionTask.run(options)];
78
+ case 2:
79
+ cont = _a.sent();
80
+ if (!cont)
81
+ return [2 /*return*/, false];
82
+ return [4 /*yield*/, this.validateDescriptionsTask.run(options)];
83
+ case 3:
84
+ cont = _a.sent();
85
+ if (!cont)
86
+ return [2 /*return*/, false];
87
+ return [4 /*yield*/, this.validateCommitsTask.run(options)];
88
+ case 4:
89
+ cont = _a.sent();
90
+ if (!cont)
91
+ return [2 /*return*/, false];
92
+ return [4 /*yield*/, this.createBranchTask.run(options)];
93
+ case 5:
94
+ cont = _a.sent();
95
+ if (!cont)
96
+ return [2 /*return*/, false];
97
+ return [4 /*yield*/, this.bumpVersionTxtTask.run(options)];
98
+ case 6:
99
+ cont = _a.sent();
100
+ if (!cont)
101
+ return [2 /*return*/, false];
102
+ return [4 /*yield*/, this.createMergeRequestTask.run(options)];
103
+ case 7:
104
+ cont = _a.sent();
105
+ if (!cont)
106
+ return [2 /*return*/, false];
107
+ if (!options.triggerMonorepoBuild)
108
+ return [2 /*return*/, true];
109
+ return [4 /*yield*/, this.startMonorepoBuildTask.run(options)];
110
+ case 8: return [2 /*return*/, _a.sent()];
99
111
  }
100
112
  });
101
113
  });
@@ -39,7 +39,6 @@ exports.PROJECT_NAMES = {
39
39
  discover: '934',
40
40
  library: '1033',
41
41
  krakend: '920',
42
- share: '922',
43
42
  webplayer: '262',
44
43
  player: '917',
45
44
  autocaptions: '852',
@@ -9,7 +9,7 @@ exports.TeamCityBuildIds = (_a = {},
9
9
  _a[constants_1.PROJECT_NAMES.frontend.curator] = 'curator_web_BuildAndPackageDocker',
10
10
  _a[constants_1.PROJECT_NAMES.frontend.cloud] = 'ClickViewCloud_BuildAndPackageDocker',
11
11
  _a[constants_1.PROJECT_NAMES.frontend.reports] = 'Web_AnalyticsWeb_BuildAndPackageDocker',
12
- _a[constants_1.PROJECT_NAMES.frontend.lite] = 'Web_LiteWeb_BuildGodTest',
12
+ _a[constants_1.PROJECT_NAMES.frontend.lite] = 'ClickViewLiteWeb_BuildAndPackageDocker',
13
13
  _a[constants_1.PROJECT_NAMES.backend.auth] = 'auth_web_B',
14
14
  _a[constants_1.PROJECT_NAMES.frontend.exchange] = 'ExchangeWeb_BuildAndPackageDocker',
15
15
  _a[constants_1.PROJECT_NAMES.frontend.streamable] = 'Web_StreamableLearningWeb_BuildAndPackageDocker',
@@ -41,5 +41,4 @@ exports.TeamCityBuildIds = (_a = {},
41
41
  _a[constants_1.PROJECT_NAMES.backend.tvweb] = 'tv_web_BuildAndPackageDocker',
42
42
  _a[constants_1.PROJECT_NAMES.backend.clients] = 'Tooling_Clients_PublishToNuget',
43
43
  _a[constants_1.PROJECT_NAMES.backend.goodstuff] = 'Tooling_GoodStuffInternal_PublishToNuget',
44
- _a[constants_1.PROJECT_NAMES.backend.share] = 'Api_ShareApi_BuildAndPackageDocker',
45
44
  _a);
package/lib/src/index.js CHANGED
File without changes
@@ -269,7 +269,7 @@ var GitLabService = /** @class */ (function () {
269
269
  var milestone;
270
270
  return __generator(this, function (_a) {
271
271
  switch (_a.label) {
272
- case 0: return [4 /*yield*/, this.getMilestone(milestoneName, projectId)];
272
+ case 0: return [4 /*yield*/, this.getMilestone(projectId, milestoneName)];
273
273
  case 1:
274
274
  milestone = _a.sent();
275
275
  return [2 /*return*/, this.apiClient.createMergeRequest(projectId, branchName, 'master', branchName, description, milestone)];
@@ -277,8 +277,8 @@ var GitLabService = /** @class */ (function () {
277
277
  });
278
278
  });
279
279
  };
280
- GitLabService.prototype.getMilestone = function (milestoneName, projectId) {
281
- return this.apiClient.getMilestone(milestoneName, projectId);
280
+ GitLabService.prototype.getMilestone = function (projectId, milestoneName) {
281
+ return this.apiClient.getMilestone(projectId, milestoneName);
282
282
  };
283
283
  GitLabService.prototype.getReleaseBranchNameMilestone = function (projectId, milestone) {
284
284
  return __awaiter(this, void 0, void 0, function () {
@@ -488,13 +488,6 @@ var GitLabService = /** @class */ (function () {
488
488
  });
489
489
  });
490
490
  };
491
- GitLabService.prototype.updateMilestone = function (projectId, mergeRequestID, newMilestoneId) {
492
- return __awaiter(this, void 0, void 0, function () {
493
- return __generator(this, function (_a) {
494
- return [2 /*return*/, this.apiClient.updateMilestone(projectId, mergeRequestID, newMilestoneId)];
495
- });
496
- });
497
- };
498
491
  GitLabService = __decorate([
499
492
  (0, inversify_1.injectable)(),
500
493
  __param(0, (0, inversify_1.inject)(types_1.API_CLIENTS.GitLabApiClient)),
@@ -118,6 +118,9 @@ var SlackService = /** @class */ (function () {
118
118
  mentionUserString = this.formatMentionUsers(userList);
119
119
  if (!mentionUserString)
120
120
  return [2 /*return*/];
121
+ return [4 /*yield*/, this.apiClient.replyInThread("Hello ".concat(mentionUserString), threadTs)];
122
+ case 7:
123
+ _d.sent();
121
124
  return [2 /*return*/];
122
125
  }
123
126
  });
@@ -94,11 +94,9 @@ function setupCommands(program, container) {
94
94
  .requiredOption('-m, --milestone <milestone>')
95
95
  .option('-p, --projectIds <projectIds...>')
96
96
  .option('-o, --omit <omittedProjectIds...>')
97
- .option('-nm, --nextMilestone <nextMilestone>')
98
97
  .option('--hotfix')
99
98
  .option('--major')
100
99
  .option('--trigger-monorepo-build')
101
- .option('--slack-notifier')
102
100
  .action(function (opts) { return __awaiter(_this, void 0, void 0, function () {
103
101
  var options;
104
102
  return __generator(this, function (_a) {
@@ -148,7 +146,6 @@ function setupCommands(program, container) {
148
146
  .option('--monorepoBranchName <monorepoBranchName>')
149
147
  .option('-p, --projectIds <projectIds...>')
150
148
  .option('-o, --omit <omittedProjectIds...>')
151
- .option('-t, --targetBranchName <targetBranchName>')
152
149
  .action(function (opts) { return __awaiter(_this, void 0, void 0, function () {
153
150
  var options;
154
151
  return __generator(this, function (_a) {
@@ -62,44 +62,23 @@ var StartProjectBuildsTask = /** @class */ (function () {
62
62
  }
63
63
  StartProjectBuildsTask.prototype.run = function (_options) {
64
64
  return __awaiter(this, void 0, void 0, function () {
65
- var projectName, project, buildId, build, milestone, options, projects, consumingProjects, projectBuildMap, _i, consumingProjects_1, project, branchName, buildId, build, totalBuilds, project;
65
+ var milestone, options, projects, consumingProjects, projectBuildMap, _i, consumingProjects_1, project, branchName, buildId, build, totalBuilds, project;
66
66
  return __generator(this, function (_a) {
67
67
  switch (_a.label) {
68
68
  case 0:
69
69
  utils_1.Logger.logTask('Starting builds for consuming projects in TeamCity');
70
- if (!(_options.targetBranchName && _options.projectIds)) return [3 /*break*/, 3];
71
- utils_1.Logger.logMessage("Starting consuming project build for given target branch ".concat(_options.targetBranchName));
72
- if (_options.projectIds.length > 1) {
73
- utils_1.Logger.logError("More than one project found!");
74
- return [2 /*return*/, false];
75
- }
76
- projectName = _options.projectIds[0];
77
- return [4 /*yield*/, this.gitLabService.getProject(projectName)];
78
- case 1:
79
- project = _a.sent();
80
- buildId = TeamCityBuildIDs_1.TeamCityBuildIds[project.id];
81
- if (!buildId) {
82
- utils_1.Logger.logWarning("Skipping build for ".concat(project.title, " as no Team City build ID has been specified"));
83
- return [2 /*return*/, false];
84
- }
85
- return [4 /*yield*/, this.teamCityService.startBuild(buildId, _options.targetBranchName)];
86
- case 2:
87
- build = _a.sent();
88
- utils_1.Logger.logInfo("[".concat(project.title, "]: ").concat(build.webUrl));
89
- return [2 /*return*/, true];
90
- case 3:
91
70
  if (!_options.monorepoBranchName && !_options.milestone) {
92
71
  utils_1.Logger.logError('Please provide either a milestone or branch name argument.');
93
72
  return [2 /*return*/, false];
94
73
  }
95
74
  milestone = _options.milestone;
96
- if (!!milestone) return [3 /*break*/, 5];
75
+ if (!!milestone) return [3 /*break*/, 2];
97
76
  utils_1.Logger.logInfo("Searching for a merge request in project \"monorepo\" with branch name \"".concat(_options.monorepoBranchName, "\"..."));
98
77
  return [4 /*yield*/, this.gitLabService.getMilestoneByBranchName(utils_1.ProjectIds.MONOREPO_PROJECT_ID, _options.monorepoBranchName)];
99
- case 4:
78
+ case 1:
100
79
  milestone = _a.sent();
101
- _a.label = 5;
102
- case 5:
80
+ _a.label = 2;
81
+ case 2:
103
82
  if (!milestone)
104
83
  return [2 /*return*/, false];
105
84
  utils_1.Logger.logInfo("Found milestone \"".concat(milestone, "\". Proceeding to run builds for consuming projects..."));
@@ -110,7 +89,7 @@ var StartProjectBuildsTask = /** @class */ (function () {
110
89
  milestone: milestone
111
90
  };
112
91
  return [4 /*yield*/, this.gitLabService.getProjects(options)];
113
- case 6:
92
+ case 3:
114
93
  projects = _a.sent();
115
94
  consumingProjects = projects.filter(function (p) { return p.id.toString() !== utils_1.ProjectIds.MONOREPO_PROJECT_ID; });
116
95
  if (!consumingProjects.length) {
@@ -119,31 +98,31 @@ var StartProjectBuildsTask = /** @class */ (function () {
119
98
  }
120
99
  projectBuildMap = {};
121
100
  _i = 0, consumingProjects_1 = consumingProjects;
122
- _a.label = 7;
123
- case 7:
124
- if (!(_i < consumingProjects_1.length)) return [3 /*break*/, 11];
101
+ _a.label = 4;
102
+ case 4:
103
+ if (!(_i < consumingProjects_1.length)) return [3 /*break*/, 8];
125
104
  project = consumingProjects_1[_i];
126
105
  return [4 /*yield*/, this.gitLabService.getReleaseBranchNameMilestone(project.id, options.milestone)];
127
- case 8:
106
+ case 5:
128
107
  branchName = _a.sent();
129
108
  if (!branchName) {
130
109
  utils_1.Logger.logWarning("Release branch in project \"".concat(project.title, "\" with milestone \"").concat(options.milestone, "\" was not found. Skipping project..."));
131
- return [3 /*break*/, 10];
110
+ return [3 /*break*/, 7];
132
111
  }
133
112
  buildId = TeamCityBuildIDs_1.TeamCityBuildIds[project.id.toString()];
134
113
  if (!buildId) {
135
114
  utils_1.Logger.logWarning("Skipping build for ".concat(project.title, " as no Team City build ID has been specified"));
136
- return [3 /*break*/, 10];
115
+ return [3 /*break*/, 7];
137
116
  }
138
117
  return [4 /*yield*/, this.teamCityService.startBuild(buildId, branchName)];
139
- case 9:
118
+ case 6:
140
119
  build = _a.sent();
141
120
  projectBuildMap[project.title] = build;
142
- _a.label = 10;
143
- case 10:
121
+ _a.label = 7;
122
+ case 7:
144
123
  _i++;
145
- return [3 /*break*/, 7];
146
- case 11:
124
+ return [3 /*break*/, 4];
125
+ case 8:
147
126
  totalBuilds = Object.keys(projectBuildMap).length;
148
127
  if (!totalBuilds) {
149
128
  utils_1.Logger.logWarning("No releases found in consuming projects with milestone \"".concat(options.milestone, "\"."));
@@ -71,14 +71,12 @@ var services_1 = require("../services");
71
71
  var utils_1 = require("../utils");
72
72
  var ValidateTask = /** @class */ (function () {
73
73
  function ValidateTask(gitLabService, slackService) {
74
- // Flag to confirm that all Merge requests have been rolled over
75
- this.rollOverAllMrs = true;
76
74
  this.gitLabService = gitLabService;
77
75
  this.slackService = slackService;
78
76
  }
79
77
  ValidateTask.prototype.run = function (options) {
80
78
  return __awaiter(this, void 0, void 0, function () {
81
- var projects, cont, allCorrectTargetMrs, _loop_1, this_1, _i, projects_1, project, nextMilestone, threadLabel, statusCleanMessage;
79
+ var projects, cont, _loop_1, this_1, _i, projects_1, project, threadLabel, statusCleanMessage;
82
80
  return __generator(this, function (_a) {
83
81
  switch (_a.label) {
84
82
  case 0:
@@ -88,7 +86,6 @@ var ValidateTask = /** @class */ (function () {
88
86
  projects = _a.sent();
89
87
  utils_1.Logger.logMessage("Found ".concat(projects.length, " projects that need to be released"));
90
88
  cont = true;
91
- allCorrectTargetMrs = true;
92
89
  _loop_1 = function (project) {
93
90
  var hasSomeTags, groupedMRs, count, ready, wrongTargetMrs, nextVersion, message_1, issues;
94
91
  return __generator(this, function (_b) {
@@ -105,10 +102,8 @@ var ValidateTask = /** @class */ (function () {
105
102
  return [4 /*yield*/, this_1.getMRsTargetingWrongBranch(project, options.version)];
106
103
  case 2:
107
104
  wrongTargetMrs = _b.sent();
108
- if (wrongTargetMrs.length) {
105
+ if (wrongTargetMrs.length)
109
106
  ready = false;
110
- allCorrectTargetMrs = false;
111
- }
112
107
  if (!ready)
113
108
  cont = false;
114
109
  if (!ready) return [3 /*break*/, 4];
@@ -149,33 +144,16 @@ var ValidateTask = /** @class */ (function () {
149
144
  _i++;
150
145
  return [3 /*break*/, 2];
151
146
  case 5:
152
- if (!!cont) return [3 /*break*/, 10];
147
+ if (!!cont) return [3 /*break*/, 8];
153
148
  utils_1.Logger.logError("\nThis release is NOT READY to go out, here are the outstanding MRs: \n");
154
- nextMilestone = void 0;
155
- if (!options.nextMilestone) return [3 /*break*/, 7];
156
- return [4 /*yield*/, this.gitLabService.getMilestone(options.nextMilestone)];
149
+ return [4 /*yield*/, this.notReadyMrsLog(projects, options.version, options.milestone, options.slackNotifier)];
157
150
  case 6:
158
- // No need for project ID to get milestone since it exists in ClickView Group
159
- nextMilestone = _a.sent();
160
- if (!nextMilestone) {
161
- utils_1.Logger.logError("Invalid roll over milestone '".concat(options.nextMilestone, "'. Exiting!"));
162
- return [2 /*return*/, false];
163
- }
164
- _a.label = 7;
165
- case 7: return [4 /*yield*/, this.notReadyMrsLog(projects, options.version, options.milestone, options.slackNotifier, nextMilestone)];
166
- case 8:
167
151
  _a.sent();
168
- return [4 /*yield*/, this.wrongTargetMrsLog(projects, options.version, options.milestone, options.slackNotifier, nextMilestone)];
169
- case 9:
152
+ return [4 /*yield*/, this.wrongTargetMrsLog(projects, options.version, options.milestone, options.slackNotifier)];
153
+ case 7:
170
154
  _a.sent();
171
- // Check that all MRs rolled over and all MRs targeting dev or release before creating release
172
- if (options.nextMilestone && this.rollOverAllMrs && allCorrectTargetMrs) {
173
- return [2 /*return*/, true];
174
- }
175
- if (!this.rollOverAllMrs)
176
- utils_1.Logger.logError('Some or all MRs did not get successfully rolled over. Check logs to find out which ones');
177
155
  return [2 /*return*/, false];
178
- case 10:
156
+ case 8:
179
157
  if (!options.slackNotifier) {
180
158
  utils_1.Logger.logMessage('\nRelease is ready to go out. Not sending any slack notifications.');
181
159
  return [2 /*return*/, true];
@@ -192,7 +170,7 @@ var ValidateTask = /** @class */ (function () {
192
170
  statusMessage: '',
193
171
  statusCleanMessage: statusCleanMessage
194
172
  })];
195
- case 11:
173
+ case 9:
196
174
  // Send formated status update in slack
197
175
  _a.sent();
198
176
  // Send success thread for MRs not targeting Dev
@@ -205,7 +183,7 @@ var ValidateTask = /** @class */ (function () {
205
183
  statusMessage: '',
206
184
  statusCleanMessage: statusCleanMessage
207
185
  })];
208
- case 12:
186
+ case 10:
209
187
  // Send formated status update in slack
210
188
  _a.sent();
211
189
  utils_1.Logger.logSuccess('\nRelease is ready to go out');
@@ -214,11 +192,11 @@ var ValidateTask = /** @class */ (function () {
214
192
  });
215
193
  });
216
194
  };
217
- ValidateTask.prototype.notReadyMrsLog = function (projects, version, milestone, slackNotifier, nextMilestone) {
195
+ ValidateTask.prototype.notReadyMrsLog = function (projects, version, milestone, slackNotifier) {
218
196
  return __awaiter(this, void 0, void 0, function () {
219
- var allNotReadyMrs, emailListNotReadyMrs, _i, projects_2, project, notReadyMrs, groupedByUser, logMessageSlack, _a, _b, _c, key, name, authorEmail, _d, _e, mr, updated, threadLabel, statusCleanMessage;
220
- return __generator(this, function (_f) {
221
- switch (_f.label) {
197
+ var allNotReadyMrs, emailListNotReadyMrs, _i, projects_2, project, notReadyMrs, groupedByUser, logMessageSlack, key, name, authorEmail, _a, _b, mr, threadLabel, statusCleanMessage;
198
+ return __generator(this, function (_c) {
199
+ switch (_c.label) {
222
200
  case 0:
223
201
  allNotReadyMrs = [];
224
202
  emailListNotReadyMrs = [];
@@ -230,55 +208,25 @@ var ValidateTask = /** @class */ (function () {
230
208
  }
231
209
  groupedByUser = lodash_1.default.groupBy(allNotReadyMrs, function (mr) { return mr.author; });
232
210
  logMessageSlack = '';
233
- _a = [];
234
- for (_b in groupedByUser)
235
- _a.push(_b);
236
- _c = 0;
237
- _f.label = 1;
238
- case 1:
239
- if (!(_c < _a.length)) return [3 /*break*/, 6];
240
- key = _a[_c];
241
- name = key;
242
- // Pretty sure this can't happen now 😅
243
- if (!name || name === 'undefined')
244
- name = 'No Author';
245
- authorEmail = this.slackService.convertToEmailFormat(key);
246
- emailListNotReadyMrs.push(authorEmail);
247
- utils_1.Logger.logMessage(name);
248
- logMessageSlack += "".concat(name, ":\n");
249
- _d = 0, _e = groupedByUser[key];
250
- _f.label = 2;
251
- case 2:
252
- if (!(_d < _e.length)) return [3 /*break*/, 5];
253
- mr = _e[_d];
254
- utils_1.Logger.logMessage("- ".concat(mr.url));
255
- logMessageSlack += "- ".concat(mr.url, "\n");
256
- if (!nextMilestone) return [3 /*break*/, 4];
257
- return [4 /*yield*/, this.updateMrMilestone(nextMilestone.id, milestone, mr)];
258
- case 3:
259
- updated = _f.sent();
260
- if (updated) {
261
- logMessageSlack += " -> MR has been rolled over from '".concat(milestone, "' to '").concat(nextMilestone.name, "' successfully\n");
262
- }
263
- else {
264
- logMessageSlack += " -> Failed to roll over milestone for this MR. Check logs for error.\n";
211
+ for (key in groupedByUser) {
212
+ name = key;
213
+ // Pretty sure this can't happen now 😅
214
+ if (!name || name === 'undefined')
215
+ name = 'No Author';
216
+ authorEmail = this.slackService.convertToEmailFormat(key);
217
+ emailListNotReadyMrs.push(authorEmail);
218
+ utils_1.Logger.logMessage(name);
219
+ logMessageSlack += "".concat(name, ":\n");
220
+ for (_a = 0, _b = groupedByUser[key]; _a < _b.length; _a++) {
221
+ mr = _b[_a];
222
+ utils_1.Logger.logMessage("- ".concat(mr.url));
223
+ logMessageSlack += "- ".concat(mr.url, "\n");
224
+ }
265
225
  }
266
- _f.label = 4;
267
- case 4:
268
- _d++;
269
- return [3 /*break*/, 2];
270
- case 5:
271
- _c++;
272
- return [3 /*break*/, 1];
273
- case 6:
274
226
  if (!slackNotifier)
275
227
  return [2 /*return*/];
276
228
  threadLabel = "".concat(milestone, " Open Mrs!");
277
229
  statusCleanMessage = 'No outstanding Mrs!';
278
- if (nextMilestone) {
279
- threadLabel = "".concat(milestone, " merge requests rolled over to ").concat(nextMilestone.name, "!");
280
- statusCleanMessage = 'There were no outstanding MRs for this release!';
281
- }
282
230
  // Send formated status update in slack
283
231
  return [4 /*yield*/, this.slackService.sendSlackStatusMessage({
284
232
  emailList: emailListNotReadyMrs,
@@ -286,15 +234,15 @@ var ValidateTask = /** @class */ (function () {
286
234
  statusMessage: logMessageSlack,
287
235
  statusCleanMessage: statusCleanMessage
288
236
  })];
289
- case 7:
237
+ case 1:
290
238
  // Send formated status update in slack
291
- _f.sent();
239
+ _c.sent();
292
240
  return [2 /*return*/];
293
241
  }
294
242
  });
295
243
  });
296
244
  };
297
- ValidateTask.prototype.wrongTargetMrsLog = function (projects, version, milestone, slackNotifier, nextMilestone) {
245
+ ValidateTask.prototype.wrongTargetMrsLog = function (projects, version, milestone, slackNotifier) {
298
246
  return __awaiter(this, void 0, void 0, function () {
299
247
  var allWrongTargetMrs, emailListWrongTargetMrs, _i, projects_3, project, wrongTargetMrs, logAllWrongTargetMrs, groupedByUser, key, name, authorEmail, _a, _b, mr, threadLabel, statusCleanMessage;
300
248
  return __generator(this, function (_c) {
@@ -340,8 +288,6 @@ var ValidateTask = /** @class */ (function () {
340
288
  }
341
289
  if (!slackNotifier)
342
290
  return [2 /*return*/];
343
- if (nextMilestone)
344
- return [2 /*return*/];
345
291
  threadLabel = "".concat(milestone, " MRs not targeting dev!");
346
292
  statusCleanMessage = 'All MRs targeting dev!';
347
293
  // Send formated status update in slack
@@ -386,27 +332,6 @@ var ValidateTask = /** @class */ (function () {
386
332
  });
387
333
  });
388
334
  };
389
- ValidateTask.prototype.updateMrMilestone = function (nextMilestoneId, milestone, mr) {
390
- return __awaiter(this, void 0, void 0, function () {
391
- var updatedMilestone;
392
- return __generator(this, function (_a) {
393
- switch (_a.label) {
394
- case 0: return [4 /*yield*/, this.gitLabService.updateMilestone(mr.projectId, mr.iid, nextMilestoneId)];
395
- case 1:
396
- updatedMilestone = _a.sent();
397
- if (updatedMilestone) {
398
- utils_1.Logger.logSuccess("MR have been rolled over to next milestone (".concat(milestone, " -> ").concat(updatedMilestone.name, ")"));
399
- }
400
- else {
401
- utils_1.Logger.logError('Failed to update the milestone for merge request!');
402
- this.rollOverAllMrs = false;
403
- return [2 /*return*/, false];
404
- }
405
- return [2 /*return*/, true];
406
- }
407
- });
408
- });
409
- };
410
335
  ValidateTask = __decorate([
411
336
  (0, inversify_1.injectable)(),
412
337
  __param(0, (0, inversify_1.inject)(types_1.SERVICES.GitLabService)),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickview/ship-it",
3
- "version": "0.0.27-dev.0",
3
+ "version": "0.0.27",
4
4
  "description": "Release Manager",
5
5
  "main": "./lib/index.js",
6
6
  "bin": {
@@ -1,8 +0,0 @@
1
-
2
- # Code changes
3
- - Add new illos and remove old illos.
4
-
5
-
6
- # Testing
7
- - Implements ANLT-107
8
-
@@ -1,30 +0,0 @@
1
-
2
- # Code changes
3
- - Move all amazon transcribe logic to `ClickView.AutoCaptions.Aws`
4
- - Change `IAmazonTranscribeClient` to `ITranscriptionProcessor`. Closes CORE-1374
5
- - Introduce new domain models instead of using the aws client models
6
- - Now contains `TranscriptionSubtitle` which has the subtitle content as a string instead of returning urls
7
- - `AmazonTranscribeClient` changes:
8
- - Will now download the subtitle instead of leaving it up to `CaptionTaskProcessor`
9
- - Moved CdnMapping call into this service as other processors need want to use the cdn for public access
10
-
11
- - Add `Directory.Build.props` to control common properties
12
- - nullable is now enabled for all projects
13
- - Misc nullable fixes
14
- - `LanguageHelper` changes
15
- - Define a default language for when we return a default language. HashSet does not guarantee ordering so FIrst might not be whats expected
16
- - Update build files to their latest versions
17
- - Use the runtime docker image not aspnet as this is not an aspnet project
18
-
19
- - Replace local master api client with `ClickView.Clients.Master`
20
-
21
- - Update all packages to their latest versions
22
- - Replace `Serilog.AspNetCore` with `Serilog.Extensions.Hosting` since we are not in an aspnetcore context
23
-
24
-
25
- # Testing
26
- - CORE-1374
27
-
28
-
29
-
30
-