@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.
- package/config.json +5 -0
- package/lib/config.json +5 -0
- package/lib/src/api-clients/git-lab/GitLabApiClient.js +1 -1
- package/lib/src/api-clients/index.js +1 -0
- package/lib/src/api-clients/slack/SlackApiClient.js +27 -25
- package/lib/src/api-clients/team-city/TeamCityApiClient.js +1 -1
- package/lib/src/api-clients/trello/TrelloApiClient.js +1 -1
- package/lib/src/commands/BumpPackagesCommand.js +1 -1
- package/lib/src/commands/CheckReleaseReadyCommand.js +1 -1
- package/lib/src/commands/ConfigureProjectsCommand.js +1 -1
- package/lib/src/commands/CreateBranchCommand.js +1 -1
- package/lib/src/commands/CreateHotfixCommand.js +1 -1
- package/lib/src/commands/CreateMergeRequestCommand.js +1 -1
- package/lib/src/commands/CreateNotesAuditCommand.js +1 -1
- package/lib/src/commands/CreateReleaseNotesCommand.js +1 -1
- package/lib/src/commands/CreateTrelloCardsCommand.js +1 -1
- package/lib/src/commands/InstallPackagesCommand.js +1 -1
- package/lib/src/commands/JiraTicketsStatusCommand.js +1 -41
- package/lib/src/commands/ListProjectsCommand.js +1 -1
- package/lib/src/commands/ReleaseCommand.js +1 -1
- package/lib/src/commands/StartProjectBuildsCommand.js +1 -1
- package/lib/src/commands/StatusCommand.js +1 -1
- package/lib/src/commands/TagMasterCommand.js +1 -1
- package/lib/src/commands/ToolingReleaseCommand.js +1 -1
- package/lib/src/commands/UpdateDescriptionCommand.js +1 -1
- package/lib/src/commands/ValidateMergeRequestCommand.js +1 -1
- package/lib/src/commands/VersionCommand.js +1 -1
- package/lib/src/commands/index.js +2 -0
- package/lib/src/constants/CommandTypeMapping.js +2 -0
- package/lib/src/inversify.config.js +7 -0
- package/lib/src/services/GitLabService.js +9 -4
- package/lib/src/services/SlackService.js +3 -7
- package/lib/src/services/TrelloService.js +1 -1
- package/lib/src/services/index.js +1 -0
- package/lib/src/startup/AddMilestoneCommand.js +1 -1
- package/lib/src/startup/GetAction.js +1 -1
- package/lib/src/startup/SetupCommands.js +3 -1
- package/lib/src/tasks/BumpPackagesTask.js +1 -1
- package/lib/src/tasks/BumpVersionTxtTask.js +1 -1
- package/lib/src/tasks/ChangeMilestoneTask.js +1 -1
- package/lib/src/tasks/CheckReleaseReadyTask.js +29 -17
- package/lib/src/tasks/CreateBranchTask.js +1 -1
- package/lib/src/tasks/CreateHotfixTask.js +1 -1
- package/lib/src/tasks/CreateMergeRequestTask.js +1 -1
- package/lib/src/tasks/CreateNotesAuditTask.js +40 -16
- package/lib/src/tasks/CreateReleaseNotesTask.js +1 -1
- package/lib/src/tasks/InstallPackagesTask.js +1 -1
- package/lib/src/tasks/ListProjectsTask.js +1 -1
- package/lib/src/tasks/PopulateTrelloBoardTask.js +1 -1
- package/lib/src/tasks/StartMonorepoBuildTask.js +1 -1
- package/lib/src/tasks/StartProjectBuildsTask.js +1 -1
- package/lib/src/tasks/TagMasterTask.js +1 -1
- package/lib/src/tasks/UpdateMergeRequestDescriptionTask.js +1 -1
- package/lib/src/tasks/ValidateCommitsTask.js +1 -1
- package/lib/src/tasks/ValidateDescriptionsTask.js +1 -1
- package/lib/src/tasks/ValidateMergeRequestTask.js +1 -1
- package/lib/src/tasks/ValidateTask.js +23 -20
- package/lib/src/tasks/VersionTask.js +1 -1
- package/lib/src/tasks/configure-projects/AddApprovalRulesTask.js +1 -1
- package/lib/src/tasks/configure-projects/CreateToolingBranchTask.js +1 -1
- package/lib/src/tasks/configure-projects/EnsureApprovalRulesTask.js +1 -1
- package/lib/src/tasks/configure-projects/primitives/BaseConfigureProjectsTask.js +2 -2
- package/lib/src/tasks/index.js +2 -0
- package/lib/src/types.js +7 -0
- package/lib/src/utils/Descriptions.js +38 -10
- 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 (
|
|
67
|
-
switch (
|
|
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 =
|
|
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
|
-
|
|
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 = (
|
|
85
|
+
branchName = (_c.sent()).branchName;
|
|
85
86
|
return [4 /*yield*/, this.service.getMergeRequest(project.id, branchName)];
|
|
86
87
|
case 4:
|
|
87
|
-
mergeRequest =
|
|
88
|
-
if (!mergeRequest)
|
|
89
|
-
|
|
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
|
-
|
|
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)
|
|
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
|
|
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
|
-
|
|
130
|
-
|
|
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
|
-
|
|
143
|
-
|
|
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,
|
|
70
|
-
return __generator(this, function (
|
|
71
|
-
switch (
|
|
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 =
|
|
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 (
|
|
81
|
-
mr = _b
|
|
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
|
-
|
|
107
|
+
_e.label = 2;
|
|
106
108
|
case 2:
|
|
107
|
-
|
|
109
|
+
_e.trys.push([2, 4, , 6]);
|
|
108
110
|
return [4 /*yield*/, fs_extra_1.default.access(outputPath)];
|
|
109
111
|
case 3:
|
|
110
|
-
|
|
112
|
+
_e.sent();
|
|
111
113
|
return [3 /*break*/, 6];
|
|
112
114
|
case 4:
|
|
113
|
-
error_1 =
|
|
115
|
+
error_1 = _e.sent();
|
|
114
116
|
return [4 /*yield*/, fs_extra_1.default.ensureDir(outputPath)];
|
|
115
117
|
case 5:
|
|
116
|
-
|
|
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
|
-
|
|
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 [
|
|
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
|
-
|
|
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,
|
|
220
|
-
return __generator(this, function (
|
|
221
|
-
switch (
|
|
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
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
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 (!(
|
|
240
|
-
|
|
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
|
-
|
|
250
|
-
|
|
252
|
+
_e = 0, _f = groupedByUser[key];
|
|
253
|
+
_g.label = 2;
|
|
251
254
|
case 2:
|
|
252
|
-
if (!(
|
|
253
|
-
mr = _e
|
|
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 =
|
|
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
|
-
|
|
269
|
+
_g.label = 4;
|
|
267
270
|
case 4:
|
|
268
|
-
|
|
271
|
+
_e++;
|
|
269
272
|
return [3 /*break*/, 2];
|
|
270
273
|
case 5:
|
|
271
|
-
|
|
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
|
-
|
|
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 () {
|
package/lib/src/tasks/index.js
CHANGED
|
@@ -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);
|