intello-shipit-cli 1.1.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +9 -3
- data/exe/shipit +1 -0
- data/lib/shipit/cli/configuration.rb +2 -2
- data/lib/shipit/cli/configuration_file.rb +1 -1
- data/lib/shipit/cli/git.rb +4 -2
- data/lib/shipit/cli/version.rb +1 -1
- data/lib/shipit/cli/work.rb +8 -2
- data/shipit-cli.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c4795dc17a4c6b03dc3446b9f365f5be72f33ca155f54bb621aac3fbc631e7a
|
4
|
+
data.tar.gz: 106c04cf366e83b3b3616e192c866936929bd99d623e75853c91562376d3bd45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f04183c2c88b07988dd50b82ba70e3db98ed9b1afb02b684617d7b9e5ae2c4bcaa6f2de04c8d07923e73b6f87e2ccc811a06d4fede245cca0e9ff17daa30f12a
|
7
|
+
data.tar.gz: f2b9437e9d64b0a78bc6afe4c4d885f979630897fc8713d97bcec0cd99b05bc8d0bf186d320d5ba332e3ee1d4203179d662590937a97611a0bd7c57bdc1de3cd
|
data/Changelog.md
CHANGED
@@ -4,14 +4,20 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
|
5
5
|
NOTE: the project follows [Semantic Versioning](http://semver.org/).
|
6
6
|
|
7
|
-
##
|
7
|
+
## v1.3.0 - October 12th, 2022
|
8
8
|
|
9
|
-
|
9
|
+
- [enhancement] #8 - Add option to skip CICD when shipping
|
10
|
+
|
11
|
+
## v1.2.0 - March 9th, 2022
|
12
|
+
|
13
|
+
- [bug] #3 - Support when project is located in sub folder
|
14
|
+
|
15
|
+
## v1.1.0 - February 7th, 2022
|
10
16
|
|
11
17
|
- [enhancement] #5 - Run shipit from a Docker environement for nonLinux environement
|
12
18
|
- [task] #1 - Support gitlab.com new Draft status
|
13
19
|
|
14
|
-
|
20
|
+
## v1.0.0 - November 25th, 2021
|
15
21
|
|
16
22
|
- Inivial version
|
17
23
|
|
data/exe/shipit
CHANGED
@@ -24,6 +24,7 @@ sort_help :manually
|
|
24
24
|
flag [:c, :config], default_value: File.join(ENV["HOME"], ".shipit.yml"), desc: "Set the saved configuration path"
|
25
25
|
flag [:e, :endpoint], desc: "Set the shipit API endpoint"
|
26
26
|
flag [:p, :private_token], desc: "Set your private token to access the shipit API"
|
27
|
+
flag [:ship_skips_ci], default_value: false, desc: "Skip running the CI/CD after running `shipit work #`"
|
27
28
|
|
28
29
|
# Switches
|
29
30
|
switch :dry_run, default_value: false, desc: "Dry Run mode, no git or POST/PUT commands are run"
|
@@ -8,9 +8,9 @@ module Shipit
|
|
8
8
|
#
|
9
9
|
class Configuration
|
10
10
|
# List of all the configuration attributes stored for use within the gem
|
11
|
-
ATTRIBUTES = [:endpoint, :private_token, :protected_branches]
|
11
|
+
ATTRIBUTES = [:endpoint, :private_token, :protected_branches, :ship_skips_ci]
|
12
12
|
|
13
|
-
attr_accessor :endpoint, :private_token, :protected_branches
|
13
|
+
attr_accessor :endpoint, :private_token, :protected_branches, :ship_skips_ci
|
14
14
|
|
15
15
|
# Apply a configuration hash to a configuration instance
|
16
16
|
#
|
@@ -3,7 +3,7 @@ require "yaml"
|
|
3
3
|
module Shipit
|
4
4
|
module Cli
|
5
5
|
class ConfigurationFile
|
6
|
-
ATTR_READER = [:endpoint, :private_token, :protected_branches]
|
6
|
+
ATTR_READER = [:endpoint, :private_token, :protected_branches, :ship_skips_ci]
|
7
7
|
attr_reader(*ATTR_READER)
|
8
8
|
|
9
9
|
def initialize(path, configuration = nil)
|
data/lib/shipit/cli/git.rb
CHANGED
@@ -9,12 +9,12 @@ module Shipit
|
|
9
9
|
new: {
|
10
10
|
desc: "create new branch `branch`",
|
11
11
|
commands: [
|
12
|
-
'"#{GIT} push #{origin} #{current_branch}:refs/heads/#{branch} --no-verify #{VERBOSE}"',
|
12
|
+
'"#{GIT} push #{ship_skips_ci}#{origin} #{current_branch}:refs/heads/#{branch} --no-verify #{VERBOSE}"',
|
13
13
|
'"#{GIT} fetch #{origin} #{VERBOSE}"',
|
14
14
|
'"#{GIT} branch --track #{branch} #{origin}/#{branch} #{VERBOSE}"',
|
15
15
|
'"#{GIT} checkout #{branch} #{VERBOSE}"',
|
16
16
|
'"#{GIT} commit --allow-empty -m \"#{message}\" #{VERBOSE}"',
|
17
|
-
'"#{GIT} push --no-verify #{VERBOSE}"'
|
17
|
+
'"#{GIT} push #{ship_skips_ci}--no-verify #{VERBOSE}"'
|
18
18
|
]
|
19
19
|
}
|
20
20
|
}
|
@@ -27,8 +27,10 @@ module Shipit
|
|
27
27
|
origin = ORIGIN
|
28
28
|
message = opt.fetch(:message, "").gsub("`", "'")
|
29
29
|
dry_run = opt.fetch(:dry_run, false)
|
30
|
+
ship_skips_ci = "-o ci.skip " if Shipit::Cli.config.ship_skips_ci.to_s.downcase == "true"
|
30
31
|
grepped_protected_branches = Array(Shipit::Cli.config.protected_branches)
|
31
32
|
.push("master")
|
33
|
+
.push("main")
|
32
34
|
.push("develop")
|
33
35
|
.push(get_current_branch)
|
34
36
|
.uniq.map{ |b| "| grep -v #{b} " }.join
|
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
|
@@ -124,18 +125,23 @@ module Shipit
|
|
124
125
|
|
125
126
|
# @return [String]
|
126
127
|
def project_name
|
127
|
-
@project_name ||=
|
128
|
+
@project_name ||= project_path_array.last.gsub(".git", "")
|
128
129
|
end
|
129
130
|
|
130
131
|
# @return [String]
|
131
132
|
def project_namespace
|
132
|
-
@project_namespace ||=
|
133
|
+
@project_namespace ||= project_path_array.first(project_path_array.size - 1)
|
133
134
|
end
|
134
135
|
|
135
136
|
# @return [String]
|
136
137
|
def project_path
|
137
138
|
@project_path ||= [project_namespace, project_name].join("/")
|
138
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
|
139
145
|
end
|
140
146
|
end
|
141
147
|
end
|
data/shipit-cli.gemspec
CHANGED
@@ -22,6 +22,7 @@ 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
27
|
spec.add_development_dependency "bundler", "~> 2.0"
|
27
28
|
spec.add_development_dependency "guard"
|
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: 1.
|
4
|
+
version: 1.3.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: 2022-
|
11
|
+
date: 2022-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -52,6 +52,20 @@ 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
|