@clickview/ship-it 0.0.48 → 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/.claude/settings.local.json +10 -0
- package/config.json +5 -0
- package/dist/W2/W2 Notes Audit.csv +57 -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/jira/JiraApiClient.js +105 -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 +33 -0
- package/lib/src/commands/ListProjectsCommand.js +1 -1
- package/lib/src/commands/ReleaseCommand.js +11 -9
- 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/constants/SlackUserEmailList.js +8 -0
- package/lib/src/inversify.config.js +7 -0
- package/lib/src/services/GitLabService.js +9 -4
- package/lib/src/services/JiraService.js +34 -0
- 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 +72 -123
- 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/JiraTicketsStatusTask.js +180 -0
- 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
|
@@ -21,6 +21,7 @@ __exportStar(require("./CreateMergeRequestCommand"), exports);
|
|
|
21
21
|
__exportStar(require("./ListProjectsCommand"), exports);
|
|
22
22
|
__exportStar(require("./CreateReleaseNotesCommand"), exports);
|
|
23
23
|
__exportStar(require("./CreateNotesAuditCommand"), exports);
|
|
24
|
+
__exportStar(require("./JiraTicketsStatusCommand"), exports);
|
|
24
25
|
__exportStar(require("./InstallPackagesCommand"), exports);
|
|
25
26
|
__exportStar(require("./ReleaseCommand"), exports);
|
|
26
27
|
__exportStar(require("./ToolingReleaseCommand"), exports);
|
|
@@ -30,5 +31,6 @@ __exportStar(require("./TagMasterCommand"), exports);
|
|
|
30
31
|
__exportStar(require("./ValidateMergeRequestCommand"), exports);
|
|
31
32
|
__exportStar(require("./VersionCommand"), exports);
|
|
32
33
|
__exportStar(require("./CreateTrelloCardsCommand"), exports);
|
|
34
|
+
__exportStar(require("./CheckReleaseReadyCommand"), exports);
|
|
33
35
|
__exportStar(require("./CreateHotfixCommand"), exports);
|
|
34
36
|
__exportStar(require("./UpdateDescriptionCommand"), exports);
|
|
@@ -11,6 +11,7 @@ exports.CommandTypeMapping = {
|
|
|
11
11
|
'create-mrs': types_1.COMMANDS.CreateMergeRequestCommand,
|
|
12
12
|
'create-notes': types_1.COMMANDS.CreateReleaseNotesCommand,
|
|
13
13
|
'create-notes-audit': types_1.COMMANDS.CreateNotesAuditCommand,
|
|
14
|
+
'testing-status': types_1.COMMANDS.JiraTicketsStatusCommand,
|
|
14
15
|
'install-packages': types_1.COMMANDS.InstallPackagesCommand,
|
|
15
16
|
'bump-packages': types_1.COMMANDS.BumpPackagesCommand,
|
|
16
17
|
'validate-mr': types_1.COMMANDS.ValidateMergeRequestCommand,
|
|
@@ -19,6 +20,7 @@ exports.CommandTypeMapping = {
|
|
|
19
20
|
'list-projects': types_1.COMMANDS.ListProjectsCommand,
|
|
20
21
|
'create-trello-cards': types_1.COMMANDS.CreateTrelloCardsCommand,
|
|
21
22
|
'configure-projects': types_1.COMMANDS.ConfigureProjectsCommand,
|
|
23
|
+
'check-release-ready': types_1.COMMANDS.CheckReleaseReadyCommand,
|
|
22
24
|
'create-hotfix': types_1.COMMANDS.CreateHotfixCommand,
|
|
23
25
|
'update-description': types_1.COMMANDS.UpdateDescriptionCommand
|
|
24
26
|
};
|
|
@@ -9,5 +9,13 @@ exports.SLACK_USER_LIST = [
|
|
|
9
9
|
{
|
|
10
10
|
author: 'Kevin Wellalagodage',
|
|
11
11
|
email: 'kevin.well@clickview.com.au'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
author: 'Vincent Sit',
|
|
15
|
+
email: 'vincent.sit@clickvieweducation.com'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
author: 'Alexander Deeb',
|
|
19
|
+
email: 'alexander.deeb@clickvieweducation.com'
|
|
12
20
|
}
|
|
13
21
|
];
|
|
@@ -15,6 +15,7 @@ function createContainer(config) {
|
|
|
15
15
|
* Misc
|
|
16
16
|
*/
|
|
17
17
|
container.bind(types_1.MISC.GitLabConfig).toConstantValue(config.gitLab);
|
|
18
|
+
container.bind(types_1.MISC.JiraConfig).toConstantValue(config.jira);
|
|
18
19
|
container.bind(types_1.MISC.TeamCityConfig).toConstantValue(config.teamCity);
|
|
19
20
|
container.bind(types_1.MISC.SlackConfig).toConstantValue(config.slack);
|
|
20
21
|
container.bind(types_1.MISC.TrelloConfig).toConstantValue(config.trello);
|
|
@@ -22,6 +23,7 @@ function createContainer(config) {
|
|
|
22
23
|
* Clients
|
|
23
24
|
*/
|
|
24
25
|
container.bind(types_1.API_CLIENTS.GitLabApiClient).to(api_clients_1.GitLabApiClient);
|
|
26
|
+
container.bind(types_1.API_CLIENTS.JiraApiClient).to(api_clients_1.JiraApiClient);
|
|
25
27
|
container.bind(types_1.API_CLIENTS.TeamCityApiClient).to(api_clients_1.TeamCityApiClient);
|
|
26
28
|
container.bind(types_1.API_CLIENTS.SlackApiClient).to(api_clients_1.SlackApiClient);
|
|
27
29
|
container.bind(types_1.API_CLIENTS.TrelloApiClient).to(api_clients_1.TrelloApiClient);
|
|
@@ -29,6 +31,7 @@ function createContainer(config) {
|
|
|
29
31
|
* Services
|
|
30
32
|
*/
|
|
31
33
|
container.bind(types_1.SERVICES.GitLabService).to(services_1.GitLabService).inSingletonScope();
|
|
34
|
+
container.bind(types_1.SERVICES.JiraService).to(services_1.JiraService).inSingletonScope();
|
|
32
35
|
container.bind(types_1.SERVICES.TeamCityService).to(services_1.TeamCityService).inSingletonScope();
|
|
33
36
|
container.bind(types_1.SERVICES.SlackService).to(services_1.SlackService).inSingletonScope();
|
|
34
37
|
container.bind(types_1.SERVICES.TrelloService).to(services_1.TrelloService).inSingletonScope();
|
|
@@ -44,6 +47,7 @@ function createContainer(config) {
|
|
|
44
47
|
container.bind(types_1.TASKS.ValidateDescriptionsTask).to(tasks_1.ValidateDescriptionsTask);
|
|
45
48
|
container.bind(types_1.TASKS.CreateReleaseNotesTask).to(tasks_1.CreateReleaseNotesTask);
|
|
46
49
|
container.bind(types_1.TASKS.CreateNotesAuditTask).to(tasks_1.CreateNotesAuditTask);
|
|
50
|
+
container.bind(types_1.TASKS.JiraTicketsStatusTask).to(tasks_1.JiraTicketsStatusTask);
|
|
47
51
|
container.bind(types_1.TASKS.InstallPackagesTask).to(tasks_1.InstallPackagesTask);
|
|
48
52
|
container.bind(types_1.TASKS.BumpPackagesTask).to(tasks_1.BumpPackagesTask);
|
|
49
53
|
container.bind(types_1.TASKS.ValidateMergeRequestTask).to(tasks_1.ValidateMergeRequestTask);
|
|
@@ -56,6 +60,7 @@ function createContainer(config) {
|
|
|
56
60
|
container.bind(types_1.TASKS.AddApprovalRulesTask).to(tasks_1.AddApprovalRulesTask);
|
|
57
61
|
container.bind(types_1.TASKS.EnsureApprovalRulesTask).to(EnsureApprovalRulesTask_1.EnsureApprovalRulesTask);
|
|
58
62
|
container.bind(types_1.TASKS.CreateToolingBranchTask).to(tasks_1.CreateToolingBranchTask);
|
|
63
|
+
container.bind(types_1.TASKS.CheckReleaseReadyTask).to(tasks_1.CheckReleaseReadyTask);
|
|
59
64
|
container.bind(types_1.TASKS.CreateHotfixTask).to(tasks_1.CreateHotfixTask);
|
|
60
65
|
container.bind(types_1.TASKS.ChangeMilestoneTask).to(ChangeMilestoneTask_1.ChangeMilestoneTask);
|
|
61
66
|
container
|
|
@@ -72,6 +77,7 @@ function createContainer(config) {
|
|
|
72
77
|
container.bind(types_1.COMMANDS.ToolingReleaseCommand).to(commands_1.ToolingReleaseCommand);
|
|
73
78
|
container.bind(types_1.COMMANDS.CreateReleaseNotesCommand).to(commands_1.CreateReleaseNotesCommand);
|
|
74
79
|
container.bind(types_1.COMMANDS.CreateNotesAuditCommand).to(commands_1.CreateNotesAuditCommand);
|
|
80
|
+
container.bind(types_1.COMMANDS.JiraTicketsStatusCommand).to(commands_1.JiraTicketsStatusCommand);
|
|
75
81
|
container.bind(types_1.COMMANDS.InstallPackagesCommand).to(commands_1.InstallPackagesCommand);
|
|
76
82
|
container.bind(types_1.COMMANDS.BumpPackagesCommand).to(commands_1.BumpPackagesCommand);
|
|
77
83
|
container.bind(types_1.COMMANDS.ValidateMergeRequestCommand).to(commands_1.ValidateMergeRequestCommand);
|
|
@@ -81,6 +87,7 @@ function createContainer(config) {
|
|
|
81
87
|
container.bind(types_1.COMMANDS.StartProjectBuildsCommand)
|
|
82
88
|
.to(commands_1.StartProjectBuildsCommand);
|
|
83
89
|
container.bind(types_1.COMMANDS.ConfigureProjectsCommand).to(commands_1.ConfigureProjectsCommand);
|
|
90
|
+
container.bind(types_1.COMMANDS.CheckReleaseReadyCommand).to(commands_1.CheckReleaseReadyCommand);
|
|
84
91
|
container.bind(types_1.COMMANDS.CreateHotfixCommand).to(commands_1.CreateHotfixCommand);
|
|
85
92
|
container.bind(types_1.COMMANDS.UpdateDescriptionCommand).to(commands_1.UpdateDescriptionCommand);
|
|
86
93
|
return container;
|
|
@@ -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]) {
|
|
@@ -88,7 +88,7 @@ var GitLabService = /** @class */ (function () {
|
|
|
88
88
|
if (omittedProjectIds === void 0) { omittedProjectIds = []; }
|
|
89
89
|
var _b = _a === void 0 ? {} : _a, _c = _b.invalidateCache, invalidateCache = _c === void 0 ? false : _c;
|
|
90
90
|
return __awaiter(this, void 0, void 0, function () {
|
|
91
|
-
var allMergeRequests, mergeRequests, releaseProjectIds, projects, mappedProjects, _i, mappedProjects_1, mappedProject, extraProjects;
|
|
91
|
+
var allMergeRequests, mergeRequests, releaseIgnoreLabel, releasableMergeRequests, releaseProjectIds, projects, mappedProjects, _i, mappedProjects_1, mappedProject, extraProjects;
|
|
92
92
|
return __generator(this, function (_d) {
|
|
93
93
|
switch (_d.label) {
|
|
94
94
|
case 0:
|
|
@@ -101,13 +101,18 @@ var GitLabService = /** @class */ (function () {
|
|
|
101
101
|
mergeRequests = allMergeRequests.filter(function (mr) { return mr.targetBranch !== 'master'; });
|
|
102
102
|
if (!(mergeRequests === null || mergeRequests === void 0 ? void 0 : mergeRequests.length))
|
|
103
103
|
throw new errors_1.ShipItError('Could not find any merge requests for the specified options');
|
|
104
|
-
|
|
104
|
+
releaseIgnoreLabel = 'shipit::release_ignore';
|
|
105
|
+
releasableMergeRequests = mergeRequests.filter(function (mr) {
|
|
106
|
+
var _a;
|
|
107
|
+
return !((_a = mr.labels) !== null && _a !== void 0 ? _a : []).includes(releaseIgnoreLabel);
|
|
108
|
+
});
|
|
109
|
+
releaseProjectIds = lodash_1.default.uniqBy(releasableMergeRequests, function (m) { return m.projectId; }).map(function (m) { return m.projectId; });
|
|
105
110
|
return [4 /*yield*/, this.apiClient.getProjectsByIds(releaseProjectIds)];
|
|
106
111
|
case 2:
|
|
107
112
|
projects = _d.sent();
|
|
108
113
|
if (!(projects === null || projects === void 0 ? void 0 : projects.length) || projects.length !== releaseProjectIds.length)
|
|
109
114
|
throw new errors_1.ShipItError('Could not find all projects for the found merge requests');
|
|
110
|
-
mappedProjects = projects.map(function (p) { return (__assign(__assign({}, p), { mergeRequests:
|
|
115
|
+
mappedProjects = projects.map(function (p) { return (__assign(__assign({}, p), { mergeRequests: releasableMergeRequests.filter(function (mr) { return mr.projectId === p.id; }) })); });
|
|
111
116
|
_i = 0, mappedProjects_1 = mappedProjects;
|
|
112
117
|
_d.label = 3;
|
|
113
118
|
case 3:
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.JiraService = void 0;
|
|
16
|
+
require("reflect-metadata");
|
|
17
|
+
var inversify_1 = require("inversify");
|
|
18
|
+
var types_1 = require("../types");
|
|
19
|
+
var api_clients_1 = require("../api-clients");
|
|
20
|
+
var JiraService = /** @class */ (function () {
|
|
21
|
+
function JiraService(apiClient) {
|
|
22
|
+
this.apiClient = apiClient;
|
|
23
|
+
}
|
|
24
|
+
JiraService.prototype.searchIssues = function (jql) {
|
|
25
|
+
return this.apiClient.searchIssues(jql);
|
|
26
|
+
};
|
|
27
|
+
JiraService = __decorate([
|
|
28
|
+
(0, inversify_1.injectable)(),
|
|
29
|
+
__param(0, (0, inversify_1.inject)(types_1.API_CLIENTS.JiraApiClient)),
|
|
30
|
+
__metadata("design:paramtypes", [api_clients_1.JiraApiClient])
|
|
31
|
+
], JiraService);
|
|
32
|
+
return JiraService;
|
|
33
|
+
}());
|
|
34
|
+
exports.JiraService = JiraService;
|
|
@@ -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]) {
|
|
@@ -89,7 +89,7 @@ var SlackService = /** @class */ (function () {
|
|
|
89
89
|
SlackService.prototype.sendSlackStatusMessage = function (options) {
|
|
90
90
|
var _a, _b;
|
|
91
91
|
return __awaiter(this, void 0, void 0, function () {
|
|
92
|
-
var threadTs, _c,
|
|
92
|
+
var threadTs, _c, authorList, userList, mentionUserString;
|
|
93
93
|
return __generator(this, function (_d) {
|
|
94
94
|
switch (_d.label) {
|
|
95
95
|
case 0: return [4 /*yield*/, this.apiClient.findLatestMessageTs(options.threadLabel)];
|
|
@@ -105,8 +105,7 @@ var SlackService = /** @class */ (function () {
|
|
|
105
105
|
threadTs = _c;
|
|
106
106
|
if (!options.statusMessage)
|
|
107
107
|
options.statusMessage = options.statusCleanMessage;
|
|
108
|
-
|
|
109
|
-
return [4 /*yield*/, this.apiClient.replyInThread(formatedMessage, threadTs)];
|
|
108
|
+
return [4 /*yield*/, this.apiClient.replyInThread(options.statusMessage, threadTs, options.sendAsFile)];
|
|
110
109
|
case 5:
|
|
111
110
|
_d.sent();
|
|
112
111
|
if (!((_b = options.emailList) === null || _b === void 0 ? void 0 : _b.length))
|
|
@@ -129,9 +128,6 @@ var SlackService = /** @class */ (function () {
|
|
|
129
128
|
SlackService.prototype.formatMentionUsers = function (usernames) {
|
|
130
129
|
return usernames.map(function (username) { return "<@".concat(username, ">"); }).join(' ');
|
|
131
130
|
};
|
|
132
|
-
SlackService.prototype.createTextFileMessage = function (fileContent) {
|
|
133
|
-
return "```\n".concat(fileContent, "\n```");
|
|
134
|
-
};
|
|
135
131
|
SlackService = __decorate([
|
|
136
132
|
(0, inversify_1.injectable)(),
|
|
137
133
|
__param(0, (0, inversify_1.inject)(types_1.API_CLIENTS.SlackApiClient)),
|
|
@@ -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]) {
|
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./GitLabService"), exports);
|
|
18
|
+
__exportStar(require("./JiraService"), exports);
|
|
18
19
|
__exportStar(require("./TeamCityService"), exports);
|
|
19
20
|
__exportStar(require("./TrelloService"), exports);
|
|
20
21
|
__exportStar(require("./SlackService"), exports);
|
|
@@ -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]) {
|
|
@@ -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]) {
|
|
@@ -56,138 +56,93 @@ var types_1 = require("../types");
|
|
|
56
56
|
var services_1 = require("../services");
|
|
57
57
|
var utils_1 = require("../utils");
|
|
58
58
|
var CheckReleaseReadyTask = /** @class */ (function () {
|
|
59
|
-
function CheckReleaseReadyTask(service, slackService
|
|
59
|
+
function CheckReleaseReadyTask(service, slackService) {
|
|
60
60
|
this.service = service;
|
|
61
61
|
this.slackService = slackService;
|
|
62
|
-
this.trelloService = trelloService;
|
|
63
62
|
}
|
|
64
63
|
CheckReleaseReadyTask.prototype.run = function (options) {
|
|
65
|
-
var _a;
|
|
66
64
|
return __awaiter(this, void 0, void 0, function () {
|
|
67
|
-
var projects, deployDependenciesTasks, beforeReleaseTasks, afterReleaseTasks, sqlSections, _i, projects_1, project, branchName, mergeRequest,
|
|
68
|
-
return __generator(this, function (
|
|
69
|
-
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) {
|
|
70
68
|
case 0:
|
|
71
69
|
Logger_1.Logger.logTask('Checking status of the current release...');
|
|
72
70
|
return [4 /*yield*/, this.service.getReleaseProjects(options.milestone, options.projectIds, options.omittedProjectIds, options.sourceBranch)];
|
|
73
71
|
case 1:
|
|
74
|
-
projects =
|
|
72
|
+
projects = _c.sent();
|
|
75
73
|
deployDependenciesTasks = [];
|
|
76
74
|
beforeReleaseTasks = [];
|
|
77
75
|
afterReleaseTasks = [];
|
|
78
76
|
sqlSections = [];
|
|
77
|
+
failedProjects = [];
|
|
79
78
|
_i = 0, projects_1 = projects;
|
|
80
|
-
|
|
79
|
+
_c.label = 2;
|
|
81
80
|
case 2:
|
|
82
|
-
if (!(_i < projects_1.length)) return [3 /*break*/,
|
|
81
|
+
if (!(_i < projects_1.length)) return [3 /*break*/, 6];
|
|
83
82
|
project = projects_1[_i];
|
|
84
83
|
return [4 /*yield*/, this.service.getNextBranchInfo(project.id, options.version)];
|
|
85
84
|
case 3:
|
|
86
|
-
branchName = (
|
|
85
|
+
branchName = (_c.sent()).branchName;
|
|
87
86
|
return [4 /*yield*/, this.service.getMergeRequest(project.id, branchName)];
|
|
88
87
|
case 4:
|
|
89
|
-
mergeRequest =
|
|
90
|
-
if (!mergeRequest)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
case 5:
|
|
94
|
-
owner = (_a = _f.sent()) !== null && _a !== void 0 ? _a : 'Unknown';
|
|
95
|
-
deployDependencies = utils_1.Descriptions.getDescriptionSection('Dependencies', mergeRequest);
|
|
96
|
-
beforeTasks = utils_1.Descriptions.getDescriptionSubSection('BeforeRelease', 'Tasks', mergeRequest);
|
|
97
|
-
afterTasks = utils_1.Descriptions.getDescriptionSubSection('AfterRelease', 'Tasks', mergeRequest);
|
|
98
|
-
beforeSQL = utils_1.Descriptions.getDescriptionSubSection('BeforeRelease', 'SQL', mergeRequest);
|
|
99
|
-
afterSQL = utils_1.Descriptions.getDescriptionSubSection('AfterRelease', 'SQL', mergeRequest);
|
|
100
|
-
if (deployDependencies) {
|
|
101
|
-
deployDependenciesTasks.push({
|
|
102
|
-
project: project.title,
|
|
103
|
-
mr: mergeRequest.title,
|
|
104
|
-
content: deployDependencies,
|
|
105
|
-
owner: owner
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
if (beforeTasks) {
|
|
109
|
-
beforeReleaseTasks.push({
|
|
110
|
-
project: project.title,
|
|
111
|
-
mr: mergeRequest.title,
|
|
112
|
-
content: beforeTasks,
|
|
113
|
-
owner: owner
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
if (afterTasks) {
|
|
117
|
-
afterReleaseTasks.push({
|
|
118
|
-
project: project.title,
|
|
119
|
-
mr: mergeRequest.title,
|
|
120
|
-
content: afterTasks,
|
|
121
|
-
owner: owner
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
if (beforeSQL) {
|
|
125
|
-
sqlSections.push({
|
|
126
|
-
project: project.title,
|
|
127
|
-
mr: mergeRequest.title,
|
|
128
|
-
content: beforeSQL,
|
|
129
|
-
phase: 'BeforeRelease',
|
|
130
|
-
owner: owner
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
if (afterSQL) {
|
|
134
|
-
sqlSections.push({
|
|
135
|
-
project: project.title,
|
|
136
|
-
mr: mergeRequest.title,
|
|
137
|
-
content: afterSQL,
|
|
138
|
-
phase: 'AfterRelease',
|
|
139
|
-
owner: owner
|
|
140
|
-
});
|
|
88
|
+
mergeRequest = _c.sent();
|
|
89
|
+
if (!mergeRequest) {
|
|
90
|
+
failedProjects.push([project.title, branchName]);
|
|
91
|
+
return [3 /*break*/, 5];
|
|
141
92
|
}
|
|
142
|
-
|
|
143
|
-
|
|
93
|
+
deployDependencies = utils_1.Descriptions.getDescriptionSection('Dependencies', mergeRequest);
|
|
94
|
+
beforeTasks = utils_1.Descriptions.getDescriptionSection('BeforeRelease', mergeRequest, 'Tasks');
|
|
95
|
+
afterTasks = utils_1.Descriptions.getDescriptionSection('AfterRelease', mergeRequest, 'Tasks');
|
|
96
|
+
beforeSQL = utils_1.Descriptions.getDescriptionSection('BeforeRelease', mergeRequest, 'SQL');
|
|
97
|
+
afterSQL = utils_1.Descriptions.getDescriptionSection('AfterRelease', mergeRequest, 'SQL');
|
|
98
|
+
if (deployDependencies)
|
|
99
|
+
deployDependenciesTasks.push({ project: project.title, mr: mergeRequest.title, content: deployDependencies });
|
|
100
|
+
if (beforeTasks)
|
|
101
|
+
beforeReleaseTasks.push({ project: project.title, mr: mergeRequest.title, content: beforeTasks });
|
|
102
|
+
if (afterTasks)
|
|
103
|
+
afterReleaseTasks.push({ project: project.title, mr: mergeRequest.title, content: afterTasks });
|
|
104
|
+
if (beforeSQL)
|
|
105
|
+
sqlSections.push({ project: project.title, mr: mergeRequest.title, content: beforeSQL, phase: 'BeforeRelease' });
|
|
106
|
+
if (afterSQL)
|
|
107
|
+
sqlSections.push({ project: project.title, mr: mergeRequest.title, content: afterSQL, phase: 'AfterRelease' });
|
|
108
|
+
_c.label = 5;
|
|
109
|
+
case 5:
|
|
144
110
|
_i++;
|
|
145
111
|
return [3 /*break*/, 2];
|
|
146
|
-
case
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
Logger_1.Logger.logInfo('====== ALL BEFORE RELEASE TASKS ======');
|
|
155
|
-
for (_c = 0, beforeReleaseTasks_1 = beforeReleaseTasks; _c < beforeReleaseTasks_1.length; _c++) {
|
|
156
|
-
task = beforeReleaseTasks_1[_c];
|
|
157
|
-
Logger_1.Logger.logMessage("\uD83D\uDD39 ".concat(task.project, " | ").concat(task.mr, " | \uD83D\uDC64 ").concat(task.owner));
|
|
158
|
-
Logger_1.Logger.logMessage(task.content);
|
|
159
|
-
}
|
|
160
|
-
Logger_1.Logger.logInfo('====== ALL AFTER RELEASE TASKS ======');
|
|
161
|
-
for (_d = 0, afterReleaseTasks_1 = afterReleaseTasks; _d < afterReleaseTasks_1.length; _d++) {
|
|
162
|
-
task = afterReleaseTasks_1[_d];
|
|
163
|
-
Logger_1.Logger.logMessage("\uD83D\uDD39 ".concat(task.project, " | ").concat(task.mr, " | \uD83D\uDC64 ").concat(task.owner));
|
|
164
|
-
Logger_1.Logger.logMessage(task.content);
|
|
165
|
-
}
|
|
166
|
-
Logger_1.Logger.logInfo('====== ALL SQL CHANGES (with context) ======');
|
|
167
|
-
for (_e = 0, sqlSections_1 = sqlSections; _e < sqlSections_1.length; _e++) {
|
|
168
|
-
sql = sqlSections_1[_e];
|
|
169
|
-
Logger_1.Logger.logMessage("\uD83E\uDDFE ".concat(sql.project, " | ").concat(sql.mr, " (").concat(sql.phase === 'BeforeRelease' ? 'Before Release' : 'After Release', ") | \uD83D\uDC64 ").concat(sql.owner));
|
|
170
|
-
Logger_1.Logger.logMessage(sql.content);
|
|
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];
|
|
171
120
|
}
|
|
172
|
-
|
|
121
|
+
this.logSection('====== ALL DEPLOY DEPENDENCIES ======', deployDependenciesTasks);
|
|
122
|
+
this.logSection('====== ALL BEFORE RELEASE TASKS ======', beforeReleaseTasks);
|
|
123
|
+
this.logSection('====== ALL AFTER RELEASE TASKS ======', afterReleaseTasks);
|
|
124
|
+
this.logSection('====== ALL SQL CHANGES (with context) ======', sqlSections, function (item) { return item.phase === 'BeforeRelease' ? 'Before Release' : 'After Release'; });
|
|
125
|
+
if (!options.slackNotifier)
|
|
126
|
+
return [2 /*return*/, true];
|
|
173
127
|
milestoneLabel = "".concat(options.milestone, " Release");
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
if (!taskSummary) return [3 /*break*/,
|
|
128
|
+
taskSummary = [
|
|
129
|
+
this.formatSection('Deploy Dependencies', deployDependenciesTasks),
|
|
130
|
+
this.formatSection('Before Release Tasks', beforeReleaseTasks),
|
|
131
|
+
this.formatSection('After Release Tasks', afterReleaseTasks)
|
|
132
|
+
].filter(Boolean).join('\n');
|
|
133
|
+
if (!taskSummary) return [3 /*break*/, 8];
|
|
180
134
|
return [4 /*yield*/, this.slackService.sendSlackStatusMessage({
|
|
181
135
|
emailList: [],
|
|
182
|
-
threadLabel: "".concat(milestoneLabel, " Tasks
|
|
136
|
+
threadLabel: "".concat(milestoneLabel, " Tasks and Dependencies"),
|
|
183
137
|
statusMessage: taskSummary,
|
|
184
138
|
statusCleanMessage: 'No Before/After Release Tasks found!'
|
|
185
139
|
})];
|
|
140
|
+
case 7:
|
|
141
|
+
_c.sent();
|
|
142
|
+
_c.label = 8;
|
|
186
143
|
case 8:
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
case 9:
|
|
190
|
-
if (!sqlMessage) return [3 /*break*/, 11];
|
|
144
|
+
sqlMessage = this.formatSection('SQL Changes', sqlSections, function (item) { return item.phase === 'BeforeRelease' ? 'Before Release' : 'After Release'; });
|
|
145
|
+
if (!sqlMessage) return [3 /*break*/, 10];
|
|
191
146
|
return [4 /*yield*/, this.slackService.sendSlackStatusMessage({
|
|
192
147
|
emailList: [],
|
|
193
148
|
threadLabel: "".concat(milestoneLabel, " SQL"),
|
|
@@ -195,35 +150,31 @@ var CheckReleaseReadyTask = /** @class */ (function () {
|
|
|
195
150
|
statusCleanMessage: 'No SQL changes found in release!',
|
|
196
151
|
sendAsFile: true
|
|
197
152
|
})];
|
|
198
|
-
case
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
case
|
|
153
|
+
case 9:
|
|
154
|
+
_c.sent();
|
|
155
|
+
_c.label = 10;
|
|
156
|
+
case 10: return [2 /*return*/, true];
|
|
202
157
|
}
|
|
203
158
|
});
|
|
204
159
|
});
|
|
205
160
|
};
|
|
206
|
-
CheckReleaseReadyTask.prototype.
|
|
207
|
-
|
|
208
|
-
return 'No tasks found!';
|
|
209
|
-
var output = "## ".concat(title, "\n\n");
|
|
161
|
+
CheckReleaseReadyTask.prototype.logSection = function (header, items, getPhaseLabel) {
|
|
162
|
+
Logger_1.Logger.logInfo(header);
|
|
210
163
|
for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
|
|
211
164
|
var item = items_1[_i];
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
165
|
+
var phase = getPhaseLabel ? " (".concat(getPhaseLabel(item), ")") : '';
|
|
166
|
+
Logger_1.Logger.logMessage("\uD83D\uDD39 ".concat(item.project, " | ").concat(item.mr).concat(phase));
|
|
167
|
+
Logger_1.Logger.logMessage(item.content);
|
|
215
168
|
}
|
|
216
|
-
return output;
|
|
217
169
|
};
|
|
218
|
-
CheckReleaseReadyTask.prototype.
|
|
170
|
+
CheckReleaseReadyTask.prototype.formatSection = function (title, items, getPhaseLabel) {
|
|
219
171
|
if (items.length === 0)
|
|
220
|
-
return '
|
|
221
|
-
var output = "##
|
|
172
|
+
return '';
|
|
173
|
+
var output = "## ".concat(title, "\n\n");
|
|
222
174
|
for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {
|
|
223
175
|
var item = items_2[_i];
|
|
224
|
-
var
|
|
225
|
-
output += "### ".concat(item.project, " \u2013 ").concat(item.mr
|
|
226
|
-
output += "**Owner:** ".concat(item.owner, "\n\n");
|
|
176
|
+
var phase = getPhaseLabel ? " (".concat(getPhaseLabel(item), ")") : '';
|
|
177
|
+
output += "### ".concat(item.project, " \u2013 ").concat(item.mr).concat(phase, "\n");
|
|
227
178
|
output += "".concat(item.content.trim(), "\n");
|
|
228
179
|
}
|
|
229
180
|
return output;
|
|
@@ -232,10 +183,8 @@ var CheckReleaseReadyTask = /** @class */ (function () {
|
|
|
232
183
|
(0, inversify_1.injectable)(),
|
|
233
184
|
__param(0, (0, inversify_1.inject)(types_1.SERVICES.GitLabService)),
|
|
234
185
|
__param(1, (0, inversify_1.inject)(types_1.SERVICES.SlackService)),
|
|
235
|
-
__param(2, (0, inversify_1.inject)(types_1.SERVICES.TrelloService)),
|
|
236
186
|
__metadata("design:paramtypes", [services_1.GitLabService,
|
|
237
|
-
services_1.SlackService
|
|
238
|
-
services_1.TrelloService])
|
|
187
|
+
services_1.SlackService])
|
|
239
188
|
], CheckReleaseReadyTask);
|
|
240
189
|
return CheckReleaseReadyTask;
|
|
241
190
|
}());
|
|
@@ -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]) {
|