pullermann 1.4.1 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/pullermann/pullermann.rb +18 -10
- metadata +2 -2
@@ -54,6 +54,7 @@ class Pullermann
|
|
54
54
|
# Run code on all selected requests.
|
55
55
|
selected_requests.each do |request|
|
56
56
|
@request = request
|
57
|
+
@log.info "Running for request ##{@request.id}."
|
57
58
|
# GitHub always creates a merge commit for its 'Merge Button'.
|
58
59
|
# Pullermann reuses that commit to run the code on it.
|
59
60
|
switch_branch_to_merged_state
|
@@ -166,20 +167,26 @@ class Pullermann
|
|
166
167
|
end
|
167
168
|
# If it's not mergeable, we need to delete all comments of former test runs.
|
168
169
|
unless @request.content.mergeable
|
169
|
-
|
170
|
-
if @request.
|
171
|
-
|
172
|
-
|
170
|
+
# Sometimes GitHub doesn't have a proper boolean value stored.
|
171
|
+
if @request.content.mergeable.nil? && switch_branch_to_merged_state(false)
|
172
|
+
# Pull request is mergeable after all.
|
173
|
+
switch_branch_back
|
174
|
+
else
|
175
|
+
@log.info 'Pull request not auto-mergeable. Not running.'
|
176
|
+
if @request.comment
|
177
|
+
@log.info 'Deleting existing comment.'
|
178
|
+
call_github(old_comment_success?).delete_comment(@project, @request.comment.id)
|
179
|
+
end
|
180
|
+
return false
|
173
181
|
end
|
174
|
-
return false
|
175
182
|
end
|
176
183
|
if @request.comment
|
177
184
|
@log.info "Current target sha: '#{@request.target_head_sha}', pull sha: '#{@request.head_sha}'."
|
178
|
-
@log.info "Last test run target sha: '#{shas[
|
179
|
-
if self.rerun_on_source_change && (shas[
|
185
|
+
@log.info "Last test run target sha: '#{shas[2]}', pull sha: '#{shas[1]}'."
|
186
|
+
if self.rerun_on_source_change && (shas[1] != @request.head_sha)
|
180
187
|
@log.info 'Re-running due to new commit in pull request.'
|
181
188
|
return true
|
182
|
-
elsif self.rerun_on_target_change && (shas[
|
189
|
+
elsif self.rerun_on_target_change && (shas[2] != @request.target_head_sha)
|
183
190
|
@log.info 'Re-running due to new commit in target branch.'
|
184
191
|
return true
|
185
192
|
end
|
@@ -192,7 +199,7 @@ class Pullermann
|
|
192
199
|
false
|
193
200
|
end
|
194
201
|
|
195
|
-
def switch_branch_to_merged_state
|
202
|
+
def switch_branch_to_merged_state(hard = true)
|
196
203
|
# Fetch the merge-commit for the pull request.
|
197
204
|
# NOTE: This commit is automatically created by 'GitHub Merge Button'.
|
198
205
|
# FIXME: Use cheetah to pipe to @log.debug instead of that /dev/null hack.
|
@@ -200,8 +207,9 @@ class Pullermann
|
|
200
207
|
`git checkout FETCH_HEAD &> /dev/null`
|
201
208
|
unless $? == 0
|
202
209
|
@log.error 'Unable to switch to merge branch.'
|
203
|
-
abort
|
210
|
+
hard ? abort : false
|
204
211
|
end
|
212
|
+
true
|
205
213
|
end
|
206
214
|
|
207
215
|
def switch_branch_back
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pullermann
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-09-
|
14
|
+
date: 2012-09-21 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: octokit
|