git_reflow 0.8.3 → 0.8.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,547 +1,38 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe GitReflow do
4
- let(:git_server) { GitReflow::GitServer::GitHub.new {} }
5
- let!(:github) { Github.new basic_auth: "#{user}:#{password}" }
6
- let(:user) { 'reenhanced' }
7
- let(:password) { 'shazam' }
8
- let(:oauth_token_hash) { Hashie::Mash.new({ token: 'a1b2c3d4e5f6g7h8i9j0', note: 'hostname.local git-reflow'}) }
9
- let(:repo) { 'repo' }
10
- let(:base_branch) { 'master' }
11
- let(:feature_branch) { 'new-feature' }
12
- let(:enterprise_site) { 'https://github.reenhanced.com' }
13
- let(:enterprise_api) { 'https://github.reenhanced.com' }
14
- let(:hostname) { 'hostname.local' }
15
4
 
16
- let(:github_authorizations) { Github::Client::Authorizations.new }
17
- let(:existing_pull_requests) { Fixture.new('pull_requests/pull_requests.json').to_json_hashie }
18
- let(:existing_pull_request) { GitReflow::GitServer::GitHub::PullRequest.new existing_pull_requests.first }
5
+ describe ".default_editor" do
6
+ subject { GitReflow.default_editor }
19
7
 
20
- before do
21
-
22
- # Stubbing out numlgtm value to test all reviewers in gitconfig file
23
- allow(GitReflow::Config).to receive(:get).with("constants.minimumApprovals").and_return('')
24
- allow(GitReflow::Config).to receive(:get).and_call_original
25
-
26
- allow_any_instance_of(HighLine).to receive(:ask) do |terminal, question|
27
- values = {
28
- "Please enter your GitHub username: " => user,
29
- "Please enter your GitHub password (we do NOT store this): " => password,
30
- "Please enter your Enterprise site URL (e.g. https://github.company.com):" => enterprise_site,
31
- "Please enter your Enterprise API endpoint (e.g. https://github.company.com/api/v3):" => enterprise_api,
32
- "Would you like to push this branch to your remote repo and cleanup your feature branch? " => 'yes',
33
- "Would you like to open it in your browser?" => 'n',
34
- "This is the current status of your Pull Request. Are you sure you want to deliver? " => 'yes',
35
- "Please enter your delivery commit title: (leaving blank will use default)" => 'title',
36
- "Please enter your delivery commit message: (leaving blank will use default)" => 'message'
37
- }
38
- return_value = values[question] || values[terminal]
39
- question = ""
40
- return_value
41
- end
42
- end
43
-
44
- context :status do
45
- subject { GitReflow.status(base_branch) }
46
-
47
- before do
48
- allow(GitReflow).to receive(:current_branch).and_return(feature_branch)
49
- allow(GitReflow).to receive(:destination_branch).and_return(base_branch)
50
-
51
- allow(Github::Client).to receive(:new).and_return(github)
52
- allow(GitReflow).to receive(:git_server).and_return(git_server)
53
- allow(git_server).to receive(:connection).and_return(github)
54
- allow(git_server).to receive(:get_build_status).and_return(Struct.new(:state, :description, :target_url).new())
8
+ context "when the environment has EDITOR set" do
9
+ before { allow(ENV).to receive(:[]).with('EDITOR').and_return('emacs') }
10
+ specify { expect( subject ).to eql('emacs') }
55
11
  end
56
12
 
57
- context 'with no existing pull request' do
58
- before { allow(git_server).to receive(:find_open_pull_request).with({from: feature_branch, to: base_branch}).and_return(nil) }
59
- it { expect{ subject }.to have_said "\nNo pull request exists for #{feature_branch} -> #{base_branch}", :notice }
60
- it { expect{ subject }.to have_said "Run 'git reflow review #{base_branch}' to start the review process", :notice }
61
- end
62
-
63
- context 'with an existing pull request' do
64
- before do
65
- allow(git_server).to receive(:find_open_pull_request).with({from: feature_branch, to: base_branch}).and_return(existing_pull_request)
66
- expect(existing_pull_request).to receive(:display_pull_request_summary)
67
- end
68
-
69
- it 'displays a summary of the pull request and asks to open it in the browser' do
70
- expect{ subject }.to have_said "Here's the status of your review:"
71
- end
13
+ context "when the environment has no EDITOR set" do
14
+ before { allow(ENV).to receive(:[]).with('EDITOR').and_return(nil) }
15
+ specify { expect( subject ).to eql('vi') }
72
16
  end
73
17
  end
74
18
 
75
- # Github Response specs thanks to:
76
- # https://github.com/peter-murach/github/blob/master/spec/github/pull_requests_spec.rb
77
- context :review do
78
- let(:branch) { 'new-feature' }
79
- let(:inputs) {
80
- {
81
- :title => "Amazing new feature",
82
- :body => "Please pull this in!",
83
- :head => "reenhanced:new-feature",
84
- :base => "master",
85
- :state => "open"
86
- }
87
- }
88
-
89
- let(:github) do
90
- allow_any_instance_of(GitReflow::GitServer::GitHub::PullRequest).to receive(:build).and_return(Struct.new(:state, :description, :url).new)
91
- stub_github_with({
92
- :user => user,
93
- :password => password,
94
- :repo => repo,
95
- :branch => branch,
96
- :pull => Hashie::Mash.new(inputs)
97
- })
98
- end
99
-
100
- subject { GitReflow.review inputs }
101
-
102
- it "fetches the latest changes to the destination branch" do
103
- expect(GitReflow).to receive(:fetch_destination).with(inputs[:base])
104
- expect(github).to receive(:find_open_pull_request).and_return(nil)
105
- allow(github).to receive(:create_pull_request).and_return(existing_pull_request)
106
- subject
107
- end
108
-
109
- it "pushes the latest current branch to the origin repo" do
110
- expect(GitReflow).to receive(:push_current_branch)
111
- expect(github).to receive(:find_open_pull_request).and_return(nil)
112
- allow(github).to receive(:create_pull_request).and_return(existing_pull_request)
113
- subject
114
- end
115
-
116
- context "pull request doesn't exist" do
117
- before do
118
- allow(github).to receive(:find_open_pull_request).and_return(nil)
119
- end
120
-
121
- it "successfully creates a pull request if I do not provide one" do
122
- allow(existing_pull_request).to receive(:title).and_return(inputs[:title])
123
- expect(github).to receive(:create_pull_request).with(inputs.except(:state).symbolize_keys).and_return(existing_pull_request)
124
- expect { subject }.to have_said "Successfully created pull request #1: #{inputs[:title]}\nPull Request URL: https://github.com/#{user}/#{repo}/pulls/1\n", :success
125
- end
126
-
127
- context "when providing only a title" do
128
- before do
129
- inputs[:body] = nil
130
- allow(existing_pull_request).to receive(:title).and_return(inputs[:title])
131
- end
132
-
133
- it "successfully creates a pull request with only the provided title" do
134
- expect(github).to receive(:create_pull_request).with(inputs.except(:state).symbolize_keys).and_return(existing_pull_request)
135
- expect { subject }.to have_said "Successfully created pull request #1: #{inputs[:title]}\nPull Request URL: https://github.com/#{user}/#{repo}/pulls/1\n", :success
136
- end
137
- end
138
-
139
- context "when providing only a message" do
140
- before do
141
- inputs[:title] = nil
142
- allow(existing_pull_request).to receive(:title).and_return(inputs[:body])
143
- end
144
-
145
- it "successfully creates a pull request with only the provided title" do
146
- expected_options = inputs.except(:state)
147
- expected_options[:title] = inputs[:body]
148
- expect(github).to receive(:create_pull_request).with(expected_options.symbolize_keys).and_return(existing_pull_request)
149
- expect { subject }.to have_said "Successfully created pull request #1: #{expected_options[:title]}\nPull Request URL: https://github.com/#{user}/#{repo}/pulls/1\n", :success
150
- end
151
- end
152
- end
153
-
154
- context "pull request exists" do
155
- before do
156
- allow(GitReflow).to receive(:push_current_branch)
157
- github_error = Github::Error::UnprocessableEntity.new( eval(Fixture.new('pull_requests/pull_request_exists_error.json').to_s) )
158
- expect(github).to receive(:find_open_pull_request).and_return(existing_pull_request)
159
- allow(existing_pull_request).to receive(:display_pull_request_summary)
160
- end
161
-
162
- subject { GitReflow.review inputs }
163
-
164
- it "displays a pull request summary for the existing pull request" do
165
- expect(existing_pull_request).to receive(:display_pull_request_summary)
166
- subject
167
- end
168
- end
169
- end
170
-
171
- context :deliver do
172
- let(:branch) { 'new-feature' }
173
- let(:inputs) {
174
- {
175
- :title => "new-feature",
176
- :message => "message",
177
- :head => "reenhanced:new-feature"
178
- }
179
- }
180
- let(:merge_response) { {} }
181
- let!(:github) do
182
- allow_any_instance_of(GitReflow::GitServer::GitHub::PullRequest).to receive(:build).and_return(Struct.new(:state, :description, :url).new)
183
- stub_github_with({
184
- :user => user,
185
- :password => password,
186
- :repo => repo,
187
- :branch => branch,
188
- :pull => existing_pull_request
189
- })
190
- end
19
+ describe ".git_server" do
20
+ subject { GitReflow.git_server }
191
21
 
192
22
  before do
193
- allow(GitReflow::GitServer::GitHub).to receive_message_chain(:connection, :pull_requests, :merge).and_return(merge_response)
194
- allow(merge_response).to receive(:success?).and_return(true)
195
-
196
- module Kernel
197
- def system(cmd)
198
- "call #{cmd}"
199
- end
200
- end
23
+ allow(GitReflow::Config).to receive(:get).with('reflow.git-server').and_return('GitHub ')
201
24
  end
202
25
 
203
- subject { GitReflow.deliver inputs }
204
-
205
- it "looks for a pull request matching the feature branch and destination branch" do
206
- expect(github).to receive(:find_open_pull_request).with(from: branch, to: 'master')
26
+ it "attempts to connect to the provider" do
27
+ expect(GitReflow::GitServer).to receive(:connect).with(provider: 'GitHub', silent: true)
207
28
  subject
208
29
  end
209
-
210
- context "and a base branch is provided" do
211
- let(:inputs) { { title: "new-feature", message: "message", head: "reenhanced:new-feature", base: 'live'}}
212
- it "looks for a pull request with the custom base branch" do
213
- expect(github).to receive(:find_open_pull_request).with(from: branch, to: inputs[:base])
214
- subject
215
- end
216
- end
217
-
218
- context "and pull request exists for the feature branch to the destination branch" do
219
- before do
220
- allow(github).to receive(:build_status).and_return(build_status)
221
- allow(github).to receive(:find_open_pull_request).and_return(existing_pull_request)
222
- allow(existing_pull_request).to receive(:has_comments?).and_return(true)
223
- allow(GitReflow::Config).to receive(:get).with("reflow.always-deliver").and_return("true")
224
- allow(GitReflow).to receive(:status)
225
-
226
- allow(github).to receive(:reviewers).and_return(['codenamev'])
227
- end
228
-
229
- context 'and build status is not "success"' do
230
- let(:build_status) { Hashie::Mash.new({ state: 'failure', description: 'Build resulted in failed test(s)' }) }
231
-
232
- before do
233
- allow(existing_pull_request).to receive(:build).and_return(build_status)
234
- allow(existing_pull_request).to receive(:has_comments?).and_return(true)
235
- end
236
-
237
- it "halts delivery and notifies user of a failed build" do
238
- expect { subject }.to have_said "#{build_status.description}: #{build_status.target_url}", :deliver_halted
239
- end
240
-
241
- context 'forces a merge' do
242
- let(:lgtm_comment_authors) { ['nhance'] }
243
- before do
244
- inputs[:skip_lgtm] = true
245
- allow(existing_pull_request).to receive(:reviewers_pending_response).and_return([])
246
- allow(existing_pull_request).to receive(:approvals).and_return(lgtm_comment_authors)
247
- allow(GitReflow).to receive(:append_to_squashed_commit_message)
248
- allow(GitReflow::Config).to receive(:get).with("reflow.always-cleanup").and_return("true")
249
- end
250
-
251
- it "checks out the base branch" do
252
- expect { subject }.to have_run_command("git checkout master")
253
- end
254
-
255
- it "pulls changes from remote repo to local branch" do
256
- expect { subject }.to have_run_command("git pull origin master")
257
- end
258
-
259
- it "pushes the changes to remote repo" do
260
- expect { subject }.to have_run_command("git push origin master")
261
- end
262
-
263
- it "deletes the remote feature branch" do
264
- expect { subject }.to have_run_command("git push origin :new-feature")
265
- end
266
-
267
- it "deletes the local feature branch" do
268
- expect { subject }.to have_run_command("git branch -D new-feature")
269
- end
270
-
271
- it "forces a merge" do
272
- expect { subject }.to have_said "Merging pull request ##{existing_pull_request.number}: '#{existing_pull_request.title}', from '#{existing_pull_request.head.label}' into '#{existing_pull_request.base.label}'", :notice
273
- expect { subject }.to have_said "Pull request ##{existing_pull_request.number} successfully merged.", :success
274
- end
275
- end
276
- end
277
-
278
- context 'and build status is nil' do
279
- let(:build_status) { nil }
280
- let(:lgtm_comment_authors) { ['nhance'] }
281
-
282
- before do
283
- # stubbing unrelated results so we can just test that it made it insdide the conditional block
284
- inputs[:skip_lgtm] = false
285
- allow(existing_pull_request).to receive(:reviewers_pending_response).and_return([])
286
- allow(existing_pull_request).to receive(:approvals).and_return(lgtm_comment_authors)
287
- end
288
-
289
- it "ignores build status when not setup" do
290
- expect { subject }.to have_said "Pull request ##{existing_pull_request.number} successfully merged.", :success
291
- end
292
- end
293
-
294
- context 'and build status is "success"' do
295
- let(:build_status) { Hashie::Mash.new({ state: 'success' }) }
296
-
297
- context 'and has comments' do
298
- before do
299
- inputs[:skip_lgtm] = false
300
- allow(existing_pull_request).to receive(:has_comments?).and_return(true)
301
- end
302
-
303
- context 'but there is a LGTM' do
304
- let(:lgtm_comment_authors) { ['nhance'] }
305
- before do
306
- allow(existing_pull_request).to receive(:approvals).and_return(lgtm_comment_authors)
307
- allow(existing_pull_request).to receive(:reviewers_pending_response).and_return([])
308
- end
309
-
310
- context "build status failure, testing description and target_url" do
311
- let(:build_status) { Hashie::Mash.new({ state: 'failure', description: 'Build resulted in failed test(s)', target_url: "www.error.com" }) }
312
-
313
- before do
314
- allow(existing_pull_request).to receive(:build).and_return(build_status)
315
- allow(existing_pull_request).to receive(:reviewers).and_return(lgtm_comment_authors)
316
- allow(existing_pull_request).to receive(:has_comments?).and_return(true)
317
- end
318
-
319
- it "halts delivery and notifies user of a failed build" do
320
- expect { subject }.to have_said "#{build_status.description}: #{build_status.url}", :deliver_halted
321
- end
322
- end
323
-
324
- context "build status nil" do
325
- let(:build_status) { nil }
326
-
327
- before do
328
- allow(github).to receive(:build).and_return(build_status)
329
- allow(existing_pull_request).to receive(:reviewers_pending_response).and_return([])
330
- allow(existing_pull_request).to receive(:has_comments_or_approvals).and_return(true)
331
- end
332
-
333
- it "commits the changes if the build status is nil but has comments/approvals and no pending response" do
334
- expect{ subject }.to have_said "Pull request ##{existing_pull_request.number} successfully merged.", :success
335
- end
336
- end
337
-
338
- context "and the pull request has no body" do
339
- let(:first_commit_message) { "We'll do it live." }
340
-
341
- before do
342
- existing_pull_request.description = ''
343
- allow(github).to receive(:find_open_pull_request).and_return(existing_pull_request)
344
- allow(GitReflow).to receive(:get_first_commit_message).and_return(first_commit_message)
345
- allow(existing_pull_request).to receive(:approvals).and_return(lgtm_comment_authors)
346
- end
347
- end
348
-
349
- it "notifies user of the merge and performs it" do
350
- expect { subject }.to have_said "Merging pull request ##{existing_pull_request.number}: '#{existing_pull_request.title}', from '#{existing_pull_request.head.label}' into '#{existing_pull_request.base.label}'", :notice
351
- end
352
-
353
- it "commits the changes for the squash merge" do
354
- expect{ subject }.to have_said "Pull request ##{existing_pull_request.number} successfully merged.", :success
355
- end
356
-
357
- context "and cleaning up feature branch" do
358
- before do
359
- allow_any_instance_of(HighLine).to receive(:ask) do |terminal, question|
360
- values = {
361
- "Please enter your GitHub username: " => user,
362
- "Please enter your GitHub password (we do NOT store this): " => password,
363
- "Please enter your Enterprise site URL (e.g. https://github.company.com):" => enterprise_site,
364
- "Please enter your Enterprise API endpoint (e.g. https://github.company.com/api/v3):" => enterprise_api,
365
- "Would you like to push this branch to your remote repo and cleanup your feature branch? " => 'yes',
366
- "Would you like to open it in your browser?" => 'no',
367
- "This is the current status of your Pull Request. Are you sure you want to deliver? " => 'y',
368
- "Please enter your delivery commit title: (leaving blank will use default)" => 'title',
369
- "Please enter your delivery commit message: (leaving blank will use default)" => 'message'
370
- }
371
- return_value = values[question] || values[terminal]
372
- question = ""
373
- return_value
374
- end
375
- end
376
-
377
- context "not always" do
378
- before do
379
- allow(GitReflow::Config).to receive(:get).with("reflow.always-cleanup").and_return("false")
380
- end
381
-
382
- it "checks out the base branch" do
383
- expect { subject }.to have_run_command("git checkout master")
384
- end
385
-
386
- it "pulls changes from remote repo to local branch" do
387
- expect { subject }.to have_run_command("git pull origin master")
388
- end
389
-
390
- it "deletes the remote feature branch" do
391
- expect { subject }.to have_run_command("git push origin :new-feature")
392
- end
393
-
394
- it "deletes the local feature branch" do
395
- expect { subject }.to have_run_command("git branch -D new-feature")
396
- end
397
- end
398
-
399
- context "always" do
400
- before do
401
- allow(GitReflow::Config).to receive(:get).with("reflow.always-cleanup").and_return("true")
402
- end
403
-
404
- it "checks out the base branch" do
405
- expect { subject }.to have_run_command("git checkout master")
406
- end
407
-
408
- it "pulls changes from remote repo to local branch" do
409
- expect { subject }.to have_run_command("git pull origin master")
410
- end
411
-
412
- it "deletes the remote feature branch" do
413
- expect { subject }.to have_run_command("git push origin :new-feature")
414
- end
415
-
416
- it "deletes the local feature branch" do
417
- expect { subject }.to have_run_command("git branch -D new-feature")
418
- end
419
- end
420
-
421
- end
422
-
423
- context "and not cleaning up feature branch" do
424
- before do
425
- allow_any_instance_of(HighLine).to receive(:ask) do |terminal, question|
426
- values = {
427
- "Please enter your GitHub username: " => user,
428
- "Please enter your GitHub password (we do NOT store this): " => password,
429
- "Please enter your Enterprise site URL (e.g. https://github.company.com):" => enterprise_site,
430
- "Please enter your Enterprise API endpoint (e.g. https://github.company.com/api/v3):" => enterprise_api,
431
- "Would you like to push this branch to your remote repo and cleanup your feature branch? " => 'no',
432
- "Would you like to open it in your browser?" => 'no',
433
- "This is the current status of your Pull Request. Are you sure you want to deliver? " => 'y',
434
- "Please enter your delivery commit title: (leaving blank will use default)" => 'title',
435
- "Please enter your delivery commit message: (leaving blank will use default)" => 'message'
436
- }
437
- return_value = values[question] || values[terminal]
438
- question = ""
439
- return_value
440
- end
441
- end
442
-
443
- it "does checkout the local base branch" do
444
- expect { subject }.to have_run_command("git checkout master")
445
- end
446
-
447
- it "does update the local repo with the new squash merge" do
448
- expect { subject }.to have_run_command('git pull origin master')
449
- end
450
-
451
- it "doesn't delete the feature branch on the remote repo" do
452
- expect { subject }.to_not have_run_command('git push origin :new-feature')
453
- end
454
-
455
- it "doesn't delete the local feature branch" do
456
- expect { subject }.to_not have_run_command('git branch -D new-feature')
457
- end
458
-
459
- it "provides instructions to undo the steps taken" do
460
- expect { subject }.to have_said("To reset and go back to your branch run \`git reset --hard origin/master && git checkout new-feature\`")
461
- end
462
- end
463
- end
464
-
465
- context 'but there are still unaddressed comments' do
466
- let(:open_comment_authors) { ['nhance', 'codenamev'] }
467
- before { allow(existing_pull_request).to receive(:reviewers_pending_response).and_return(open_comment_authors) }
468
- it "notifies the user to get their code reviewed" do
469
- expect { subject }.to have_said "You still need a LGTM from: #{open_comment_authors.join(', ')}", :deliver_halted
470
- end
471
- end
472
- end
473
-
474
- context 'but has no comments' do
475
- before do
476
- allow(existing_pull_request).to receive(:has_comments?).and_return(false)
477
- allow(existing_pull_request).to receive(:approvals).and_return([])
478
- allow(existing_pull_request).to receive(:reviewers_pending_response).and_return([])
479
- end
480
-
481
- it "notifies the user to get their code reviewed" do
482
- expect { subject }.to have_said "Your code has not been reviewed yet.", :deliver_halted
483
- end
484
- end
485
-
486
- it "successfully finds a pull request for the current feature branch" do
487
- allow(existing_pull_request).to receive(:good_to_merge?).and_return(true)
488
- allow(existing_pull_request).to receive(:approvals).and_return(["Simon"])
489
- allow(existing_pull_request).to receive(:title).and_return(inputs[:title])
490
- expect { subject }.to have_said "Merging pull request #1: 'new-feature', from 'new-feature' into 'master'", :notice
491
- end
492
-
493
- it "merges and squashes the feature branch into the master branch" do
494
- allow(existing_pull_request).to receive(:good_to_merge?).and_return(true)
495
- allow(existing_pull_request).to receive(:approvals).and_return(["Simon"])
496
- allow(existing_pull_request).to receive(:title).and_return(inputs[:title])
497
- expect(existing_pull_request).to receive(:merge!).and_return(true)
498
- subject
499
- end
500
- end
501
- end
502
-
503
- context "and no pull request exists for the feature branch to the destination branch" do
504
- before { allow(github).to receive(:find_open_pull_request).and_return(nil) }
505
-
506
- it "notifies the user of a missing pull request" do
507
- expect { subject }.to have_said "No pull request exists for #{user}:#{branch}\nPlease submit your branch for review first with \`git reflow review\`", :deliver_halted
508
- end
509
- end
510
30
  end
511
31
 
512
- context ".deploy(destination)" do
513
- let(:deploy_command) { "bundle exec cap #{destination} deploy" }
514
- subject { GitReflow.deploy(destination) }
515
-
516
- before do
517
- stub_command_line_inputs({
518
- "Enter the command you use to deploy to #{destination} (leaving blank will skip deployment)" => "bundle exec cap #{destination} deploy"
519
- })
520
- end
521
-
522
- context "staging" do
523
- let(:destination) { "staging" }
524
-
525
- it "sets the local git-config for reflow.deploy-to-staging-command" do
526
- expect(GitReflow::Config).to receive(:set).with('reflow.deploy-to-staging-command', deploy_command, local: true)
527
- subject
528
- end
529
-
530
- it "runs the staging deploy command" do
531
- expect { subject }.to have_run_command(deploy_command)
532
- end
533
- end
534
-
535
- context "production" do
536
- let(:destination) { "production" }
537
-
538
- it "sets the local git-config for reflow.deploy-to-staging-command" do
539
- expect(GitReflow::Config).to receive(:set).with('reflow.deploy-to-production-command', deploy_command, local: true)
540
- subject
541
- end
542
-
543
- it "runs the staging deploy command" do
544
- expect { subject }.to have_run_command(deploy_command)
32
+ context "aliases workflow commands" do
33
+ %w{deliver refresh review setup stage start status}.each do |command|
34
+ it "aliases the command to the workflow" do
35
+ expect( subject.respond_to?(command.to_sym) ).to be_truthy
545
36
  end
546
37
  end
547
38
  end
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.3
4
+ version: 0.8.4
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: 2016-08-04 00:00:00.000000000 Z
13
+ date: 2016-08-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: appraisal
@@ -208,6 +208,26 @@ dependencies:
208
208
  - - '='
209
209
  - !ruby/object:Gem::Version
210
210
  version: 0.14.0
211
+ - !ruby/object:Gem::Dependency
212
+ name: rack
213
+ requirement: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - ">="
216
+ - !ruby/object:Gem::Version
217
+ version: '1.2'
218
+ - - "<"
219
+ - !ruby/object:Gem::Version
220
+ version: '2'
221
+ type: :runtime
222
+ prerelease: false
223
+ version_requirements: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '1.2'
228
+ - - "<"
229
+ - !ruby/object:Gem::Version
230
+ version: '2'
211
231
  - !ruby/object:Gem::Dependency
212
232
  name: reenhanced_bitbucket_api
213
233
  requirement: !ruby/object:Gem::Requirement
@@ -269,6 +289,8 @@ files:
269
289
  - lib/git_reflow/rspec/stub_helpers.rb
270
290
  - lib/git_reflow/sandbox.rb
271
291
  - lib/git_reflow/version.rb
292
+ - lib/git_reflow/workflow.rb
293
+ - lib/git_reflow/workflows/core.rb
272
294
  - spec/fixtures/git/git_config
273
295
  - spec/fixtures/issues/comment.json.erb
274
296
  - spec/fixtures/issues/comments.json
@@ -286,10 +308,11 @@ files:
286
308
  - spec/fixtures/repositories/commit.json.erb
287
309
  - spec/fixtures/repositories/commits.json.erb
288
310
  - spec/fixtures/repositories/statuses.json
289
- - spec/lgtm_git_reflow_spec.rb
290
311
  - spec/lib/git_reflow/config_spec.rb
291
312
  - spec/lib/git_reflow/git_helpers_spec.rb
292
313
  - spec/lib/git_reflow/git_server_spec.rb
314
+ - spec/lib/git_reflow/workflow_spec.rb
315
+ - spec/lib/git_reflow/workflows/core_spec.rb
293
316
  - spec/lib/git_reflow_spec.rb
294
317
  - spec/lib/git_server/bit_bucket_spec.rb
295
318
  - spec/lib/git_server/git_hub/pull_request_spec.rb
@@ -349,10 +372,11 @@ test_files:
349
372
  - spec/fixtures/repositories/commit.json.erb
350
373
  - spec/fixtures/repositories/commits.json.erb
351
374
  - spec/fixtures/repositories/statuses.json
352
- - spec/lgtm_git_reflow_spec.rb
353
375
  - spec/lib/git_reflow/config_spec.rb
354
376
  - spec/lib/git_reflow/git_helpers_spec.rb
355
377
  - spec/lib/git_reflow/git_server_spec.rb
378
+ - spec/lib/git_reflow/workflow_spec.rb
379
+ - spec/lib/git_reflow/workflows/core_spec.rb
356
380
  - spec/lib/git_reflow_spec.rb
357
381
  - spec/lib/git_server/bit_bucket_spec.rb
358
382
  - spec/lib/git_server/git_hub/pull_request_spec.rb