intello-shipit-cli 0.6.0.rc6 → 1.2.0
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.
- checksums.yaml +4 -4
- data/Changelog.md +19 -0
- data/Gemfile +0 -0
- data/Guardfile +0 -0
- data/LICENSE +2 -2
- data/README.md +44 -3
- data/Rakefile +0 -0
- data/doc/mr.png +0 -0
- data/lib/shipit/cli/git.rb +1 -0
- data/lib/shipit/cli/version.rb +1 -1
- data/lib/shipit/cli/work.rb +13 -4
- data/shipit-cli.gemspec +2 -1
- data/shipit-windows.bat +60 -0
- metadata +23 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61575736646b080306c67d9a543a9603c748faec5c7b5f7c6b5a2dc0154e099e
|
4
|
+
data.tar.gz: 45a103fd0a48d629a67abfac6a6a4b786f9bf8c9d3221e6eb7a6f1f5c6da4dd7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb8f3664cbe9f66a9559f8822e19aeb0bb7b9468a54df76258ac3f26908c7d42ded6463e50797e4c794eaf651683e362dc3dd65df05e32f8bac0e45e7b068a14
|
7
|
+
data.tar.gz: b370aa66d1908b69e7cf37ff6b220668ef55f91bc48290e9147787500d87cf41a22b70d6791175701ac77f5a2f8b8bbcc2eb0a295049da6b3b8302405708f91e
|
data/Changelog.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
All notable changes to this project will be documented in this file.
|
4
|
+
|
5
|
+
NOTE: the project follows [Semantic Versioning](http://semver.org/).
|
6
|
+
|
7
|
+
## v1.2.0 - March 9th, 2022
|
8
|
+
|
9
|
+
- [bug] #3 - Support when project is located in sub folder
|
10
|
+
|
11
|
+
## v1.1.0 - February 7th, 2022
|
12
|
+
|
13
|
+
- [enhancement] #5 - Run shipit from a Docker environement for nonLinux environement
|
14
|
+
- [task] #1 - Support gitlab.com new Draft status
|
15
|
+
|
16
|
+
## v1.0.0 - November 25th, 2021
|
17
|
+
|
18
|
+
- Inivial version
|
19
|
+
|
data/Gemfile
CHANGED
File without changes
|
data/Guardfile
CHANGED
File without changes
|
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright Intello Technologies Inc, 2016-
|
3
|
+
Copyright Intello Technologies Inc, 2016-2020.
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
-
SOFTWARE.
|
21
|
+
SOFTWARE.
|
data/README.md
CHANGED
@@ -12,29 +12,64 @@ Designed to simplify collaboration with Git and Gitlab, its main purpose is to k
|
|
12
12
|
|
13
13
|
## Requirements
|
14
14
|
|
15
|
-
-
|
15
|
+
- Git
|
16
16
|
- A `gitlab` personal access token (`https://{{ YOUR_GITLAB_HOST }}/profile/personal_access_tokens`)
|
17
17
|
- Issues must have a label and a milestone
|
18
18
|
|
19
19
|
`intello-shipit-cli` works as well on gitlab.com as on a privately hosted instance of Gitlab
|
20
20
|
|
21
|
+
### Linux / macOS
|
22
|
+
|
23
|
+
- Ruby 2.5+
|
24
|
+
|
25
|
+
### Windows
|
26
|
+
|
27
|
+
- Docker
|
28
|
+
|
29
|
+
A .shipit.yml file must exist in `C:\Users\[my_user]\.shipit.yml` or to a path specified by `-c [path_to_file]`
|
30
|
+
SSH keys should be present in `C:\Users\[my_user]\.ssh`
|
31
|
+
|
32
|
+
Here is an example of the format of the file :
|
33
|
+
|
34
|
+
```yaml
|
35
|
+
---
|
36
|
+
endpoint: endpoint
|
37
|
+
private_token: private_token
|
38
|
+
```
|
39
|
+
|
40
|
+
As an example, the [endpoint for gitlab.com](https://docs.gitlab.com/ee/api/#current-status) is `https://gitlab.intello.com/api/v4`.
|
41
|
+
|
21
42
|
## Install/Update
|
22
43
|
|
44
|
+
### Linux / macOS
|
45
|
+
|
23
46
|
```bash
|
24
47
|
gem install intello-shipit-cli
|
25
48
|
```
|
26
49
|
|
27
50
|
> NOTE: If you use a ruby manager, the gem has to be installed each time you want to use it in a new ruby context.
|
28
51
|
|
29
|
-
|
52
|
+
#### PROTIP
|
30
53
|
|
31
54
|
If you use rbenv as your ruby manager, and want to easily install/update `intello-shipit-cli` across all your rubies:
|
32
55
|
|
33
56
|
1. Install [rbenv-each](https://github.com/rbenv/rbenv-each)
|
34
57
|
1. Run `rbenv each gem install intello-shipit-cli`
|
35
58
|
|
59
|
+
### Windows
|
60
|
+
|
61
|
+
Move `shipit-windows.bat` to a folder present in your environment %PATH%.
|
62
|
+
shipit-windows.bat needs to be run from a gitlab project.
|
63
|
+
|
64
|
+
#### Known issues
|
65
|
+
|
66
|
+
- Virtualization may not be enabled on certain AMD processors.
|
67
|
+
- From our experience, You may need to update to Windows build 2004 and re-install Docker or Docker Desktop to fix the above mentionned issue.
|
68
|
+
|
36
69
|
## Setup
|
37
70
|
|
71
|
+
### Linux
|
72
|
+
|
38
73
|
You must first setup `intello-shipit-cli` by running:
|
39
74
|
|
40
75
|
```bash
|
@@ -48,6 +83,12 @@ This will interactivly ask you for:
|
|
48
83
|
|
49
84
|
The setup will create a file in your user root folder called `.shipit.yml` with this information.
|
50
85
|
|
86
|
+
### Windows
|
87
|
+
|
88
|
+
You must manually set up your `.shipit.yml` file in your home directory : `C:\Users\[your_user]\.shipit.yml`
|
89
|
+
Setup will be performed when you first run `shipit-windows.bat`.
|
90
|
+
First time use may take a few minutes to configure its Docker environment.
|
91
|
+
|
51
92
|
### PROTIP
|
52
93
|
|
53
94
|
If you have multiple Gitlab servers or account you can manually create configuration YAML files and use the `-c` option of `intello-shipit-cli` to select the proper configuration.
|
@@ -138,7 +179,7 @@ You can write tests using `rspec v3+` syntax in the `spec` folder. To run the te
|
|
138
179
|
|
139
180
|
## License
|
140
181
|
|
141
|
-
Copyright Intello Technologies Inc, 2016-
|
182
|
+
Copyright Intello Technologies Inc, 2016-2020. Licensed under the [MIT license](/LICENSE?raw=true).
|
142
183
|
|
143
184
|
## About Intello Technologies Inc.
|
144
185
|
|
data/Rakefile
CHANGED
File without changes
|
data/doc/mr.png
CHANGED
Binary file
|
data/lib/shipit/cli/git.rb
CHANGED
data/lib/shipit/cli/version.rb
CHANGED
data/lib/shipit/cli/work.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "active_support/all"
|
2
|
+
require "git_clone_url"
|
2
3
|
|
3
4
|
module Shipit
|
4
5
|
module Cli
|
@@ -63,7 +64,10 @@ module Shipit
|
|
63
64
|
end
|
64
65
|
|
65
66
|
def create_merge_request(issue)
|
66
|
-
|
67
|
+
if dry_run?
|
68
|
+
puts " - Merge request name: #{issue["merge_request_title"]}"
|
69
|
+
return
|
70
|
+
end
|
67
71
|
opts = issue.slice("source_branch", "target_branch", "assignee_id", "labels", "milestone_id", "remove_source_branch")
|
68
72
|
client.create_merge_request(project_path,
|
69
73
|
issue["merge_request_title"],
|
@@ -92,7 +96,7 @@ module Shipit
|
|
92
96
|
assignee_id = assignee["id"]
|
93
97
|
issue_title = sane_title.parameterize[0..20]
|
94
98
|
first_commit_message = "[#{labels}] Fixes ##{issue_id} - #{sane_title}"
|
95
|
-
mr_title = "
|
99
|
+
mr_title = "Draft: [#{labels}] ##{issue_id} - #{sane_title}"
|
96
100
|
|
97
101
|
# 2. Add to issue properties
|
98
102
|
issue["source_branch"] = [issue["labels"].first.gsub(/\s+/, ""), assignee_initials, issue_id, issue_title].compact.join("-")
|
@@ -121,18 +125,23 @@ module Shipit
|
|
121
125
|
|
122
126
|
# @return [String]
|
123
127
|
def project_name
|
124
|
-
@project_name ||=
|
128
|
+
@project_name ||= project_path_array.last.gsub(".git", "")
|
125
129
|
end
|
126
130
|
|
127
131
|
# @return [String]
|
128
132
|
def project_namespace
|
129
|
-
@project_namespace ||=
|
133
|
+
@project_namespace ||= project_path_array.first(project_path_array.size - 1)
|
130
134
|
end
|
131
135
|
|
132
136
|
# @return [String]
|
133
137
|
def project_path
|
134
138
|
@project_path ||= [project_namespace, project_name].join("/")
|
135
139
|
end
|
140
|
+
|
141
|
+
# @return [Array]
|
142
|
+
def project_path_array
|
143
|
+
@project_path_array ||= GitCloneUrl.parse(project_git_url).path.split("/").reject(&:blank?)
|
144
|
+
end
|
136
145
|
end
|
137
146
|
end
|
138
147
|
end
|
data/shipit-cli.gemspec
CHANGED
@@ -22,8 +22,9 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency "activesupport"
|
23
23
|
spec.add_dependency "gli", "~> 2.13"
|
24
24
|
spec.add_dependency "gitlab", "~> 4.3.0"
|
25
|
+
spec.add_dependency "git_clone_url", "~> 2.0.0"
|
25
26
|
|
26
|
-
spec.add_development_dependency "bundler", "~> 2.0
|
27
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
27
28
|
spec.add_development_dependency "guard"
|
28
29
|
spec.add_development_dependency "guard-ctags-bundler"
|
29
30
|
spec.add_development_dependency "guard-rspec"
|
data/shipit-windows.bat
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
@echo off
|
2
|
+
|
3
|
+
docker info > NUL 2>&1
|
4
|
+
|
5
|
+
REM Checks if docker is running or not
|
6
|
+
if errorlevel 1 (
|
7
|
+
echo Please install or start Docker
|
8
|
+
exit /b 1
|
9
|
+
)
|
10
|
+
|
11
|
+
REM If a -c flag is passed as the first argument
|
12
|
+
IF [%1] == [-c] (
|
13
|
+
|
14
|
+
REM If the file doesn't exist, stop here
|
15
|
+
IF [%2] NEQ [] (
|
16
|
+
IF NOT EXIST "%2" (
|
17
|
+
echo %2 - File does not exist
|
18
|
+
exit /b 1
|
19
|
+
)
|
20
|
+
)
|
21
|
+
|
22
|
+
REM Otherwise copy the config file to WORKDIR of container
|
23
|
+
xcopy /y %2 . > NUL 2>&1
|
24
|
+
)
|
25
|
+
|
26
|
+
REM Create temp dockerfile
|
27
|
+
(
|
28
|
+
echo FROM ruby:2.5
|
29
|
+
echo RUN gem install intello-shipit-cli
|
30
|
+
echo WORKDIR /usr/src/project
|
31
|
+
) > %TEMP%\Dockerfile
|
32
|
+
|
33
|
+
REM Check if Ruby container already is installed locally
|
34
|
+
docker inspect --type=image ruby:2.5 > NUL 2>&1
|
35
|
+
|
36
|
+
IF errorlevel 1 (
|
37
|
+
ECHO Please wait while we perform a first-time setup for shipit on your Windows environment. This can take several minutes.
|
38
|
+
)
|
39
|
+
|
40
|
+
REM Build Container
|
41
|
+
docker build -t "shipit-docker" -f %TEMP%\Dockerfile . > NUL 2>&1
|
42
|
+
|
43
|
+
REM Depending on is -c was passed, use the right arg number to run container
|
44
|
+
IF [%1] == [-c] (
|
45
|
+
docker run -v %CD%:/usr/src/project ^
|
46
|
+
-v %HOMEDRIVE%%HOMEPATH%"\authorized_keys":/root/.ssh/authorized_keys ^
|
47
|
+
-v %HOMEDRIVE%%HOMEPATH%"\.gitconfig":/root/.gitconfig ^
|
48
|
+
-v %HOMEDRIVE%%HOMEPATH%"\.ssh":/root/ssh_temp/ ^
|
49
|
+
--rm shipit-docker:latest /bin/bash -c "cp -f /root/ssh_temp/* /root/.ssh/ ; chmod 0600 /root/.ssh/* ; shipit -c .shipit.yml %3 %4"
|
50
|
+
del .shipit.yml
|
51
|
+
) else (
|
52
|
+
docker run -v %CD%:/usr/src/project ^
|
53
|
+
-v %HOMEDRIVE%%HOMEPATH%"\authorized_keys":/root/.ssh/authorized_keys ^
|
54
|
+
-v %HOMEDRIVE%%HOMEPATH%"\.gitconfig":/root/.gitconfig ^
|
55
|
+
-v %HOMEDRIVE%%HOMEPATH%"\.ssh":/root/ssh_temp/ ^
|
56
|
+
-v %HOMEDRIVE%%HOMEPATH%"\.shipit.yml":/root/.shipit.yml ^
|
57
|
+
--rm shipit-docker:latest /bin/bash -c "cp -f /root/ssh_temp/* /root/.ssh/ ; chmod 0600 /root/.ssh/* ; shipit -c /root/.shipit.yml %1 %2"
|
58
|
+
)
|
59
|
+
|
60
|
+
del %TEMP%\Dockerfile
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intello-shipit-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Thouret
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -52,20 +52,34 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 4.3.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: git_clone_url
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.0.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.0.0
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.0
|
75
|
+
version: '2.0'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.0
|
82
|
+
version: '2.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: guard
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,6 +207,7 @@ files:
|
|
193
207
|
- ".rubocop.yml"
|
194
208
|
- ".ruby-style.yml"
|
195
209
|
- ".ruby-version"
|
210
|
+
- Changelog.md
|
196
211
|
- Gemfile
|
197
212
|
- Guardfile
|
198
213
|
- LICENSE
|
@@ -215,6 +230,7 @@ files:
|
|
215
230
|
- script/release
|
216
231
|
- script/test
|
217
232
|
- shipit-cli.gemspec
|
233
|
+
- shipit-windows.bat
|
218
234
|
homepage: https://gitlab.com/intello/shipit-cli
|
219
235
|
licenses:
|
220
236
|
- MIT
|
@@ -230,12 +246,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
230
246
|
version: 2.5.0
|
231
247
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
232
248
|
requirements:
|
233
|
-
- - "
|
249
|
+
- - ">="
|
234
250
|
- !ruby/object:Gem::Version
|
235
|
-
version:
|
251
|
+
version: '0'
|
236
252
|
requirements: []
|
237
|
-
|
238
|
-
rubygems_version: 2.7.8
|
253
|
+
rubygems_version: 3.2.3
|
239
254
|
signing_key:
|
240
255
|
specification_version: 4
|
241
256
|
summary: Designed to simplify working with Gitlab, its main purpose is to kickstart
|