git_reflow 0.8.8 → 0.8.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dbb6ad0038f32929e7db34cbde9ee380bcaad851
4
- data.tar.gz: 07f77365c95b2a1586abd7f5c41e683ff2c75f10
3
+ metadata.gz: 7a0f1ca6cc67961a74a107c15f826602527d99bf
4
+ data.tar.gz: 9a6d7e72bf25fcce1ad86b1ea03e9a3da6b62a6a
5
5
  SHA512:
6
- metadata.gz: 490eedcf13742ddd4eafec6054227431ad3db58eff77ef112cf167bf0325e57a6e607632e2cd26d758b603c9fb1f7047052aeeb1d1bd0b78b1e7c390cce098db
7
- data.tar.gz: baca2ceada8961f1aa923156e9b328f1f363a9b361e312ad2452a639a761515b770ee92a786987a7bd7354d58ef34c9b7dc9906498f0dec4d015ccd19125ffdd
6
+ metadata.gz: 34047eaec41ed1b185d19b6d4066f5541c8602d528d2459aa7603865c351d33967189dfef20544cd8f4a9160794c808ad8608420ba2e4c03e1439cdcb37fba49
7
+ data.tar.gz: 6942847d01069738d31494b24e05ec247b831e9f7ce4f81ecfeff2d7954b95e1e6404186e01b3462789ce97d1ecfad05c6be480b232dd88e1b4d723a35641134
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- git_reflow (0.8.8)
4
+ git_reflow (0.8.9)
5
5
  colorize (>= 0.7.0)
6
6
  github_api (= 0.15.0)
7
7
  gli (= 2.15.0)
@@ -1,22 +1,18 @@
1
-
2
- desc 'Start will create a new feature branch and setup remote tracking'
3
- long_desc <<LONGTIME
4
- Performs the following:\n
5
- \t$ git checkout <base_branch>\n
6
- \t$ git pull origin <base_branch>\n
7
- \t$ git push origin <base_branch>:refs/heads/[new_feature_branch]\n
8
- \t$ git checkout --track -b [new_feature_branch] origin/[new_feature_branch]\n
9
- LONGTIME
10
- arg_name '[new-feature-branch-name] - name of the new feature branch'
11
- command :start do |c|
12
- c.flag [:b,:base], default_value: 'master'
13
- c.action do |global_options, options, args|
14
-
15
- if args.empty?
16
- raise "usage: git-reflow start [new-branch-name]"
17
- else
18
- GitReflow.start feature_branch: args[0], base: options[:base]
19
- end
20
-
21
- end
22
- end
1
+
2
+ desc 'Start will create a new feature branch and setup remote tracking'
3
+ long_desc <<LONGTIME
4
+ Performs the following:\n
5
+ \t$ git checkout <base_branch>\n
6
+ \t$ git pull origin <base_branch>\n
7
+ \t$ git push origin <base_branch>:refs/heads/[new_feature_branch]\n
8
+ \t$ git checkout --track -b [new_feature_branch] origin/[new_feature_branch]\n
9
+ LONGTIME
10
+ arg_name '[new-feature-branch-name] - name of the new feature branch'
11
+ command :start do |c|
12
+ c.flag [:b,:base], default_value: 'master'
13
+ c.action do |global_options, options, args|
14
+
15
+ GitReflow.start feature_branch: args[0], base: options[:base]
16
+
17
+ end
18
+ end
@@ -47,12 +47,18 @@ module GitReflow
47
47
  end
48
48
 
49
49
  def reviewers
50
- comment_authors
50
+ (comment_authors + pull_request_reviews.map(&:user).map(&:login)).uniq
51
51
  end
52
52
 
53
53
  def approvals
54
54
  pull_last_committed_at = get_committed_time(self.head.sha)
55
- comment_authors(with: self.class.approval_regex, after: pull_last_committed_at)
55
+
56
+ approved_reviewers = pull_request_reviews.select { |r| r.state == 'APPROVED' }.map(&:user).map(&:login)
57
+
58
+ (
59
+ comment_authors(with: self.class.approval_regex, after: pull_last_committed_at) +
60
+ approved_reviewers
61
+ ).uniq
56
62
  end
57
63
 
58
64
  def comments
@@ -171,6 +177,13 @@ module GitReflow
171
177
 
172
178
  private
173
179
 
180
+ def pull_request_reviews
181
+ @pull_request_reviews ||= GitReflow.git_server.connection.pull_requests.reviews.list(
182
+ user: base.label.split(':').first,
183
+ repo: GitReflow.git_server.class.remote_repo_name, number: number
184
+ )
185
+ end
186
+
174
187
  def comment_authors(with: nil, after: nil)
175
188
  comment_authors = []
176
189
 
@@ -1,3 +1,3 @@
1
1
  module GitReflow
2
- VERSION = "0.8.8"
2
+ VERSION = "0.8.9"
3
3
  end
@@ -1,59 +1,61 @@
1
- require 'git_reflow/sandbox'
2
- require 'git_reflow/git_helpers'
3
-
4
- module GitReflow
5
- module Workflow
6
- def self.included base
7
- base.extend ClassMethods
8
- end
9
-
10
- # @nodoc
11
- def self.current
12
- workflow_file = GitReflow::Config.get('reflow.workflow')
13
- if workflow_file.length > 0 and File.exists?(workflow_file)
14
- eval(File.read(workflow_file))
15
- else
16
- GitReflow::Workflows::Core
17
- end
18
- end
19
-
20
- module ClassMethods
21
- include GitReflow::Sandbox
22
- include GitReflow::GitHelpers
23
-
24
- # Creates a singleton method on the inlcuded class
25
- #
26
- # This method will take any number of keyword parameters. If @defaults keyword is provided, and the given
27
- # key(s) in the defaults are not provided as keyword parameters, then it will use the value given in the
28
- # defaults for that parameter.
29
- #
30
- # @param name [Symbol] the name of the method to create
31
- # @param defaults [Hash] keyword arguments to provide fallbacks for
32
- #
33
- # @yield [a:, b:, c:, ...] Invokes the block with an arbitrary number of keyword arguments
34
- def command(name, **params, &block)
35
- defaults = params[:defaults] || {}
36
- self.define_singleton_method(name) do |**args|
37
- args_with_defaults = {}
38
- args.each do |name, value|
39
- if "#{value}".length <= 0
40
- args_with_defaults[name] = defaults[name]
41
- else
42
- args_with_defaults[name] = value
43
- end
44
- end
45
-
46
- defaults.each do |name, value|
47
- if "#{args_with_defaults[name]}".length <= 0
48
- args_with_defaults[name] = value
49
- end
50
- end
51
-
52
- block.call(**args_with_defaults)
53
- end
54
- end
55
- end
56
- end
57
- end
58
-
59
- extend GitReflow::Workflow
1
+ require 'git_reflow/sandbox'
2
+ require 'git_reflow/git_helpers'
3
+
4
+ module GitReflow
5
+ module Workflow
6
+ def self.included base
7
+ base.extend ClassMethods
8
+ end
9
+
10
+ # @nodoc
11
+ def self.current
12
+ workflow_file = GitReflow::Config.get('reflow.workflow')
13
+ if workflow_file.length > 0 and File.exists?(workflow_file)
14
+ GitReflow.logger.debug "Using workflow: #{workflow_file}"
15
+ eval(File.read(workflow_file))
16
+ else
17
+ GitReflow.logger.debug "Using core workflow..."
18
+ GitReflow::Workflows::Core
19
+ end
20
+ end
21
+
22
+ module ClassMethods
23
+ include GitReflow::Sandbox
24
+ include GitReflow::GitHelpers
25
+
26
+ # Creates a singleton method on the inlcuded class
27
+ #
28
+ # This method will take any number of keyword parameters. If @defaults keyword is provided, and the given
29
+ # key(s) in the defaults are not provided as keyword parameters, then it will use the value given in the
30
+ # defaults for that parameter.
31
+ #
32
+ # @param name [Symbol] the name of the method to create
33
+ # @param defaults [Hash] keyword arguments to provide fallbacks for
34
+ #
35
+ # @yield [a:, b:, c:, ...] Invokes the block with an arbitrary number of keyword arguments
36
+ def command(name, **params, &block)
37
+ defaults = params[:defaults] || {}
38
+ self.define_singleton_method(name) do |**args|
39
+ args_with_defaults = {}
40
+ args.each do |name, value|
41
+ if "#{value}".length <= 0
42
+ args_with_defaults[name] = defaults[name]
43
+ else
44
+ args_with_defaults[name] = value
45
+ end
46
+ end
47
+
48
+ defaults.each do |name, value|
49
+ if "#{args_with_defaults[name]}".length <= 0
50
+ args_with_defaults[name] = value
51
+ end
52
+ end
53
+
54
+ block.call(**args_with_defaults)
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+
61
+ extend GitReflow::Workflow
@@ -0,0 +1,35 @@
1
+ {
2
+ "id": <%= id || 1 %>,
3
+ "user": {
4
+ "login": "<%= author %>",
5
+ "id": 1,
6
+ "avatar_url": "https://github.com/images/error/octocat_happy.gif",
7
+ "gravatar_id": "",
8
+ "url": "https://api.github.com/users/<%= author %>",
9
+ "html_url": "https://github.com/octocat",
10
+ "followers_url": "https://api.github.com/users/<%= author %>/followers",
11
+ "following_url": "https://api.github.com/users/<%= author %>/following{/other_user}",
12
+ "gists_url": "https://api.github.com/users/<%= author %>/gists{/gist_id}",
13
+ "starred_url": "https://api.github.com/users/<%= author %>/starred{/owner}{/repo}",
14
+ "subscriptions_url": "https://api.github.com/users/<%= author %>/subscriptions",
15
+ "organizations_url": "https://api.github.com/users/<%= author %>/orgs",
16
+ "repos_url": "https://api.github.com/users/<%= author %>/repos",
17
+ "events_url": "https://api.github.com/users/<%= author %>/events{/privacy}",
18
+ "received_events_url": "https://api.github.com/users/<%= author %>/received_events",
19
+ "type": "User",
20
+ "site_admin": false
21
+ },
22
+ "body": "<%= body || "Nice." %>",
23
+ "commit_id": "<%= commit_id || "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091"%>",
24
+ "state": "<%= state || "PENDING" %>",
25
+ "html_url": "https://github.com/Hello-World/pull/<%= pull_request_number %>#pullrequestreview-<%= id || 1 %>",
26
+ "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/<%= pull_request_number %>",
27
+ "_links": {
28
+ "html": {
29
+ "href": "https://github.com/octocat/Hello-World/pull/<%= pull_request_number %>#pullrequestreview-<%= id || 1 %>"
30
+ },
31
+ "pull_request": {
32
+ "href": "https://api.github.com/repos/octocat/Hello-World/pulls/<%= pull_request_number %>"
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,16 @@
1
+ [
2
+ <% reviews_json = [] %>
3
+ <% reviews.each_with_index do |review, index| %>
4
+ <% reviews_json << Fixture.new('pull_requests/review.json.erb',
5
+ id: index,
6
+ author: review[:author],
7
+ pull_request_number: pull_request_number,
8
+ repo_owner: repo_owner,
9
+ repo_name: repo_name,
10
+ body: review[:body] || 'Hammer time',
11
+ state: review[:state] || 'PENDING',
12
+ commit_id: review[:commit_id] || 'ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091'
13
+ ).to_s %>
14
+ <% end %>
15
+ <%= reviews_json.join(", ") %>
16
+ ]
@@ -16,6 +16,7 @@ describe GitReflow::GitServer::GitHub::PullRequest do
16
16
  let(:existing_pull_requests) { Fixture.new('pull_requests/pull_requests.json').to_json_hashie }
17
17
  let(:existing_pull_commits) { Fixture.new('pull_requests/commits.json').to_json_hashie }
18
18
  let(:comment_author) { 'octocat' }
19
+ let(:review_author) { 'octocatty' }
19
20
  let(:feature_branch_name) { existing_pull_request.head.label[/[^:]+$/] }
20
21
  let(:base_branch_name) { existing_pull_request.base.label[/[^:]+$/] }
21
22
  let(:existing_pull_comments) {
@@ -30,6 +31,12 @@ describe GitReflow::GitServer::GitHub::PullRequest do
30
31
  repo_name: repo,
31
32
  comments: [{author: comment_author}],
32
33
  pull_request_number: existing_pull_request.number).to_json_hashie }
34
+ let(:existing_pull_reviews) {
35
+ Fixture.new('pull_requests/reviews.json.erb',
36
+ repo_owner: user,
37
+ repo_name: repo,
38
+ reviews: [{author: comment_author}],
39
+ pull_request_number: existing_pull_request.number).to_json_hashie }
33
40
 
34
41
  let(:pr) { GitReflow::GitServer::GitHub::PullRequest.new(existing_pull_request) }
35
42
 
@@ -78,12 +85,14 @@ describe GitReflow::GitServer::GitHub::PullRequest do
78
85
  repo_name: repo,
79
86
  pull_request: {
80
87
  number: existing_pull_request.number,
81
- comments: [{author: comment_author}]
88
+ comments: [{author: comment_author}],
89
+ reviews: []
82
90
  },
83
91
  issue: {
84
92
  number: existing_pull_request.number,
85
93
  comments: [{author: comment_author}]
86
- })
94
+ }
95
+ )
87
96
  end
88
97
  specify { expect(subject).to eql(existing_pull_comments.to_a + existing_issue_comments.to_a) }
89
98
  end
@@ -99,7 +108,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
99
108
  repo_name: repo,
100
109
  pull_request: {
101
110
  number: existing_pull_request.number,
102
- comments: nil
111
+ comments: nil,
112
+ reviews: nil
103
113
  },
104
114
  issue: {
105
115
  number: existing_pull_request.number,
@@ -122,7 +132,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
122
132
  pull_request: {
123
133
  number: existing_pull_request.number,
124
134
  owner: existing_pull_request.user.login,
125
- comments: [{author: 'tito'}, {author: 'bobby'}, {author: 'ringo'}]
135
+ comments: [{author: 'tito'}, {author: 'bobby'}, {author: 'ringo'}],
136
+ reviews: [{author: 'nature-boy'}]
126
137
  },
127
138
  issue: {
128
139
  number: existing_pull_request.number,
@@ -130,7 +141,7 @@ describe GitReflow::GitServer::GitHub::PullRequest do
130
141
  })
131
142
  end
132
143
 
133
- specify { expect(subject).to eq(['tito', 'bobby', 'randy']) }
144
+ specify { expect(subject).to eq(['tito', 'bobby', 'randy', 'nature-boy']) }
134
145
  end
135
146
 
136
147
 
@@ -145,7 +156,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
145
156
  pull_request: {
146
157
  number: existing_pull_request.number,
147
158
  owner: existing_pull_request.head.user.login,
148
- comments: []
159
+ comments: [],
160
+ reviews: []
149
161
  })
150
162
  allow(GitReflow::GitServer::GitHub::PullRequest).to receive(:minimum_approvals).and_return("0")
151
163
  end
@@ -160,7 +172,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
160
172
  pull_request: {
161
173
  number: existing_pull_request.number,
162
174
  owner: existing_pull_request.head.user.login,
163
- comments: []
175
+ comments: [],
176
+ reviews: []
164
177
  })
165
178
  allow(GitReflow::GitServer::GitHub::PullRequest).to receive(:minimum_approvals).and_return(nil)
166
179
  allow(pr).to receive(:has_comments?).and_return(true)
@@ -178,7 +191,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
178
191
  pull_request: {
179
192
  number: existing_pull_request.number,
180
193
  owner: existing_pull_request.head.user.login,
181
- comments: []
194
+ comments: [],
195
+ reviews: []
182
196
  })
183
197
  allow(GitReflow::GitServer::GitHub::PullRequest).to receive(:minimum_approvals).and_return("")
184
198
  allow(pr).to receive(:has_comments?).and_return(true)
@@ -196,7 +210,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
196
210
  pull_request: {
197
211
  number: existing_pull_request.number,
198
212
  owner: existing_pull_request.head.user.login,
199
- comments: []
213
+ comments: [],
214
+ reviews: []
200
215
  })
201
216
  allow(GitReflow::GitServer::GitHub::PullRequest).to receive(:minimum_approvals).and_return("")
202
217
  allow(pr).to receive(:has_comments?).and_return(true)
@@ -269,7 +284,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
269
284
  pull_request: {
270
285
  number: existing_pull_request.number,
271
286
  owner: existing_pull_request.head.user.login,
272
- comments: []
287
+ comments: [],
288
+ reviews: []
273
289
  })
274
290
  end
275
291
 
@@ -284,7 +300,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
284
300
  pull_request: {
285
301
  number: existing_pull_request.number,
286
302
  owner: existing_pull_request.head.user.login,
287
- comments: [{author: 'tito', body: 'This is some funky stuff'}]
303
+ comments: [{author: 'tito', body: 'This is some funky stuff'}],
304
+ reviews: []
288
305
  })
289
306
  end
290
307
 
@@ -299,7 +316,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
299
316
  pull_request: {
300
317
  number: existing_pull_request.number,
301
318
  owner: existing_pull_request.head.user.login,
302
- comments: [{author: 'tito', body: 'LGTM'}]
319
+ comments: [{author: 'tito', body: 'LGTM'}],
320
+ reviews: []
303
321
  })
304
322
  end
305
323
 
@@ -320,7 +338,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
320
338
  pull_request: {
321
339
  number: existing_pull_request.number,
322
340
  owner: existing_pull_request.head.user.login,
323
- comments: [{author: 'tito', body: 'LGTM', created_at: Chronic.parse('1 minute ago')}]
341
+ comments: [{author: 'tito', body: 'LGTM', created_at: Chronic.parse('1 minute ago')}],
342
+ reviews: []
324
343
  })
325
344
  end
326
345
 
@@ -336,7 +355,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
336
355
  pull_request: {
337
356
  number: existing_pull_request.number,
338
357
  owner: existing_pull_request.head.user.login,
339
- comments: [{author: 'tito', body: 'LGTM'}, {author: 'ringo', body: 'Needs more cowbell.'}]
358
+ comments: [{author: 'tito', body: 'LGTM'}],
359
+ reviews: [{author: 'ringo', state: 'CHANGES_REQUESTED'}]
340
360
  })
341
361
  end
342
362
 
@@ -351,7 +371,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
351
371
  pull_request: {
352
372
  number: existing_pull_request.number,
353
373
  owner: existing_pull_request.head.user.login,
354
- comments: [{author: 'tito', body: 'lgtm'}, {author: 'ringo', body: ':+1:'}]
374
+ comments: [{author: 'tito', body: 'lgtm'}, {author: 'ringo', body: ':+1:'}],
375
+ reviews: []
355
376
  })
356
377
 
357
378
  allow(GitReflow::GitServer::GitHub::PullRequest).to receive(:approval_regex).and_return(/(?i-mx:lgtm|looks good to me|:\+1:|:thumbsup:|:shipit:)/)
@@ -361,6 +382,22 @@ describe GitReflow::GitServer::GitHub::PullRequest do
361
382
  specify { expect(subject).to eq(['tito', 'ringo']) }
362
383
  end
363
384
 
385
+ context "2 approvals including reviews" do
386
+ before do
387
+ FakeGitHub.new(
388
+ repo_owner: user,
389
+ repo_name: repo,
390
+ pull_request: {
391
+ number: existing_pull_request.number,
392
+ owner: existing_pull_request.head.user.login,
393
+ comments: [{author: 'tito', body: 'lgtm'}],
394
+ reviews: [{author: 'nature-boy', state: 'APPROVED'}]
395
+ })
396
+ end
397
+
398
+ specify { expect(subject).to eq(['tito', 'nature-boy']) }
399
+ end
400
+
364
401
  context "but a new commit has been introduced" do
365
402
  before do
366
403
  FakeGitHub.new(
@@ -376,7 +413,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
376
413
  pull_request: {
377
414
  number: existing_pull_request.number,
378
415
  owner: existing_pull_request.head.user.login,
379
- comments: [{author: 'tito', body: 'lgtm', created_at: Chronic.parse('1 minute ago')}, {author: 'ringo', body: ':+1:', created_at: Chronic.parse('1 minute ago')}]
416
+ comments: [{author: 'tito', body: 'lgtm', created_at: Chronic.parse('1 minute ago')}, {author: 'ringo', body: ':+1:', created_at: Chronic.parse('1 minute ago')}],
417
+ reviews: []
380
418
  })
381
419
  end
382
420
 
@@ -396,7 +434,8 @@ describe GitReflow::GitServer::GitHub::PullRequest do
396
434
  pull_request: {
397
435
  number: existing_pull_request.number,
398
436
  owner: existing_pull_request.head.user.login,
399
- comments: [{author: 'tito', body: 'lgtm'}, {author: 'ringo', body: 'Cha cha cha'}]
437
+ comments: [{author: 'tito', body: 'lgtm'}, {author: 'ringo', body: 'Cha cha cha'}],
438
+ reviews: []
400
439
  })
401
440
  end
402
441
 
@@ -6,13 +6,5 @@ describe GitReflow::Logger do
6
6
  logger = described_class.new
7
7
  expect(logger.instance_variable_get("@logdev").dev.path).to eq GitReflow::Logger::DEFAULT_LOG_FILE
8
8
  end
9
-
10
- context "when a log path is configured " do
11
- it "initializes a new logger with the given path" do
12
- allow(GitReflow::Config).to receive(:get).with("reflow.log_file_path").and_return("kenny-loggins.log")
13
- logger = described_class.new
14
- expect(logger.instance_variable_get("@logdev").dev.path).to eq "kenny-loggins.log"
15
- end
16
- end
17
9
  end
18
10
  end
@@ -4,7 +4,7 @@ RSpec.describe GitReflow::Sandbox do
4
4
  describe ".run" do
5
5
  it "is blocking by default when the command exits with a failure" do
6
6
  allow(GitReflow::Sandbox).to receive(:run).and_call_original
7
- expect { GitReflow::Sandbox.run("ls wtf") }.to raise_error SystemExit, "\`ls wtf\` failed to run."
7
+ expect { GitReflow::Sandbox.run("ls wtf") }.to raise_error SystemExit, "\"ls wtf\" failed to run."
8
8
  end
9
9
 
10
10
  it "when blocking is flagged off, the command exits silently" do
@@ -21,7 +21,7 @@ class FakeGitHub
21
21
  # comments: [{author: comment_author}]
22
22
  # })
23
23
  #
24
- def initialize(repo_owner: nil, repo_name: nil, pull_request: {}, issue: {}, commits: [])
24
+ def initialize(repo_owner: nil, repo_name: nil, pull_request: {}, issue: {}, commits: [], reviews: [])
25
25
  raise "FakeGitHub#new: repo_owner AND repo_name keywords are required" unless repo_owner and repo_name
26
26
 
27
27
  self.repo_owner = repo_owner
@@ -30,6 +30,7 @@ class FakeGitHub
30
30
  stub_github_request(:pull_request, pull_request) if pull_request
31
31
  stub_github_request(:issue, issue) if issue
32
32
  stub_github_request(:commits, commits) if commits.any?
33
+ stub_github_request(:reviews, reviews) if reviews.any?
33
34
 
34
35
  if pull_request and (issue.none? or !issue[:comments])
35
36
  stub_github_request(:issue, pull_request.merge({comments: []}))
@@ -118,6 +119,20 @@ class FakeGitHub
118
119
  headers: {content_type: "application/json; charset=utf-8"})
119
120
  end
120
121
 
122
+ # Stubbing pull request reviews
123
+ if object_data[:reviews]
124
+ stub_request(:get, %r{/repos/#{self.repo_owner}/#{self.repo_name}/pulls/#{object_data[:number] || 1}/reviews}).
125
+ with(query: {'access_token' => 'a1b2c3d4e5f6g7h8i9j0'}).
126
+ to_return(body: Fixture.new('pull_requests/reviews.json.erb',
127
+ repo_owner: self.repo_owner,
128
+ repo_name: self.repo_name,
129
+ reviews: object_data[:reviews],
130
+ pull_request_number: object_data[:number] || 1,
131
+ body: object_data[:body] || 'Hammer time').to_s,
132
+ status: 200,
133
+ headers: {content_type: "application/json; charset=utf-8"})
134
+ end
135
+
121
136
  # Stubbing pull request commits
122
137
  #stub_get(%r{#{GitReflow::GitServer::GitHub.api_endpoint}/repos/#{user}/#{repo}/pulls/#{existing_pull_request.number}/commits}).
123
138
  # with(query: {"access_token" => "a1b2c3d4e5f6g7h8i9j0"}).
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.8.8
4
+ version: 0.8.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Valentino Stoll
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2017-04-24 00:00:00.000000000 Z
13
+ date: 2017-04-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: appraisal
@@ -307,6 +307,8 @@ files:
307
307
  - spec/fixtures/pull_requests/pull_request.json.erb
308
308
  - spec/fixtures/pull_requests/pull_request_exists_error.json
309
309
  - spec/fixtures/pull_requests/pull_requests.json
310
+ - spec/fixtures/pull_requests/review.json.erb
311
+ - spec/fixtures/pull_requests/reviews.json.erb
310
312
  - spec/fixtures/repositories/commit.json
311
313
  - spec/fixtures/repositories/commit.json.erb
312
314
  - spec/fixtures/repositories/commits.json.erb
@@ -377,6 +379,8 @@ test_files:
377
379
  - spec/fixtures/pull_requests/pull_request.json.erb
378
380
  - spec/fixtures/pull_requests/pull_request_exists_error.json
379
381
  - spec/fixtures/pull_requests/pull_requests.json
382
+ - spec/fixtures/pull_requests/review.json.erb
383
+ - spec/fixtures/pull_requests/reviews.json.erb
380
384
  - spec/fixtures/repositories/commit.json
381
385
  - spec/fixtures/repositories/commit.json.erb
382
386
  - spec/fixtures/repositories/commits.json.erb