@clickview/ship-it 0.0.49 → 0.0.50

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 (66) hide show
  1. package/config.json +5 -0
  2. package/lib/config.json +5 -0
  3. package/lib/src/api-clients/git-lab/GitLabApiClient.js +1 -1
  4. package/lib/src/api-clients/index.js +1 -0
  5. package/lib/src/api-clients/slack/SlackApiClient.js +27 -25
  6. package/lib/src/api-clients/team-city/TeamCityApiClient.js +1 -1
  7. package/lib/src/api-clients/trello/TrelloApiClient.js +1 -1
  8. package/lib/src/commands/BumpPackagesCommand.js +1 -1
  9. package/lib/src/commands/CheckReleaseReadyCommand.js +1 -1
  10. package/lib/src/commands/ConfigureProjectsCommand.js +1 -1
  11. package/lib/src/commands/CreateBranchCommand.js +1 -1
  12. package/lib/src/commands/CreateHotfixCommand.js +1 -1
  13. package/lib/src/commands/CreateMergeRequestCommand.js +1 -1
  14. package/lib/src/commands/CreateNotesAuditCommand.js +1 -1
  15. package/lib/src/commands/CreateReleaseNotesCommand.js +1 -1
  16. package/lib/src/commands/CreateTrelloCardsCommand.js +1 -1
  17. package/lib/src/commands/InstallPackagesCommand.js +1 -1
  18. package/lib/src/commands/JiraTicketsStatusCommand.js +1 -41
  19. package/lib/src/commands/ListProjectsCommand.js +1 -1
  20. package/lib/src/commands/ReleaseCommand.js +1 -1
  21. package/lib/src/commands/StartProjectBuildsCommand.js +1 -1
  22. package/lib/src/commands/StatusCommand.js +1 -1
  23. package/lib/src/commands/TagMasterCommand.js +1 -1
  24. package/lib/src/commands/ToolingReleaseCommand.js +1 -1
  25. package/lib/src/commands/UpdateDescriptionCommand.js +1 -1
  26. package/lib/src/commands/ValidateMergeRequestCommand.js +1 -1
  27. package/lib/src/commands/VersionCommand.js +1 -1
  28. package/lib/src/commands/index.js +2 -0
  29. package/lib/src/constants/CommandTypeMapping.js +2 -0
  30. package/lib/src/inversify.config.js +7 -0
  31. package/lib/src/services/GitLabService.js +9 -4
  32. package/lib/src/services/SlackService.js +3 -7
  33. package/lib/src/services/TrelloService.js +1 -1
  34. package/lib/src/services/index.js +1 -0
  35. package/lib/src/startup/AddMilestoneCommand.js +1 -1
  36. package/lib/src/startup/GetAction.js +1 -1
  37. package/lib/src/startup/SetupCommands.js +3 -1
  38. package/lib/src/tasks/BumpPackagesTask.js +1 -1
  39. package/lib/src/tasks/BumpVersionTxtTask.js +1 -1
  40. package/lib/src/tasks/ChangeMilestoneTask.js +1 -1
  41. package/lib/src/tasks/CheckReleaseReadyTask.js +29 -17
  42. package/lib/src/tasks/CreateBranchTask.js +1 -1
  43. package/lib/src/tasks/CreateHotfixTask.js +1 -1
  44. package/lib/src/tasks/CreateMergeRequestTask.js +1 -1
  45. package/lib/src/tasks/CreateNotesAuditTask.js +40 -16
  46. package/lib/src/tasks/CreateReleaseNotesTask.js +1 -1
  47. package/lib/src/tasks/InstallPackagesTask.js +1 -1
  48. package/lib/src/tasks/ListProjectsTask.js +1 -1
  49. package/lib/src/tasks/PopulateTrelloBoardTask.js +1 -1
  50. package/lib/src/tasks/StartMonorepoBuildTask.js +1 -1
  51. package/lib/src/tasks/StartProjectBuildsTask.js +1 -1
  52. package/lib/src/tasks/TagMasterTask.js +1 -1
  53. package/lib/src/tasks/UpdateMergeRequestDescriptionTask.js +1 -1
  54. package/lib/src/tasks/ValidateCommitsTask.js +1 -1
  55. package/lib/src/tasks/ValidateDescriptionsTask.js +1 -1
  56. package/lib/src/tasks/ValidateMergeRequestTask.js +1 -1
  57. package/lib/src/tasks/ValidateTask.js +23 -20
  58. package/lib/src/tasks/VersionTask.js +1 -1
  59. package/lib/src/tasks/configure-projects/AddApprovalRulesTask.js +1 -1
  60. package/lib/src/tasks/configure-projects/CreateToolingBranchTask.js +1 -1
  61. package/lib/src/tasks/configure-projects/EnsureApprovalRulesTask.js +1 -1
  62. package/lib/src/tasks/configure-projects/primitives/BaseConfigureProjectsTask.js +2 -2
  63. package/lib/src/tasks/index.js +2 -0
  64. package/lib/src/types.js +7 -0
  65. package/lib/src/utils/Descriptions.js +38 -10
  66. package/package.json +6 -5
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
14
14
  function verb(n) { return function (v) { return step([n, v]); }; }
15
15
  function step(op) {
16
16
  if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
18
  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;
19
19
  if (y = 0, t) op = [op[0] & 2, t.value];
20
20
  switch (op[0]) {
@@ -25,7 +25,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
25
25
  function verb(n) { return function (v) { return step([n, v]); }; }
26
26
  function step(op) {
27
27
  if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
29
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
30
  if (y = 0, t) op = [op[0] & 2, t.value];
31
31
  switch (op[0]) {
@@ -60,8 +60,10 @@ function setupCommands(program, container) {
60
60
  addMilestoneCommand('create-branches', 'Create release branches for all projects that are part of a milestone');
61
61
  addMilestoneCommand('create-mrs', 'Create merge requests for all projects that are part of a milestone');
62
62
  addMilestoneCommand('create-notes-audit', 'Builds a spreadsheet of all the customer changes and who wrote them.');
63
+ addMilestoneCommand('testing-status', 'Fetches Jira ticket status for a milestone and posts results to Slack.');
63
64
  addMilestoneCommand('tag-master', 'Tags master for all release MRs that are part of a milestone');
64
65
  addMilestoneCommand('create-trello-cards', 'Creates the cards on the ship-it trello board for all projects that are part of a milestone');
66
+ addMilestoneCommand('check-release-ready', 'Checks for all pre-release tasks to ensure release is ready to be pushed');
65
67
  addMilestoneCommand('update-description', 'Recreates descriptions for release MRs');
66
68
  program.command('status')
67
69
  .description('Get the status of all MRs in a milestone')
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -62,31 +62,34 @@ var CheckReleaseReadyTask = /** @class */ (function () {
62
62
  }
63
63
  CheckReleaseReadyTask.prototype.run = function (options) {
64
64
  return __awaiter(this, void 0, void 0, function () {
65
- var projects, deployDependenciesTasks, beforeReleaseTasks, afterReleaseTasks, sqlSections, _i, projects_1, project, branchName, mergeRequest, deployDependencies, beforeTasks, afterTasks, beforeSQL, afterSQL, milestoneLabel, taskSummary, sqlMessage;
66
- return __generator(this, function (_a) {
67
- switch (_a.label) {
65
+ var projects, deployDependenciesTasks, beforeReleaseTasks, afterReleaseTasks, sqlSections, failedProjects, _i, projects_1, project, branchName, mergeRequest, deployDependencies, beforeTasks, afterTasks, beforeSQL, afterSQL, _a, failedProjects_1, _b, project, branch, milestoneLabel, taskSummary, sqlMessage;
66
+ return __generator(this, function (_c) {
67
+ switch (_c.label) {
68
68
  case 0:
69
69
  Logger_1.Logger.logTask('Checking status of the current release...');
70
70
  return [4 /*yield*/, this.service.getReleaseProjects(options.milestone, options.projectIds, options.omittedProjectIds, options.sourceBranch)];
71
71
  case 1:
72
- projects = _a.sent();
72
+ projects = _c.sent();
73
73
  deployDependenciesTasks = [];
74
74
  beforeReleaseTasks = [];
75
75
  afterReleaseTasks = [];
76
76
  sqlSections = [];
77
+ failedProjects = [];
77
78
  _i = 0, projects_1 = projects;
78
- _a.label = 2;
79
+ _c.label = 2;
79
80
  case 2:
80
81
  if (!(_i < projects_1.length)) return [3 /*break*/, 6];
81
82
  project = projects_1[_i];
82
83
  return [4 /*yield*/, this.service.getNextBranchInfo(project.id, options.version)];
83
84
  case 3:
84
- branchName = (_a.sent()).branchName;
85
+ branchName = (_c.sent()).branchName;
85
86
  return [4 /*yield*/, this.service.getMergeRequest(project.id, branchName)];
86
87
  case 4:
87
- mergeRequest = _a.sent();
88
- if (!mergeRequest)
89
- throw new Error("No release MR found for project ".concat(project.title, " on branch ").concat(branchName));
88
+ mergeRequest = _c.sent();
89
+ if (!mergeRequest) {
90
+ failedProjects.push([project.title, branchName]);
91
+ return [3 /*break*/, 5];
92
+ }
90
93
  deployDependencies = utils_1.Descriptions.getDescriptionSection('Dependencies', mergeRequest);
91
94
  beforeTasks = utils_1.Descriptions.getDescriptionSection('BeforeRelease', mergeRequest, 'Tasks');
92
95
  afterTasks = utils_1.Descriptions.getDescriptionSection('AfterRelease', mergeRequest, 'Tasks');
@@ -102,16 +105,25 @@ var CheckReleaseReadyTask = /** @class */ (function () {
102
105
  sqlSections.push({ project: project.title, mr: mergeRequest.title, content: beforeSQL, phase: 'BeforeRelease' });
103
106
  if (afterSQL)
104
107
  sqlSections.push({ project: project.title, mr: mergeRequest.title, content: afterSQL, phase: 'AfterRelease' });
105
- _a.label = 5;
108
+ _c.label = 5;
106
109
  case 5:
107
110
  _i++;
108
111
  return [3 /*break*/, 2];
109
112
  case 6:
113
+ if (failedProjects.length > 0) {
114
+ Logger_1.Logger.logError('Failed to find release MR for the following projects:');
115
+ for (_a = 0, failedProjects_1 = failedProjects; _a < failedProjects_1.length; _a++) {
116
+ _b = failedProjects_1[_a], project = _b[0], branch = _b[1];
117
+ Logger_1.Logger.logError("- ".concat(project, " on branch ").concat(branch));
118
+ }
119
+ return [2 /*return*/, false];
120
+ }
110
121
  this.logSection('====== ALL DEPLOY DEPENDENCIES ======', deployDependenciesTasks);
111
122
  this.logSection('====== ALL BEFORE RELEASE TASKS ======', beforeReleaseTasks);
112
123
  this.logSection('====== ALL AFTER RELEASE TASKS ======', afterReleaseTasks);
113
124
  this.logSection('====== ALL SQL CHANGES (with context) ======', sqlSections, function (item) { return item.phase === 'BeforeRelease' ? 'Before Release' : 'After Release'; });
114
- if (!options.slackNotifier) return [3 /*break*/, 10];
125
+ if (!options.slackNotifier)
126
+ return [2 /*return*/, true];
115
127
  milestoneLabel = "".concat(options.milestone, " Release");
116
128
  taskSummary = [
117
129
  this.formatSection('Deploy Dependencies', deployDependenciesTasks),
@@ -121,13 +133,13 @@ var CheckReleaseReadyTask = /** @class */ (function () {
121
133
  if (!taskSummary) return [3 /*break*/, 8];
122
134
  return [4 /*yield*/, this.slackService.sendSlackStatusMessage({
123
135
  emailList: [],
124
- threadLabel: "".concat(milestoneLabel, " Tasks & Dependencies"),
136
+ threadLabel: "".concat(milestoneLabel, " Tasks and Dependencies"),
125
137
  statusMessage: taskSummary,
126
138
  statusCleanMessage: 'No Before/After Release Tasks found!'
127
139
  })];
128
140
  case 7:
129
- _a.sent();
130
- _a.label = 8;
141
+ _c.sent();
142
+ _c.label = 8;
131
143
  case 8:
132
144
  sqlMessage = this.formatSection('SQL Changes', sqlSections, function (item) { return item.phase === 'BeforeRelease' ? 'Before Release' : 'After Release'; });
133
145
  if (!sqlMessage) return [3 /*break*/, 10];
@@ -139,8 +151,8 @@ var CheckReleaseReadyTask = /** @class */ (function () {
139
151
  sendAsFile: true
140
152
  })];
141
153
  case 9:
142
- _a.sent();
143
- _a.label = 10;
154
+ _c.sent();
155
+ _c.label = 10;
144
156
  case 10: return [2 /*return*/, true];
145
157
  }
146
158
  });
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -61,24 +61,26 @@ var services_1 = require("../services");
61
61
  var utils_1 = require("../utils");
62
62
  var Csv_1 = require("../utils/Csv");
63
63
  var CreateNotesAuditTask = /** @class */ (function () {
64
- function CreateNotesAuditTask(service) {
64
+ function CreateNotesAuditTask(service, slackService) {
65
65
  this.service = service;
66
+ this.slackService = slackService;
66
67
  }
67
68
  CreateNotesAuditTask.prototype.run = function (options) {
69
+ var _a;
68
70
  return __awaiter(this, void 0, void 0, function () {
69
- var projects, projectTestingNotes, _i, projects_1, project, _a, _b, mr, description, outputPath, error_1, csv;
70
- return __generator(this, function (_c) {
71
- switch (_c.label) {
71
+ var projects, projectTestingNotes, _i, projects_1, project, _b, _c, mr, description, outputPath, error_1, csv, fileContent, threadLabel, threadTs, _d;
72
+ return __generator(this, function (_e) {
73
+ switch (_e.label) {
72
74
  case 0:
73
75
  utils_1.Logger.logTask('Creating release notes audit');
74
76
  return [4 /*yield*/, this.service.getReleaseProjects(options.milestone, options.projectIds, options.omittedProjectIds, options.sourceBranch)];
75
77
  case 1:
76
- projects = _c.sent();
78
+ projects = _e.sent();
77
79
  projectTestingNotes = [];
78
80
  for (_i = 0, projects_1 = projects; _i < projects_1.length; _i++) {
79
81
  project = projects_1[_i];
80
- for (_a = 0, _b = project.mergeRequests; _a < _b.length; _a++) {
81
- mr = _b[_a];
82
+ for (_b = 0, _c = project.mergeRequests; _b < _c.length; _b++) {
83
+ mr = _c[_b];
82
84
  description = '';
83
85
  if (project.id.toString() === utils_1.ProjectIds.MONOREPO_PROJECT_ID) {
84
86
  description = utils_1.Descriptions.getMonorepoDescriptionSection('CustomerChanges', mr);
@@ -102,18 +104,18 @@ var CreateNotesAuditTask = /** @class */ (function () {
102
104
  }
103
105
  }
104
106
  outputPath = path_1.default.resolve("./dist/".concat(options.milestone));
105
- _c.label = 2;
107
+ _e.label = 2;
106
108
  case 2:
107
- _c.trys.push([2, 4, , 6]);
109
+ _e.trys.push([2, 4, , 6]);
108
110
  return [4 /*yield*/, fs_extra_1.default.access(outputPath)];
109
111
  case 3:
110
- _c.sent();
112
+ _e.sent();
111
113
  return [3 /*break*/, 6];
112
114
  case 4:
113
- error_1 = _c.sent();
115
+ error_1 = _e.sent();
114
116
  return [4 /*yield*/, fs_extra_1.default.ensureDir(outputPath)];
115
117
  case 5:
116
- _c.sent();
118
+ _e.sent();
117
119
  return [3 /*break*/, 6];
118
120
  case 6:
119
121
  csv = new Csv_1.CsvFile({
@@ -122,10 +124,30 @@ var CreateNotesAuditTask = /** @class */ (function () {
122
124
  });
123
125
  return [4 /*yield*/, csv.create(projectTestingNotes)];
124
126
  case 7:
125
- _c.sent();
127
+ _e.sent();
126
128
  utils_1.Logger.logMessage('Created file');
127
129
  utils_1.Logger.logInfo("".concat(path_1.default.resolve(outputPath), "\n"));
128
- return [2 /*return*/, true];
130
+ if (!options.slackNotifier) return [3 /*break*/, 14];
131
+ return [4 /*yield*/, csv.read()];
132
+ case 8:
133
+ fileContent = (_e.sent()).toString();
134
+ threadLabel = "".concat(options.milestone, " Notes Audit");
135
+ return [4 /*yield*/, this.slackService.findLatestMessageTs(threadLabel)];
136
+ case 9:
137
+ if (!((_a = _e.sent()) !== null && _a !== void 0)) return [3 /*break*/, 10];
138
+ _d = _a;
139
+ return [3 /*break*/, 12];
140
+ case 10: return [4 /*yield*/, this.slackService.sendMessageToChannel(threadLabel)];
141
+ case 11:
142
+ _d = (_e.sent()).ts;
143
+ _e.label = 12;
144
+ case 12:
145
+ threadTs = _d;
146
+ return [4 /*yield*/, this.slackService.uploadFileToChannel(fileContent, "".concat(options.milestone, " Notes Audit.csv"), threadTs)];
147
+ case 13:
148
+ _e.sent();
149
+ _e.label = 14;
150
+ case 14: return [2 /*return*/, true];
129
151
  }
130
152
  });
131
153
  });
@@ -133,7 +155,9 @@ var CreateNotesAuditTask = /** @class */ (function () {
133
155
  CreateNotesAuditTask = __decorate([
134
156
  (0, inversify_1.injectable)(),
135
157
  __param(0, (0, inversify_1.inject)(types_1.SERVICES.GitLabService)),
136
- __metadata("design:paramtypes", [services_1.GitLabService])
158
+ __param(1, (0, inversify_1.inject)(types_1.SERVICES.SlackService)),
159
+ __metadata("design:paramtypes", [services_1.GitLabService,
160
+ services_1.SlackService])
137
161
  ], CreateNotesAuditTask);
138
162
  return CreateNotesAuditTask;
139
163
  }());
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -20,7 +20,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
20
20
  function verb(n) { return function (v) { return step([n, v]); }; }
21
21
  function step(op) {
22
22
  if (f) throw new TypeError("Generator is already executing.");
23
- while (_) try {
23
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
24
24
  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;
25
25
  if (y = 0, t) op = [op[0] & 2, t.value];
26
26
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -37,7 +37,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  function verb(n) { return function (v) { return step([n, v]); }; }
38
38
  function step(op) {
39
39
  if (f) throw new TypeError("Generator is already executing.");
40
- while (_) try {
40
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
41
  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;
42
42
  if (y = 0, t) op = [op[0] & 2, t.value];
43
43
  switch (op[0]) {
@@ -216,9 +216,9 @@ var ValidateTask = /** @class */ (function () {
216
216
  };
217
217
  ValidateTask.prototype.notReadyMrsLog = function (projects, milestone, slackNotifier, nextMilestone) {
218
218
  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) {
219
+ var allNotReadyMrs, emailListNotReadyMrs, _i, projects_2, project, notReadyMrs, groupedByUser, logMessageSlack, _a, _b, _c, _d, key, name, authorEmail, _e, _f, mr, updated, threadLabel, statusCleanMessage;
220
+ return __generator(this, function (_g) {
221
+ switch (_g.label) {
222
222
  case 0:
223
223
  allNotReadyMrs = [];
224
224
  emailListNotReadyMrs = [];
@@ -230,14 +230,17 @@ var ValidateTask = /** @class */ (function () {
230
230
  }
231
231
  groupedByUser = lodash_1.default.groupBy(allNotReadyMrs, function (mr) { return mr.author; });
232
232
  logMessageSlack = '';
233
- _a = [];
234
- for (_b in groupedByUser)
235
- _a.push(_b);
236
- _c = 0;
237
- _f.label = 1;
233
+ _a = groupedByUser;
234
+ _b = [];
235
+ for (_c in _a)
236
+ _b.push(_c);
237
+ _d = 0;
238
+ _g.label = 1;
238
239
  case 1:
239
- if (!(_c < _a.length)) return [3 /*break*/, 6];
240
- key = _a[_c];
240
+ if (!(_d < _b.length)) return [3 /*break*/, 6];
241
+ _c = _b[_d];
242
+ if (!(_c in _a)) return [3 /*break*/, 5];
243
+ key = _c;
241
244
  name = key;
242
245
  // Pretty sure this can't happen now 😅
243
246
  if (!name || name === 'undefined')
@@ -246,29 +249,29 @@ var ValidateTask = /** @class */ (function () {
246
249
  emailListNotReadyMrs.push(authorEmail);
247
250
  utils_1.Logger.logMessage(name);
248
251
  logMessageSlack += "".concat(name, ":\n");
249
- _d = 0, _e = groupedByUser[key];
250
- _f.label = 2;
252
+ _e = 0, _f = groupedByUser[key];
253
+ _g.label = 2;
251
254
  case 2:
252
- if (!(_d < _e.length)) return [3 /*break*/, 5];
253
- mr = _e[_d];
255
+ if (!(_e < _f.length)) return [3 /*break*/, 5];
256
+ mr = _f[_e];
254
257
  utils_1.Logger.logMessage("- ".concat(mr.url));
255
258
  logMessageSlack += "- ".concat(mr.url, "\n");
256
259
  if (!nextMilestone) return [3 /*break*/, 4];
257
260
  return [4 /*yield*/, this.updateMrMilestone(nextMilestone.id, milestone, mr)];
258
261
  case 3:
259
- updated = _f.sent();
262
+ updated = _g.sent();
260
263
  if (updated) {
261
264
  logMessageSlack += " -> MR has been rolled over from '".concat(milestone, "' to '").concat(nextMilestone.name, "' successfully\n");
262
265
  }
263
266
  else {
264
267
  logMessageSlack += " -> Failed to roll over milestone for this MR. Check logs for error.\n";
265
268
  }
266
- _f.label = 4;
269
+ _g.label = 4;
267
270
  case 4:
268
- _d++;
271
+ _e++;
269
272
  return [3 /*break*/, 2];
270
273
  case 5:
271
- _c++;
274
+ _d++;
272
275
  return [3 /*break*/, 1];
273
276
  case 6:
274
277
  if (!slackNotifier)
@@ -288,7 +291,7 @@ var ValidateTask = /** @class */ (function () {
288
291
  })];
289
292
  case 7:
290
293
  // Send formated status update in slack
291
- _f.sent();
294
+ _g.sent();
292
295
  return [2 /*return*/];
293
296
  }
294
297
  });
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -46,7 +46,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  function verb(n) { return function (v) { return step([n, v]); }; }
47
47
  function step(op) {
48
48
  if (f) throw new TypeError("Generator is already executing.");
49
- while (_) try {
49
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
50
50
  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;
51
51
  if (y = 0, t) op = [op[0] & 2, t.value];
52
52
  switch (op[0]) {
@@ -35,7 +35,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  function verb(n) { return function (v) { return step([n, v]); }; }
36
36
  function step(op) {
37
37
  if (f) throw new TypeError("Generator is already executing.");
38
- while (_) try {
38
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
39
39
  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;
40
40
  if (y = 0, t) op = [op[0] & 2, t.value];
41
41
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -26,7 +26,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
26
26
  function verb(n) { return function (v) { return step([n, v]); }; }
27
27
  function step(op) {
28
28
  if (f) throw new TypeError("Generator is already executing.");
29
- while (_) try {
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
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
31
  if (y = 0, t) op = [op[0] & 2, t.value];
32
32
  switch (op[0]) {
@@ -54,7 +54,7 @@ var inversify_1 = require("inversify");
54
54
  var types_1 = require("../../../types");
55
55
  var services_1 = require("../../../services");
56
56
  var GROUP_IDS = [
57
- '1091',
57
+ '1091', // ClickView / front-end
58
58
  '1092' // ClickView / back-end
59
59
  ];
60
60
  var BaseConfigureProjectsTask = /** @class */ (function () {
@@ -21,6 +21,7 @@ __exportStar(require("./CreateBranchTask"), exports);
21
21
  __exportStar(require("./CreateMergeRequestTask"), exports);
22
22
  __exportStar(require("./CreateReleaseNotesTask"), exports);
23
23
  __exportStar(require("./CreateNotesAuditTask"), exports);
24
+ __exportStar(require("./JiraTicketsStatusTask"), exports);
24
25
  __exportStar(require("./InstallPackagesTask"), exports);
25
26
  __exportStar(require("./StartProjectBuildsTask"), exports);
26
27
  __exportStar(require("./StartMonorepoBuildTask"), exports);
@@ -32,5 +33,6 @@ __exportStar(require("./ValidateMergeRequestTask"), exports);
32
33
  __exportStar(require("./ValidateTask"), exports);
33
34
  __exportStar(require("./VersionTask"), exports);
34
35
  __exportStar(require("./PopulateTrelloBoardTask"), exports);
36
+ __exportStar(require("./CheckReleaseReadyTask"), exports);
35
37
  __exportStar(require("./CreateHotfixTask"), exports);
36
38
  __exportStar(require("./UpdateMergeRequestDescriptionTask"), exports);