git_reflow 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +13 -5
- data/Gemfile +1 -1
- data/Gemfile.lock +31 -25
- data/README.rdoc +16 -2
- data/git_reflow.gemspec +3 -3
- data/lib/git_reflow.rb +102 -30
- data/lib/git_reflow/commands/deliver.rb +1 -2
- data/lib/git_reflow/commands/review.rb +11 -16
- data/lib/git_reflow/commands/setup.rb +3 -1
- data/lib/git_reflow/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZTU5NWIzMGM1MTFmYTQ5NDVmZDQ1MDFkNjViZjhmMzVmZTg5YTVjMQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZDUzNmM2NTcxOGYxYzE3YWQ0YzA3YjVkMjMyZTQ1ZTZhYWE0ZGU2Mg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OTdmMDIwNGQzYzA3ZmU0NTZkN2IxNDQyNmVkZTgzOWE1NTIzMDcwZDI2NzNj
|
10
|
+
NGJhZDRkMTgwN2U5MzA2MTQzODY0ODgwNGE3YjUyMTVhYzAzZmY0OTcwOWMw
|
11
|
+
MjM3NzJkMTE4NmI5OTRlNjNhODVhYTI1ZmUzNzRmYmQ3MWQzNjg=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YTJkYzk3OTI5ZDFjOTI5MGU5NjA2NGVhYzRiYjNmZWE2OWFmZWY4YzVlZTgy
|
14
|
+
YzM1ZDBlNzBmMDY3ZGY4NzNiMzZmNTVmOWZlZWVmNDVmYTJjNTNiZjk3MjIx
|
15
|
+
NWMyOTk5MzRjNGM3MTU1MjM1ZTVhMmE3YWM2MTIxYTBlODBiMGQ=
|
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
gemspec
|
data/Gemfile.lock
CHANGED
@@ -1,49 +1,55 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
git_reflow (0.3.
|
5
|
-
colorize (= 0.
|
6
|
-
github_api (= 0.
|
7
|
-
gli (= 2.1
|
4
|
+
git_reflow (0.3.3)
|
5
|
+
colorize (= 0.6.0)
|
6
|
+
github_api (= 0.10.2)
|
7
|
+
gli (= 2.8.1)
|
8
8
|
highline
|
9
9
|
httpclient
|
10
10
|
|
11
11
|
GEM
|
12
|
-
remote:
|
12
|
+
remote: https://rubygems.org/
|
13
13
|
specs:
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
addressable (2.3.5)
|
15
|
+
colorize (0.6.0)
|
16
|
+
faraday (0.8.8)
|
17
|
+
multipart-post (~> 1.2.0)
|
17
18
|
git (1.2.5)
|
18
|
-
github_api (0.
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
github_api (0.10.2)
|
20
|
+
addressable
|
21
|
+
faraday (~> 0.8.7)
|
22
|
+
hashie (>= 1.2)
|
23
|
+
multi_json (~> 1.4)
|
24
|
+
nokogiri (~> 1.6.0)
|
23
25
|
oauth2
|
24
|
-
gli (2.1
|
25
|
-
hashie (
|
26
|
-
highline (1.6.
|
26
|
+
gli (2.8.1)
|
27
|
+
hashie (2.0.5)
|
28
|
+
highline (1.6.19)
|
27
29
|
httpauth (0.2.0)
|
28
|
-
httpclient (2.
|
30
|
+
httpclient (2.3.4.1)
|
29
31
|
jeweler (1.8.4)
|
30
32
|
bundler (~> 1.0)
|
31
33
|
git (>= 1.2.5)
|
32
34
|
rake
|
33
35
|
rdoc
|
34
36
|
json (1.7.5)
|
35
|
-
jwt (0.1.
|
36
|
-
multi_json (>= 1.
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
37
|
+
jwt (0.1.8)
|
38
|
+
multi_json (>= 1.5)
|
39
|
+
mini_portile (0.5.1)
|
40
|
+
multi_json (1.8.2)
|
41
|
+
multi_xml (0.5.5)
|
42
|
+
multipart-post (1.2.0)
|
43
|
+
nokogiri (1.6.0)
|
44
|
+
mini_portile (~> 0.5.0)
|
45
|
+
oauth2 (0.9.2)
|
41
46
|
faraday (~> 0.8)
|
42
|
-
httpauth (~> 0.
|
47
|
+
httpauth (~> 0.2)
|
43
48
|
jwt (~> 0.1.4)
|
44
49
|
multi_json (~> 1.0)
|
50
|
+
multi_xml (~> 0.5)
|
45
51
|
rack (~> 1.2)
|
46
|
-
rack (1.
|
52
|
+
rack (1.5.2)
|
47
53
|
rake (0.9.2.2)
|
48
54
|
rdoc (3.12)
|
49
55
|
json (~> 1.4)
|
data/README.rdoc
CHANGED
@@ -51,8 +51,6 @@ or
|
|
51
51
|
$ gem install git_reflow
|
52
52
|
|
53
53
|
=== Setup
|
54
|
-
git reflow setup
|
55
|
-
|
56
54
|
On your first install, you'll need to setup your Github credentials. These are used only to get an oauth token that's stored in your global git config.
|
57
55
|
We use the Github credentials so we can create pull requests from the command line.
|
58
56
|
|
@@ -68,6 +66,22 @@ It looks like this:
|
|
68
66
|
|
69
67
|
This is safe to run multiple times. We don't care.
|
70
68
|
|
69
|
+
=== Usage with Github Enterprise
|
70
|
+
To use GitReflow with a GitHub Enterprise account, there are some additional switches available to the GitReflow setup command. You should be able to use GitReflow for both your Enterprise and non-Enterprise repositories. Because of this, there are a few scenarios that may apply to your usage of GitReflow:
|
71
|
+
|
72
|
+
You use a GitHub Enterprise account for the majority of your repositories:
|
73
|
+
git reflow setup --enterprise
|
74
|
+
After this, anytime you want to use GitReflow with project that uses a regular GitHub account:
|
75
|
+
cd replace_with_your_non_enterprise_project_path
|
76
|
+
git reflow setup --local
|
77
|
+
This will setup your project's git config with the OAuth token generated from the credentials you provide
|
78
|
+
|
79
|
+
If you only use GitHub Enterprise for a select few repositories, you'll first want to setup GitReflow as normal:
|
80
|
+
git reflow setup
|
81
|
+
Then for your Enterprise projects, you have to setup GitReflow for each one:
|
82
|
+
cd replace_with_your_enterprise_project_path
|
83
|
+
git reflow setup --enterprise --local
|
84
|
+
|
71
85
|
=== Starting a feature branch
|
72
86
|
git reflow start
|
73
87
|
|
data/git_reflow.gemspec
CHANGED
@@ -24,11 +24,11 @@ spec = Gem::Specification.new do |s|
|
|
24
24
|
s.add_development_dependency('rdoc')
|
25
25
|
s.add_development_dependency('jeweler')
|
26
26
|
|
27
|
-
s.add_dependency('colorize', '0.
|
28
|
-
s.add_dependency('gli', '2.1
|
27
|
+
s.add_dependency('colorize', '0.6.0')
|
28
|
+
s.add_dependency('gli', '2.8.1')
|
29
29
|
s.add_dependency('highline')
|
30
30
|
s.add_dependency('httpclient')
|
31
|
-
s.add_dependency('github_api', '0.
|
31
|
+
s.add_dependency('github_api', '0.10.2')
|
32
32
|
|
33
33
|
s.post_install_message = "You need to setup your GitHub OAuth token\nPlease run 'git-reflow setup'"
|
34
34
|
end
|
data/lib/git_reflow.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'git_reflow/version.rb'
|
3
2
|
require 'open-uri'
|
4
3
|
require "highline/import"
|
5
4
|
require 'httpclient'
|
@@ -7,21 +6,54 @@ require 'github_api'
|
|
7
6
|
require 'json/pure'
|
8
7
|
require 'colorize'
|
9
8
|
|
9
|
+
require 'git_reflow/version.rb' unless defined?(GitReflow::VERSION)
|
10
|
+
|
10
11
|
module GitReflow
|
11
12
|
extend self
|
12
13
|
|
13
|
-
LGTM = /lgtm|looks good to me|:\+1:|:thumbsup:/i
|
14
|
+
LGTM = /lgtm|looks good to me|:\+1:|:thumbsup:|:shipit:/i
|
15
|
+
|
16
|
+
def setup(options = {})
|
17
|
+
project_only = options.delete(:project_only)
|
18
|
+
using_enterprise = options.delete(:enterprise)
|
19
|
+
gh_site_url = github_site_url
|
20
|
+
gh_api_endpoint = github_api_endpoint
|
21
|
+
|
22
|
+
if using_enterprise
|
23
|
+
gh_site_url = ask("Please enter your Enterprise site URL (e.g. https://github.company.com):")
|
24
|
+
gh_api_endpoint = ask("Please enter your Enterprise API endpoint (e.g. https://github.company.com/api/v3):")
|
25
|
+
end
|
26
|
+
|
27
|
+
if project_only
|
28
|
+
set_github_site_url(gh_site_url, local: true)
|
29
|
+
set_github_api_endpoint(gh_api_endpoint, local: true)
|
30
|
+
else
|
31
|
+
set_github_site_url(gh_site_url)
|
32
|
+
set_github_api_endpoint(gh_api_endpoint)
|
33
|
+
end
|
14
34
|
|
15
|
-
def setup
|
16
35
|
gh_user = ask("Please enter your GitHub username: ")
|
17
36
|
gh_password = ask("Please enter your GitHub password (we do NOT store this): ") { |q| q.echo = false }
|
18
37
|
|
19
38
|
begin
|
20
|
-
|
39
|
+
|
40
|
+
github = Github.new do |config|
|
41
|
+
config.basic_auth = "#{gh_user}:#{gh_password}"
|
42
|
+
config.endpoint = GitReflow.github_api_endpoint
|
43
|
+
config.site = GitReflow.github_site_url
|
44
|
+
config.adapter = :net_http
|
45
|
+
config.ssl = {:verify => false}
|
46
|
+
end
|
47
|
+
|
21
48
|
authorization = github.oauth.create 'scopes' => ['repo']
|
22
49
|
oauth_token = authorization[:token]
|
23
|
-
|
24
|
-
|
50
|
+
|
51
|
+
if project_only
|
52
|
+
set_oauth_token(oauth_token, local: true)
|
53
|
+
else
|
54
|
+
set_oauth_token(oauth_token)
|
55
|
+
end
|
56
|
+
rescue StandardError => e
|
25
57
|
puts "\nInvalid username or password"
|
26
58
|
else
|
27
59
|
puts "\nYour GitHub account was successfully setup!"
|
@@ -48,10 +80,10 @@ module GitReflow
|
|
48
80
|
begin
|
49
81
|
puts push_current_branch
|
50
82
|
pull_request = github.pull_requests.create(remote_user, remote_repo_name,
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
83
|
+
'title' => options['title'],
|
84
|
+
'body' => options['body'],
|
85
|
+
'head' => "#{remote_user}:#{current_branch}",
|
86
|
+
'base' => options['base'])
|
55
87
|
|
56
88
|
puts "Successfully created pull request ##{pull_request.number}: #{pull_request.title}\nPull Request URL: #{pull_request.html_url}\n"
|
57
89
|
ask_to_open_in_browser(pull_request.html_url)
|
@@ -86,9 +118,9 @@ module GitReflow
|
|
86
118
|
has_comments = has_pull_request_comments?(existing_pull_request)
|
87
119
|
|
88
120
|
# if there any comment_authors left, then they haven't given a lgtm after the last commit
|
89
|
-
if (has_comments and open_comment_authors.empty?) or options['
|
121
|
+
if (has_comments and open_comment_authors.empty?) or options['skip_lgtm']
|
90
122
|
lgtm_authors = comment_authors_for_pull_request(existing_pull_request, :with => LGTM)
|
91
|
-
commit_message = existing_pull_request[:body] || get_first_commit_message
|
123
|
+
commit_message = "#{existing_pull_request[:title]}\n#{(existing_pull_request[:body] || get_first_commit_message)}"
|
92
124
|
puts "Merging pull request ##{existing_pull_request.number}: '#{existing_pull_request.title}', from '#{existing_pull_request.head.label}' into '#{existing_pull_request.base.label}'"
|
93
125
|
|
94
126
|
update_destination(options['base'])
|
@@ -97,15 +129,16 @@ module GitReflow
|
|
97
129
|
:pull_request_number => existing_pull_request.number,
|
98
130
|
:message => "\nCloses ##{existing_pull_request.number}\n\nLGTM given by: @#{lgtm_authors.join(', @')}\n")
|
99
131
|
append_to_squashed_commit_message(commit_message)
|
132
|
+
puts "git commit".colorize(:green)
|
100
133
|
committed = system('git commit')
|
101
134
|
|
102
135
|
if committed
|
103
136
|
puts "Merge complete!"
|
104
137
|
deploy_and_cleanup = ask "Would you like to push this branch to your remote repo and cleanup your feature branch? "
|
105
138
|
if deploy_and_cleanup =~ /^y/i
|
106
|
-
|
107
|
-
|
108
|
-
|
139
|
+
run_command_with_label "git push origin #{options['base']}"
|
140
|
+
run_command_with_label "git push origin :#{feature_branch}"
|
141
|
+
run_command_with_label "git branch -D #{feature_branch}"
|
109
142
|
puts "Nice job buddy."
|
110
143
|
end
|
111
144
|
else
|
@@ -126,10 +159,40 @@ module GitReflow
|
|
126
159
|
end
|
127
160
|
|
128
161
|
def github
|
129
|
-
@github ||= Github.new
|
162
|
+
@github ||= Github.new do |config|
|
163
|
+
config.oauth_token = GitReflow.github_oauth_token
|
164
|
+
config.endpoint = GitReflow.github_api_endpoint
|
165
|
+
config.site = GitReflow.github_site_url
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
def github_api_endpoint
|
170
|
+
endpoint = `git config --get github.endpoint`.strip
|
171
|
+
(endpoint.length > 0) ? endpoint : Github::Configuration::DEFAULT_ENDPOINT
|
130
172
|
end
|
131
173
|
|
132
|
-
def
|
174
|
+
def set_github_api_endpoint(api_endpoint, options = {local: false})
|
175
|
+
if options[:local]
|
176
|
+
`git config --replace-all github.endpoint #{api_endpoint}`
|
177
|
+
else
|
178
|
+
`git config --global --replace-all github.endpoint #{api_endpoint}`
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
def github_site_url
|
183
|
+
site_url = `git config --get github.site`.strip
|
184
|
+
(site_url.length > 0) ? site_url : Github::Configuration::DEFAULT_SITE
|
185
|
+
end
|
186
|
+
|
187
|
+
def set_github_site_url(site_url, options = {local: false})
|
188
|
+
if options[:local]
|
189
|
+
`git config --replace-all github.site #{site_url}`
|
190
|
+
else
|
191
|
+
`git config --global --replace-all github.site #{site_url}`
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
def github_oauth_token
|
133
196
|
`git config --get github.oauth-token`.strip
|
134
197
|
end
|
135
198
|
|
@@ -155,32 +218,35 @@ module GitReflow
|
|
155
218
|
`git log --pretty=format:"%s" --no-merges -n 1`.strip
|
156
219
|
end
|
157
220
|
|
158
|
-
|
159
|
-
|
160
|
-
|
221
|
+
def set_oauth_token(oauth_token, options = {})
|
222
|
+
if options.delete(:local)
|
223
|
+
`git config --replace-all github.oauth-token #{oauth_token}`
|
224
|
+
else
|
225
|
+
`git config --global --replace-all github.oauth-token #{oauth_token}`
|
226
|
+
end
|
161
227
|
end
|
162
228
|
|
163
229
|
def push_current_branch
|
164
|
-
|
230
|
+
run_command_with_label "git push origin #{current_branch}"
|
165
231
|
end
|
166
232
|
|
167
233
|
def fetch_destination(destination_branch)
|
168
|
-
|
234
|
+
run_command_with_label "git fetch origin #{destination_branch}"
|
169
235
|
end
|
170
236
|
|
171
237
|
def update_destination(destination_branch)
|
172
238
|
origin_branch = current_branch
|
173
|
-
|
174
|
-
|
175
|
-
|
239
|
+
run_command_with_label "git checkout #{destination_branch}"
|
240
|
+
run_command_with_label "git pull origin #{destination_branch}"
|
241
|
+
run_command_with_label "git checkout #{origin_branch}"
|
176
242
|
end
|
177
243
|
|
178
244
|
def merge_feature_branch(options = {})
|
179
245
|
options[:destination_branch] ||= 'master'
|
180
246
|
message = options[:message] || "\nCloses ##{options[:pull_request_number]}\n"
|
181
247
|
|
182
|
-
|
183
|
-
|
248
|
+
run_command_with_label "git checkout #{options[:destination_branch]}"
|
249
|
+
run_command_with_label "git merge --squash #{options[:feature_branch]}"
|
184
250
|
# append pull request number to commit message
|
185
251
|
append_to_squashed_commit_message(message)
|
186
252
|
end
|
@@ -204,10 +270,10 @@ module GitReflow
|
|
204
270
|
end
|
205
271
|
|
206
272
|
def pull_request_comments(pull_request)
|
207
|
-
comments = github.issues.comments.all remote_user, remote_repo_name, pull_request.number
|
208
|
-
review_comments = github.pull_requests.comments.all remote_user, remote_repo_name, pull_request.number
|
273
|
+
comments = github.issues.comments.all remote_user, remote_repo_name, issue_id: pull_request.number
|
274
|
+
review_comments = github.pull_requests.comments.all remote_user, remote_repo_name, request_id: pull_request.number
|
209
275
|
|
210
|
-
review_comments + comments
|
276
|
+
review_comments.to_a + comments.to_a
|
211
277
|
end
|
212
278
|
|
213
279
|
def has_pull_request_comments?(pull_request)
|
@@ -297,4 +363,10 @@ module GitReflow
|
|
297
363
|
end
|
298
364
|
end
|
299
365
|
end
|
366
|
+
|
367
|
+
def run_command_with_label(command, options = {})
|
368
|
+
label_color = options.delete(:color) || :green
|
369
|
+
puts command.colorize(label_color)
|
370
|
+
puts `#{command}`
|
371
|
+
end
|
300
372
|
end
|
@@ -7,7 +7,7 @@ command :deliver do |c|
|
|
7
7
|
c.desc 'merge your feature branch down to your base branch, and cleanup your feature branch'
|
8
8
|
c.arg_name 'base_branch - the branch you want to merge into'
|
9
9
|
c.action do |global_options,options,args|
|
10
|
-
deliver_options = {'base' => nil, 'head' => nil}
|
10
|
+
deliver_options = {'base' => nil, 'head' => nil, 'skip_lgtm' => options[:'skip-lgtm']}
|
11
11
|
case args.length
|
12
12
|
when 2
|
13
13
|
deliver_options['base'] = args[0]
|
@@ -15,7 +15,6 @@ command :deliver do |c|
|
|
15
15
|
when 1
|
16
16
|
deliver_options['base'] = args[0]
|
17
17
|
end
|
18
|
-
deliver_options.merge({'skip_lgtm' => options[:'skip-lgtm']})
|
19
18
|
GitReflow.deliver deliver_options
|
20
19
|
end
|
21
20
|
end
|
@@ -3,23 +3,18 @@ arg_name 'Describe arguments to review here'
|
|
3
3
|
command :review do |c|
|
4
4
|
c.desc 'push your latest feature branch changes to your remote repo and create a pull request against the destination branch'
|
5
5
|
c.arg_name '[destination_branch] - the branch you want to merge your feature branch into'
|
6
|
+
c.flag [:t, :title], default_value: 'last commit message'
|
7
|
+
c.flag [:m, :message], default_value: 'title'
|
6
8
|
c.action do |global_options,options,args|
|
7
|
-
review_options = {
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
review_options['body'] = review_options['title']
|
17
|
-
when 1
|
18
|
-
review_options['base'] = args[0]
|
19
|
-
review_options['title'] = review_options['body'] = GitReflow.get_first_commit_message
|
20
|
-
else
|
21
|
-
review_options['title'] = review_options['body'] = GitReflow.get_first_commit_message
|
22
|
-
end
|
9
|
+
review_options = {
|
10
|
+
'base' => args[0],
|
11
|
+
'title' => global_options[:title],
|
12
|
+
'body' => global_options[:message]
|
13
|
+
}
|
14
|
+
|
15
|
+
review_options['title'] ||= GitReflow.get_first_commit_message
|
16
|
+
review_options['body'] ||= review_options['title']
|
17
|
+
|
23
18
|
GitReflow.review review_options
|
24
19
|
end
|
25
20
|
end
|
@@ -1,7 +1,9 @@
|
|
1
1
|
desc 'Setup your GitHub account'
|
2
2
|
command :setup do |c|
|
3
3
|
c.desc 'sets up your api token with GitHub'
|
4
|
+
c.switch [:l, :local], default_value: false, desc: 'setup GitReflow for the current project only'
|
5
|
+
c.switch [:e, :enterprise], default_value: false, desc: 'setup GitReflow with a Github Enterprise account'
|
4
6
|
c.action do |global_options, options, args|
|
5
|
-
GitReflow.setup
|
7
|
+
GitReflow.setup({ project_only: options[:local], enterprise: options[:enterprise] })
|
6
8
|
end
|
7
9
|
end
|
data/lib/git_reflow/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_reflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Valentino Stoll
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-10-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -60,28 +60,28 @@ dependencies:
|
|
60
60
|
requirements:
|
61
61
|
- - '='
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 0.
|
63
|
+
version: 0.6.0
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - '='
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.
|
70
|
+
version: 0.6.0
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: gli
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
75
|
- - '='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 2.1
|
77
|
+
version: 2.8.1
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - '='
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 2.1
|
84
|
+
version: 2.8.1
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: highline
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,14 +116,14 @@ dependencies:
|
|
116
116
|
requirements:
|
117
117
|
- - '='
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: 0.
|
119
|
+
version: 0.10.2
|
120
120
|
type: :runtime
|
121
121
|
prerelease: false
|
122
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
123
|
requirements:
|
124
124
|
- - '='
|
125
125
|
- !ruby/object:Gem::Version
|
126
|
-
version: 0.
|
126
|
+
version: 0.10.2
|
127
127
|
description: Git Reflow manages your git workflow.
|
128
128
|
email:
|
129
129
|
- dev@reenhanced.com
|
@@ -179,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
179
|
version: '0'
|
180
180
|
requirements: []
|
181
181
|
rubyforge_project:
|
182
|
-
rubygems_version: 2.
|
182
|
+
rubygems_version: 2.1.7
|
183
183
|
signing_key:
|
184
184
|
specification_version: 4
|
185
185
|
summary: A better git process
|