@clickview/ship-it 0.0.24 → 0.0.26
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/Dockerfile +33 -0
- package/README.md +48 -48
- package/config.json +19 -10
- package/lib/config.json +20 -11
- package/lib/src/api-clients/git-lab/GitLabApiClient.js +404 -404
- package/lib/src/api-clients/git-lab/GitLabMapper.js +81 -81
- package/lib/src/api-clients/index.js +20 -18
- package/lib/src/api-clients/slack/SlackApiClient.js +206 -0
- package/lib/src/api-clients/team-city/TeamCityApiClient.js +100 -100
- package/lib/src/api-clients/trello/TrelloApiClient.js +145 -0
- package/lib/src/commands/BumpPackagesCommand.js +84 -84
- package/lib/src/commands/CreateBranchCommand.js +100 -100
- package/lib/src/commands/CreateMergeRequestCommand.js +107 -107
- package/lib/src/commands/CreateReleaseNotesCommand.js +84 -84
- package/lib/src/commands/CreateTestingNotesCommand.js +84 -84
- package/lib/src/commands/{StartConsumingProjectBuildsCommand.js → CreateTrelloCardsCommand.js} +77 -76
- package/lib/src/commands/InstallPackagesCommand.js +76 -76
- package/lib/src/commands/ListProjectsCommand.js +76 -76
- package/lib/src/commands/ReleaseCommand.js +129 -129
- package/lib/src/commands/StartProjectBuildsCommand.js +76 -76
- package/lib/src/commands/StatusCommand.js +88 -88
- package/lib/src/commands/TagMasterCommand.js +76 -76
- package/lib/src/commands/ValidateMergeRequestCommand.js +76 -76
- package/lib/src/commands/VersionCommand.js +76 -76
- package/lib/src/commands/index.js +30 -29
- package/lib/src/constants/CommandTypeMapping.js +20 -19
- package/lib/src/constants/GitLabMemberIds.js +6 -6
- package/lib/src/constants/MonorepoPackageJsonFiles.js +17 -16
- package/lib/src/constants/MonorepoProjectNames.js +16 -16
- package/lib/src/constants/ProjectNames.js +67 -67
- package/lib/src/constants/SlackUserEmailList.js +13 -0
- package/lib/src/constants/TeamCityBuildIDs.js +44 -44
- package/lib/src/constants/index.js +19 -19
- package/lib/src/errors/ShipItError.js +32 -32
- package/lib/src/errors/index.js +17 -17
- package/lib/src/index.js +18 -18
- package/lib/src/interfaces/Config.js +2 -2
- package/lib/src/interfaces/MergeRequestState.js +2 -2
- package/lib/src/interfaces/ProjectNames.js +2 -2
- package/lib/src/interfaces/ShipItCommand.js +2 -2
- package/lib/src/interfaces/ShipItTask.js +2 -2
- package/lib/src/interfaces/VersionType.js +2 -2
- package/lib/src/interfaces/command-cli-options/MilestoneCommandCliOptions.js +2 -2
- package/lib/src/interfaces/command-cli-options/ReleaseCommandCliOptions.js +2 -2
- package/lib/src/interfaces/command-cli-options/StatusCommandCliOptions.js +2 -0
- package/lib/src/interfaces/command-cli-options/index.js +19 -18
- package/lib/src/interfaces/command-options/BaseCommandOptions.js +2 -2
- package/lib/src/interfaces/command-options/BumpPackagesCommandOptions.js +2 -2
- package/lib/src/interfaces/command-options/DockerMilestoneCommandOptions.js +2 -2
- package/lib/src/interfaces/command-options/MilestoneCommandOptions.js +2 -2
- package/lib/src/interfaces/command-options/ReleaseCommandOptions.js +2 -2
- package/lib/src/interfaces/command-options/StatusCommandOptions.js +2 -0
- package/lib/src/interfaces/command-options/ValidateMRCommandOptions.js +2 -2
- package/lib/src/interfaces/command-options/index.js +22 -21
- package/lib/src/interfaces/index.js +26 -26
- package/lib/src/interfaces/models/Branch.js +2 -2
- package/lib/src/interfaces/models/Commit.js +2 -2
- package/lib/src/interfaces/models/CommitFile.js +2 -2
- package/lib/src/interfaces/models/File.js +2 -2
- package/lib/src/interfaces/models/Label.js +2 -2
- package/lib/src/interfaces/models/MergeRequest.js +2 -2
- package/lib/src/interfaces/models/Milestone.js +2 -2
- package/lib/src/interfaces/models/Project.js +2 -2
- package/lib/src/interfaces/models/ProjectConfig.js +9 -9
- package/lib/src/interfaces/models/Release.js +2 -2
- package/lib/src/interfaces/models/Tag.js +2 -2
- package/lib/src/interfaces/models/index.js +26 -26
- package/lib/src/interfaces/view-models/MilestoneProject.js +2 -2
- package/lib/src/interfaces/view-models/index.js +17 -17
- package/lib/src/inversify.config.js +75 -67
- package/lib/src/services/GitLabService.js +498 -498
- package/lib/src/services/SlackService.js +142 -0
- package/lib/src/services/TeamCityService.js +37 -37
- package/lib/src/services/TrelloService.js +84 -0
- package/lib/src/services/index.js +20 -18
- package/lib/src/startup/AddMilestoneCommand.js +95 -95
- package/lib/src/startup/GetAction.js +68 -68
- package/lib/src/startup/SetupCommands.js +166 -128
- package/lib/src/tasks/BumpPackagesTask.js +229 -229
- package/lib/src/tasks/BumpVersionTxtTask.js +110 -110
- package/lib/src/tasks/CommitPackageVersionsTask.js +116 -116
- package/lib/src/tasks/CreateBranchTask.js +104 -104
- package/lib/src/tasks/CreateMergeRequestTask.js +118 -118
- package/lib/src/tasks/CreateReleaseNotesTask.js +144 -122
- package/lib/src/tasks/CreateTestingNotesTask.js +135 -135
- package/lib/src/tasks/InstallPackagesTask.js +407 -405
- package/lib/src/tasks/ListProjectsTask.js +87 -87
- package/lib/src/tasks/PopulateTrelloBoardTask.js +140 -0
- package/lib/src/tasks/StartMonorepoBuildTask.js +109 -109
- package/lib/src/tasks/StartProjectBuildsTask.js +149 -149
- package/lib/src/tasks/TagMasterTask.js +121 -121
- package/lib/src/tasks/ValidateCommitsTask.js +143 -119
- package/lib/src/tasks/ValidateDescriptionsTask.js +178 -151
- package/lib/src/tasks/ValidateMergeRequestTask.js +115 -115
- package/lib/src/tasks/ValidateTask.js +344 -240
- package/lib/src/tasks/VersionTask.js +98 -98
- package/lib/src/tasks/index.js +34 -33
- package/lib/src/types.js +57 -49
- package/lib/src/utils/BranchNames.js +11 -11
- package/lib/src/utils/Commits.js +55 -55
- package/lib/src/utils/Csv.js +54 -54
- package/lib/src/utils/Descriptions.js +237 -237
- package/lib/src/utils/GroupIds.js +6 -6
- package/lib/src/utils/Logger.js +62 -62
- package/lib/src/utils/ProjectIds.js +47 -47
- package/lib/src/utils/Versions.js +20 -20
- package/lib/src/utils/index.js +22 -22
- package/package.json +50 -47
- package/lib/src/tasks/StartConsumingProjectBuildsTask.js +0 -149
package/Dockerfile
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
FROM node:18.11.0
|
|
2
|
+
|
|
3
|
+
WORKDIR /app
|
|
4
|
+
|
|
5
|
+
COPY ["src", "src/"]
|
|
6
|
+
# Copy files needed to install NPM packages
|
|
7
|
+
COPY ["package.json", "package-lock.json", "./"]
|
|
8
|
+
|
|
9
|
+
COPY ["tsconfig.json", "config.json", ".eslintrc.json", "./"]
|
|
10
|
+
|
|
11
|
+
# Set an authentication token for NPM, allowing the build machine to install private NPM packages
|
|
12
|
+
ARG npm_token
|
|
13
|
+
ARG milestone
|
|
14
|
+
ARG command
|
|
15
|
+
ARG options
|
|
16
|
+
ENV cliOptions=""
|
|
17
|
+
|
|
18
|
+
RUN npm config set '//registry.npmjs.org/:_authToken' $npm_token
|
|
19
|
+
RUN npm config set save-exact=true
|
|
20
|
+
# Note: As of writing, NPM versions beyond 8.5.5 cannot run `npm ci` without failing. Once this is fixed, the line below should be deleted
|
|
21
|
+
RUN npm install -g npm@8.5.5
|
|
22
|
+
|
|
23
|
+
# Install NPM packages
|
|
24
|
+
RUN npm install
|
|
25
|
+
|
|
26
|
+
RUN npm run build
|
|
27
|
+
|
|
28
|
+
RUN npm link
|
|
29
|
+
|
|
30
|
+
RUN cliOptions=$(echo "$options" | sed -e 's/^"//' -e 's/"$//') && \
|
|
31
|
+
echo "Build option: $cliOptions" && \
|
|
32
|
+
ship-it $command -m $milestone $cliOptions
|
|
33
|
+
|
package/README.md
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
# Ship It
|
|
2
|
-
|
|
3
|
-
## Introduction
|
|
4
|
-
|
|
5
|
-
"Ship It" is a CLI tool that was created to automate aspects of our release workflow.
|
|
6
|
-
|
|
7
|
-
### How To Manage A Release
|
|
8
|
-
|
|
9
|
-
If you are here to learn how to manage a release, please see [this document](https://clickview.quip.com/DbEyAaVK8sqB/Release-Manager-Checklist) instead.
|
|
10
|
-
|
|
11
|
-
### How To Contribute
|
|
12
|
-
|
|
13
|
-
If you are here instead of learn about or contribute to this project, then you're in the right place! Keep reading :)
|
|
14
|
-
|
|
15
|
-
## Prerequisites
|
|
16
|
-
|
|
17
|
-
* NodeJS (and npm)
|
|
18
|
-
* Access to the ClickView organization on [npm](https://www.npmjs.com). You will need to add an npm auth token to a global or local `.npmrc` file
|
|
19
|
-
* Add the `Ship It` user as a `Developer` to each GitLab project you would like to manage using the Ship It CLI
|
|
20
|
-
|
|
21
|
-
## Getting Started
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
git clone https://gitlab.cvinternal.net/front-end/ship-it.git
|
|
25
|
-
cd ship-it
|
|
26
|
-
npm install
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
After installation, you can run `npm run start -- help` to see the full list of commands.
|
|
30
|
-
|
|
31
|
-
## Contributing
|
|
32
|
-
|
|
33
|
-
### Open Issues
|
|
34
|
-
|
|
35
|
-
All bugs / feature requests are tracked in the [issues](https://gitlab.cvinternal.net/clickview/front-end/ship-it/-/issues) section of this project.
|
|
36
|
-
|
|
37
|
-
Anyone is free to pick up an issue and work on it at will! Don't be afraid, the TypeScript won't bite.
|
|
38
|
-
|
|
39
|
-
### Project Architecture
|
|
40
|
-
|
|
41
|
-
Each CLI command is defined in the `startup/SetupCommands.ts` file.
|
|
42
|
-
|
|
43
|
-
Each command maps to a particular TypeScript class in the `commands` directory.
|
|
44
|
-
These command classes typically just sequentially run a set of "tasks", where each "task" can be shared across different commands.
|
|
45
|
-
Each task also exists as a TypeScript class under the `tasks` directory.
|
|
46
|
-
|
|
47
|
-
All code written in this project is intended to be highly reusable! If you are contributing a new command or updating an existing one, be sure to see if the code you're looking for already exists.
|
|
48
|
-
|
|
1
|
+
# Ship It
|
|
2
|
+
|
|
3
|
+
## Introduction
|
|
4
|
+
|
|
5
|
+
"Ship It" is a CLI tool that was created to automate aspects of our release workflow.
|
|
6
|
+
|
|
7
|
+
### How To Manage A Release
|
|
8
|
+
|
|
9
|
+
If you are here to learn how to manage a release, please see [this document](https://clickview.quip.com/DbEyAaVK8sqB/Release-Manager-Checklist) instead.
|
|
10
|
+
|
|
11
|
+
### How To Contribute
|
|
12
|
+
|
|
13
|
+
If you are here instead of learn about or contribute to this project, then you're in the right place! Keep reading :)
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
* NodeJS (and npm)
|
|
18
|
+
* Access to the ClickView organization on [npm](https://www.npmjs.com). You will need to add an npm auth token to a global or local `.npmrc` file
|
|
19
|
+
* Add the `Ship It` user as a `Developer` to each GitLab project you would like to manage using the Ship It CLI
|
|
20
|
+
|
|
21
|
+
## Getting Started
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
git clone https://gitlab.cvinternal.net/front-end/ship-it.git
|
|
25
|
+
cd ship-it
|
|
26
|
+
npm install
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
After installation, you can run `npm run start -- help` to see the full list of commands.
|
|
30
|
+
|
|
31
|
+
## Contributing
|
|
32
|
+
|
|
33
|
+
### Open Issues
|
|
34
|
+
|
|
35
|
+
All bugs / feature requests are tracked in the [issues](https://gitlab.cvinternal.net/clickview/front-end/ship-it/-/issues) section of this project.
|
|
36
|
+
|
|
37
|
+
Anyone is free to pick up an issue and work on it at will! Don't be afraid, the TypeScript won't bite.
|
|
38
|
+
|
|
39
|
+
### Project Architecture
|
|
40
|
+
|
|
41
|
+
Each CLI command is defined in the `startup/SetupCommands.ts` file.
|
|
42
|
+
|
|
43
|
+
Each command maps to a particular TypeScript class in the `commands` directory.
|
|
44
|
+
These command classes typically just sequentially run a set of "tasks", where each "task" can be shared across different commands.
|
|
45
|
+
Each task also exists as a TypeScript class under the `tasks` directory.
|
|
46
|
+
|
|
47
|
+
All code written in this project is intended to be highly reusable! If you are contributing a new command or updating an existing one, be sure to see if the code you're looking for already exists.
|
|
48
|
+
|
package/config.json
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
{
|
|
2
|
-
"gitLab": {
|
|
3
|
-
"accessToken": "glpat-YK8GmVgXRRf3zBe3JQze",
|
|
4
|
-
"url": "https://gitlab.cvinternal.net"
|
|
5
|
-
},
|
|
6
|
-
"teamCity": {
|
|
7
|
-
"url": "http://build.cvinternal.net/",
|
|
8
|
-
"username": "shale.kuzmanovski",
|
|
9
|
-
"password": "hock-inflame-prodigy-unstrap"
|
|
10
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"gitLab": {
|
|
3
|
+
"accessToken": "glpat-YK8GmVgXRRf3zBe3JQze",
|
|
4
|
+
"url": "https://gitlab.cvinternal.net"
|
|
5
|
+
},
|
|
6
|
+
"teamCity": {
|
|
7
|
+
"url": "http://build.cvinternal.net/",
|
|
8
|
+
"username": "shale.kuzmanovski",
|
|
9
|
+
"password": "hock-inflame-prodigy-unstrap"
|
|
10
|
+
},
|
|
11
|
+
"slack": {
|
|
12
|
+
"botToken": "xoxb-10474490612-6484075093633-vEo2cgvi7nma9DDSzPEXWDrw",
|
|
13
|
+
"channelId": "C03DX0DSG3F"
|
|
14
|
+
},
|
|
15
|
+
"trello": {
|
|
16
|
+
"apiKey": "6e887685d44e94ae9a680c010c4b622d",
|
|
17
|
+
"apiToken": "ATTA558c8969ce04b46fb9c9d6f645aa51be7f1c9dbb9b6f5f6f85ae6da2a209c1f39AAC612F",
|
|
18
|
+
"boardId": "3edi3xiO"
|
|
19
|
+
}
|
|
11
20
|
}
|
package/lib/config.json
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
{
|
|
2
|
-
"gitLab": {
|
|
3
|
-
"accessToken": "glpat-YK8GmVgXRRf3zBe3JQze",
|
|
4
|
-
"url": "https://gitlab.cvinternal.net"
|
|
5
|
-
},
|
|
6
|
-
"teamCity": {
|
|
7
|
-
"url": "http://build.cvinternal.net/",
|
|
8
|
-
"username": "shale.kuzmanovski",
|
|
9
|
-
"password": "hock-inflame-prodigy-unstrap"
|
|
10
|
-
}
|
|
11
|
-
|
|
1
|
+
{
|
|
2
|
+
"gitLab": {
|
|
3
|
+
"accessToken": "glpat-YK8GmVgXRRf3zBe3JQze",
|
|
4
|
+
"url": "https://gitlab.cvinternal.net"
|
|
5
|
+
},
|
|
6
|
+
"teamCity": {
|
|
7
|
+
"url": "http://build.cvinternal.net/",
|
|
8
|
+
"username": "shale.kuzmanovski",
|
|
9
|
+
"password": "hock-inflame-prodigy-unstrap"
|
|
10
|
+
},
|
|
11
|
+
"slack": {
|
|
12
|
+
"botToken": "xoxb-10474490612-6484075093633-vEo2cgvi7nma9DDSzPEXWDrw",
|
|
13
|
+
"channelId": "C03DX0DSG3F"
|
|
14
|
+
},
|
|
15
|
+
"trello": {
|
|
16
|
+
"apiKey": "6e887685d44e94ae9a680c010c4b622d",
|
|
17
|
+
"apiToken": "ATTA558c8969ce04b46fb9c9d6f645aa51be7f1c9dbb9b6f5f6f85ae6da2a209c1f39AAC612F",
|
|
18
|
+
"boardId": "3edi3xiO"
|
|
19
|
+
}
|
|
20
|
+
}
|