git_reflow 0.3.4 → 0.3.5
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.
- data/Gemfile.lock +3 -3
- data/README.rdoc +1 -1
- data/lib/git_reflow/version.rb +1 -1
- data/lib/git_reflow.rb +32 -3
- metadata +52 -24
- checksums.yaml +0 -7
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
git_reflow (0.3.
|
4
|
+
git_reflow (0.3.5)
|
5
5
|
colorize (= 0.6.0)
|
6
6
|
github_api (= 0.10.2)
|
7
7
|
gli (= 2.8.1)
|
@@ -38,8 +38,8 @@ GEM
|
|
38
38
|
json_pure (1.8.1)
|
39
39
|
jwt (0.1.8)
|
40
40
|
multi_json (>= 1.5)
|
41
|
-
mini_portile (0.5.
|
42
|
-
multi_json (1.8.
|
41
|
+
mini_portile (0.5.1)
|
42
|
+
multi_json (1.8.4)
|
43
43
|
multi_xml (0.5.5)
|
44
44
|
multipart-post (1.2.0)
|
45
45
|
nokogiri (1.6.0)
|
data/README.rdoc
CHANGED
@@ -7,7 +7,7 @@ If your workflow looks like this:
|
|
7
7
|
2. Write great code
|
8
8
|
3. Create a pull request against master
|
9
9
|
4. Get 'lgtm' through a code review
|
10
|
-
5. Squash merge to master
|
10
|
+
5. Squash merge to master (Why is squash merging our preferred workflow? https://github.com/reenhanced/gitreflow/issues/52)
|
11
11
|
6. Delete the feature branch
|
12
12
|
|
13
13
|
Reflow will make your life easier.
|
data/lib/git_reflow/version.rb
CHANGED
data/lib/git_reflow.rb
CHANGED
@@ -45,8 +45,14 @@ module GitReflow
|
|
45
45
|
config.ssl = {:verify => false}
|
46
46
|
end
|
47
47
|
|
48
|
-
|
49
|
-
|
48
|
+
previous_authorizations = github.oauth.all.select {|auth| auth.note == "git-reflow (#{`hostname`.strip})" }
|
49
|
+
if previous_authorizations.any?
|
50
|
+
authorization = previous_authorizations.last
|
51
|
+
else
|
52
|
+
authorization = github.oauth.create scopes: ['repo'], note: "git-reflow (#{`hostname`.strip})"
|
53
|
+
end
|
54
|
+
|
55
|
+
oauth_token = authorization.token
|
50
56
|
|
51
57
|
if project_only
|
52
58
|
set_oauth_token(oauth_token, local: true)
|
@@ -116,9 +122,10 @@ module GitReflow
|
|
116
122
|
|
117
123
|
open_comment_authors = find_authors_of_open_pull_request_comments(existing_pull_request)
|
118
124
|
has_comments = has_pull_request_comments?(existing_pull_request)
|
125
|
+
status = get_build_status existing_pull_request.head.sha
|
119
126
|
|
120
127
|
# if there any comment_authors left, then they haven't given a lgtm after the last commit
|
121
|
-
if (has_comments and open_comment_authors.empty?) or options['skip_lgtm']
|
128
|
+
if ((status.nil? or status.state == "success") and has_comments and open_comment_authors.empty?) or options['skip_lgtm']
|
122
129
|
lgtm_authors = comment_authors_for_pull_request(existing_pull_request, :with => LGTM)
|
123
130
|
commit_message = "#{(existing_pull_request[:body] || get_first_commit_message)}"
|
124
131
|
puts "Merging pull request ##{existing_pull_request.number}: '#{existing_pull_request.title}', from '#{existing_pull_request.head.label}' into '#{existing_pull_request.base.label}'"
|
@@ -144,6 +151,8 @@ module GitReflow
|
|
144
151
|
else
|
145
152
|
puts "There were problems commiting your feature... please check the errors above and try again."
|
146
153
|
end
|
154
|
+
elsif status.state != "success"
|
155
|
+
puts "[#{ 'deliver halted'.colorize(:red) }] #{status.description}: #{status.target_url}"
|
147
156
|
elsif open_comment_authors.count > 0
|
148
157
|
puts "[deliver halted] You still need a LGTM from: #{open_comment_authors.join(', ')}"
|
149
158
|
else
|
@@ -280,6 +289,19 @@ module GitReflow
|
|
280
289
|
pull_request_comments(pull_request).count > 0
|
281
290
|
end
|
282
291
|
|
292
|
+
def get_build_status sha
|
293
|
+
github.repos.statuses.all(remote_user, remote_repo_name, sha).first
|
294
|
+
end
|
295
|
+
|
296
|
+
def build_color status
|
297
|
+
colorized_statuses = { pending: :yellow, success: :green, error: :red, failure: :red }
|
298
|
+
colorized_statuses[status.state.to_sym]
|
299
|
+
end
|
300
|
+
|
301
|
+
def colorized_build_description status
|
302
|
+
status.description.colorize( build_color status )
|
303
|
+
end
|
304
|
+
|
283
305
|
def find_authors_of_open_pull_request_comments(pull_request)
|
284
306
|
# first we'll gather all the authors that have commented on the pull request
|
285
307
|
pull_last_committed_at = get_commited_time(pull_request.head.sha)
|
@@ -314,6 +336,13 @@ module GitReflow
|
|
314
336
|
notices = ""
|
315
337
|
reviewed_by = comment_authors_for_pull_request(pull_request).map {|author| author.colorize(:red) }
|
316
338
|
|
339
|
+
# check for CI build status
|
340
|
+
status = get_build_status pull_request.head.sha
|
341
|
+
if status
|
342
|
+
notices << "[notice] Your build status is not successful: #{status.target_url}.\n" unless status.state == "success"
|
343
|
+
summary_data.merge!( "Build status" => colorized_build_description(status) )
|
344
|
+
end
|
345
|
+
|
317
346
|
# check for needed lgtm's
|
318
347
|
pull_comments = pull_request_comments(pull_request)
|
319
348
|
if pull_comments.reject {|comment| comment.user.login == github_user}.any?
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
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.5
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Valentino Stoll
|
@@ -10,67 +11,76 @@ authors:
|
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date:
|
14
|
+
date: 2014-03-05 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: bundler
|
17
18
|
requirement: !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
18
20
|
requirements:
|
19
|
-
- - '>='
|
21
|
+
- - ! '>='
|
20
22
|
- !ruby/object:Gem::Version
|
21
23
|
version: '0'
|
22
24
|
type: :development
|
23
25
|
prerelease: false
|
24
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
25
28
|
requirements:
|
26
|
-
- - '>='
|
29
|
+
- - ! '>='
|
27
30
|
- !ruby/object:Gem::Version
|
28
31
|
version: '0'
|
29
32
|
- !ruby/object:Gem::Dependency
|
30
33
|
name: rake
|
31
34
|
requirement: !ruby/object:Gem::Requirement
|
35
|
+
none: false
|
32
36
|
requirements:
|
33
|
-
- - '>='
|
37
|
+
- - ! '>='
|
34
38
|
- !ruby/object:Gem::Version
|
35
39
|
version: '0'
|
36
40
|
type: :development
|
37
41
|
prerelease: false
|
38
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
39
44
|
requirements:
|
40
|
-
- - '>='
|
45
|
+
- - ! '>='
|
41
46
|
- !ruby/object:Gem::Version
|
42
47
|
version: '0'
|
43
48
|
- !ruby/object:Gem::Dependency
|
44
49
|
name: rdoc
|
45
50
|
requirement: !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
46
52
|
requirements:
|
47
|
-
- - '>='
|
53
|
+
- - ! '>='
|
48
54
|
- !ruby/object:Gem::Version
|
49
55
|
version: '0'
|
50
56
|
type: :development
|
51
57
|
prerelease: false
|
52
58
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
53
60
|
requirements:
|
54
|
-
- - '>='
|
61
|
+
- - ! '>='
|
55
62
|
- !ruby/object:Gem::Version
|
56
63
|
version: '0'
|
57
64
|
- !ruby/object:Gem::Dependency
|
58
65
|
name: jeweler
|
59
66
|
requirement: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
60
68
|
requirements:
|
61
|
-
- - '>='
|
69
|
+
- - ! '>='
|
62
70
|
- !ruby/object:Gem::Version
|
63
71
|
version: '0'
|
64
72
|
type: :development
|
65
73
|
prerelease: false
|
66
74
|
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
67
76
|
requirements:
|
68
|
-
- - '>='
|
77
|
+
- - ! '>='
|
69
78
|
- !ruby/object:Gem::Version
|
70
79
|
version: '0'
|
71
80
|
- !ruby/object:Gem::Dependency
|
72
81
|
name: colorize
|
73
82
|
requirement: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
74
84
|
requirements:
|
75
85
|
- - '='
|
76
86
|
- !ruby/object:Gem::Version
|
@@ -78,6 +88,7 @@ dependencies:
|
|
78
88
|
type: :runtime
|
79
89
|
prerelease: false
|
80
90
|
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
81
92
|
requirements:
|
82
93
|
- - '='
|
83
94
|
- !ruby/object:Gem::Version
|
@@ -85,6 +96,7 @@ dependencies:
|
|
85
96
|
- !ruby/object:Gem::Dependency
|
86
97
|
name: gli
|
87
98
|
requirement: !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
88
100
|
requirements:
|
89
101
|
- - '='
|
90
102
|
- !ruby/object:Gem::Version
|
@@ -92,6 +104,7 @@ dependencies:
|
|
92
104
|
type: :runtime
|
93
105
|
prerelease: false
|
94
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
95
108
|
requirements:
|
96
109
|
- - '='
|
97
110
|
- !ruby/object:Gem::Version
|
@@ -99,48 +112,55 @@ dependencies:
|
|
99
112
|
- !ruby/object:Gem::Dependency
|
100
113
|
name: highline
|
101
114
|
requirement: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
102
116
|
requirements:
|
103
|
-
- - '>='
|
117
|
+
- - ! '>='
|
104
118
|
- !ruby/object:Gem::Version
|
105
119
|
version: '0'
|
106
120
|
type: :runtime
|
107
121
|
prerelease: false
|
108
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
109
124
|
requirements:
|
110
|
-
- - '>='
|
125
|
+
- - ! '>='
|
111
126
|
- !ruby/object:Gem::Version
|
112
127
|
version: '0'
|
113
128
|
- !ruby/object:Gem::Dependency
|
114
129
|
name: httpclient
|
115
130
|
requirement: !ruby/object:Gem::Requirement
|
131
|
+
none: false
|
116
132
|
requirements:
|
117
|
-
- - '>='
|
133
|
+
- - ! '>='
|
118
134
|
- !ruby/object:Gem::Version
|
119
135
|
version: '0'
|
120
136
|
type: :runtime
|
121
137
|
prerelease: false
|
122
138
|
version_requirements: !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
123
140
|
requirements:
|
124
|
-
- - '>='
|
141
|
+
- - ! '>='
|
125
142
|
- !ruby/object:Gem::Version
|
126
143
|
version: '0'
|
127
144
|
- !ruby/object:Gem::Dependency
|
128
145
|
name: json_pure
|
129
146
|
requirement: !ruby/object:Gem::Requirement
|
147
|
+
none: false
|
130
148
|
requirements:
|
131
|
-
- - '>='
|
149
|
+
- - ! '>='
|
132
150
|
- !ruby/object:Gem::Version
|
133
151
|
version: '0'
|
134
152
|
type: :runtime
|
135
153
|
prerelease: false
|
136
154
|
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
none: false
|
137
156
|
requirements:
|
138
|
-
- - '>='
|
157
|
+
- - ! '>='
|
139
158
|
- !ruby/object:Gem::Version
|
140
159
|
version: '0'
|
141
160
|
- !ruby/object:Gem::Dependency
|
142
161
|
name: github_api
|
143
162
|
requirement: !ruby/object:Gem::Requirement
|
163
|
+
none: false
|
144
164
|
requirements:
|
145
165
|
- - '='
|
146
166
|
- !ruby/object:Gem::Version
|
@@ -148,6 +168,7 @@ dependencies:
|
|
148
168
|
type: :runtime
|
149
169
|
prerelease: false
|
150
170
|
version_requirements: !ruby/object:Gem::Requirement
|
171
|
+
none: false
|
151
172
|
requirements:
|
152
173
|
- - '='
|
153
174
|
- !ruby/object:Gem::Version
|
@@ -182,10 +203,9 @@ files:
|
|
182
203
|
homepage: http://github.com/reenhanced/gitreflow
|
183
204
|
licenses:
|
184
205
|
- MIT
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
Please run 'git-reflow setup'
|
206
|
+
post_install_message: ! 'You need to setup your GitHub OAuth token
|
207
|
+
|
208
|
+
Please run ''git-reflow setup'''
|
189
209
|
rdoc_options:
|
190
210
|
- --title
|
191
211
|
- git_reflow
|
@@ -196,19 +216,27 @@ require_paths:
|
|
196
216
|
- lib
|
197
217
|
- lib
|
198
218
|
required_ruby_version: !ruby/object:Gem::Requirement
|
219
|
+
none: false
|
199
220
|
requirements:
|
200
|
-
- - '>='
|
221
|
+
- - ! '>='
|
201
222
|
- !ruby/object:Gem::Version
|
202
223
|
version: '0'
|
224
|
+
segments:
|
225
|
+
- 0
|
226
|
+
hash: 4495408522000953472
|
203
227
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
228
|
+
none: false
|
204
229
|
requirements:
|
205
|
-
- - '>='
|
230
|
+
- - ! '>='
|
206
231
|
- !ruby/object:Gem::Version
|
207
232
|
version: '0'
|
233
|
+
segments:
|
234
|
+
- 0
|
235
|
+
hash: 4495408522000953472
|
208
236
|
requirements: []
|
209
237
|
rubyforge_project:
|
210
|
-
rubygems_version:
|
238
|
+
rubygems_version: 1.8.23
|
211
239
|
signing_key:
|
212
|
-
specification_version:
|
240
|
+
specification_version: 3
|
213
241
|
summary: A better git process
|
214
242
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: e987226cc58b7748ddc8aeda4bb5cdf3e38df27c
|
4
|
-
data.tar.gz: 6a0d8f7e352d6cca67d0dc3c452aa67bd588e465
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 9305b7550459a3885e87582e39243f43f0b1287e5124606e0dcbfbb39473034a33fecf91b91f986874ac167793910f2d4e4fd10ac587aa2b27832dab79e702a3
|
7
|
-
data.tar.gz: 86210915b05736f6b14ee6a8c437abb877066a3166b486e231f22dc79f280372854e4de155a462640754a093157c49e2f54a4b2c2a66b3294a0c2aaf9afcd1e8
|