shipit-engine 0.15.0 → 0.16.0
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 +4 -4
- data/README.md +34 -1
- data/app/assets/javascripts/shipit/page_updater.js.coffee +63 -0
- data/app/assets/javascripts/shipit/stacks.js.coffee +9 -21
- data/app/assets/stylesheets/_base/_base.scss +2 -2
- data/app/assets/stylesheets/_base/_colors.scss +0 -1
- data/app/assets/stylesheets/_base/_forms.scss +14 -0
- data/app/assets/stylesheets/_pages/_commits.scss +16 -6
- data/app/assets/stylesheets/_pages/_settings.scss +8 -0
- data/app/assets/stylesheets/_pages/_stacks.scss +1 -1
- data/app/controllers/shipit/api/base_controller.rb +7 -3
- data/app/controllers/shipit/api/ccmenu_controller.rb +33 -0
- data/app/controllers/shipit/api/pull_requests_controller.rb +36 -0
- data/app/controllers/shipit/api/stacks_controller.rb +1 -0
- data/app/controllers/shipit/ccmenu_url_controller.rb +22 -0
- data/app/controllers/shipit/pull_requests_controller.rb +30 -0
- data/app/controllers/shipit/stacks_controller.rb +7 -2
- data/app/controllers/shipit/webhooks_controller.rb +1 -2
- data/app/helpers/shipit/github_url_helper.rb +8 -2
- data/app/helpers/shipit/shipit_helper.rb +9 -0
- data/app/helpers/shipit/stacks_helper.rb +22 -7
- data/app/jobs/shipit/background_job/unique.rb +19 -1
- data/app/jobs/shipit/cache_deploy_spec_job.rb +1 -1
- data/app/jobs/shipit/merge_pull_requests_job.rb +26 -0
- data/app/jobs/shipit/perform_task_job.rb +1 -1
- data/app/jobs/shipit/refresh_pull_request_job.rb +8 -0
- data/app/models/concerns/shipit/deferred_touch.rb +6 -1
- data/app/models/shipit/anonymous_user.rb +4 -0
- data/app/models/shipit/application_record.rb +5 -0
- data/app/models/shipit/commit.rb +51 -49
- data/app/models/shipit/commit_message.rb +32 -0
- data/app/models/shipit/deploy.rb +5 -0
- data/app/models/shipit/deploy_spec.rb +26 -1
- data/app/models/shipit/deploy_spec/file_system.rb +6 -1
- data/app/models/shipit/deploy_spec/kubernetes_discovery.rb +10 -13
- data/app/models/shipit/deploy_spec/npm_discovery.rb +2 -1
- data/app/models/shipit/duration.rb +3 -1
- data/app/models/shipit/hook.rb +1 -0
- data/app/models/shipit/pull_request.rb +252 -0
- data/app/models/shipit/stack.rb +33 -17
- data/app/models/shipit/status.rb +1 -16
- data/app/models/shipit/status/common.rb +45 -0
- data/app/models/shipit/status/group.rb +82 -0
- data/app/models/shipit/status/missing.rb +30 -0
- data/app/models/shipit/status/unknown.rb +33 -0
- data/app/models/shipit/unlimited_api_client.rb +10 -0
- data/app/serializers/shipit/commit_serializer.rb +1 -1
- data/app/serializers/shipit/pull_request_serializer.rb +20 -0
- data/app/serializers/shipit/stack_serializer.rb +6 -2
- data/app/views/layouts/shipit.html.erb +41 -39
- data/app/views/shipit/ccmenu/project.xml.builder +13 -0
- data/app/views/shipit/commits/_commit.html.erb +1 -1
- data/app/views/shipit/deploys/_deploy.html.erb +1 -1
- data/app/views/shipit/pull_requests/_pull_request.html.erb +29 -0
- data/app/views/shipit/pull_requests/index.html.erb +20 -0
- data/app/views/shipit/shared/_author.html.erb +7 -0
- data/app/views/shipit/stacks/_header.html.erb +5 -0
- data/app/views/shipit/stacks/settings.html.erb +13 -0
- data/app/views/shipit/stacks/show.html.erb +3 -2
- data/app/views/shipit/statuses/_group.html.erb +1 -1
- data/app/views/shipit/tasks/_task.html.erb +1 -1
- data/config/initializers/inflections.rb +3 -0
- data/config/locales/en.yml +1 -3
- data/config/routes.rb +8 -0
- data/db/migrate/20170130113633_create_shipit_pull_requests.rb +25 -0
- data/db/migrate/20170208143657_add_pull_request_number_and_title_to_commits.rb +7 -0
- data/db/migrate/20170208154609_backfill_merge_commits.rb +13 -0
- data/db/migrate/20170209160355_add_branch_to_pull_requests.rb +5 -0
- data/db/migrate/20170215123538_add_merge_queue_enabled_to_stacks.rb +5 -0
- data/db/migrate/20170220152410_improve_users_indexing.rb +6 -0
- data/db/migrate/20170221102128_improve_tasks_indexing.rb +8 -0
- data/db/migrate/20170221130336_add_last_revalidated_at_on_pull_requests.rb +10 -0
- data/lib/shipit.rb +2 -0
- data/lib/shipit/version.rb +1 -1
- data/lib/tasks/cron.rake +1 -0
- data/test/controllers/api/ccmenu_controller_test.rb +57 -0
- data/test/controllers/api/commits_controller_test.rb +1 -1
- data/test/controllers/api/pull_requests_controller_test.rb +59 -0
- data/test/controllers/ccmenu_controller_test.rb +33 -0
- data/test/controllers/pull_requests_controller_test.rb +31 -0
- data/test/controllers/webhooks_controller_test.rb +3 -4
- data/test/dummy/config/environments/development.rb +3 -1
- data/test/dummy/data/stacks/shopify/junk/production/git/README.md +8 -0
- data/test/dummy/data/stacks/shopify/junk/production/git/circle.yml +4 -0
- data/test/dummy/data/stacks/shopify/junk/production/git/shipit.yml +4 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +45 -11
- data/test/dummy/db/seeds.rb +33 -10
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/fixtures/shipit/commits.yml +14 -0
- data/test/fixtures/shipit/pull_requests.yml +56 -0
- data/test/fixtures/shipit/stacks.yml +5 -1
- data/test/fixtures/shipit/statuses.yml +8 -0
- data/test/helpers/json_helper.rb +16 -14
- data/test/jobs/merge_pull_requests_job_test.rb +59 -0
- data/test/models/commits_test.rb +104 -49
- data/test/{unit → models}/deploy_spec_test.rb +138 -12
- data/test/models/deploys_test.rb +10 -4
- data/test/models/pull_request_test.rb +197 -0
- data/test/models/stacks_test.rb +46 -53
- data/test/models/status/group_test.rb +44 -0
- data/test/models/status/missing_test.rb +23 -0
- data/test/models/status_test.rb +3 -6
- data/test/unit/csv_serializer_test.rb +10 -2
- metadata +57 -12
- data/app/models/shipit/missing_status.rb +0 -21
- data/app/models/shipit/status_group.rb +0 -35
- data/app/models/shipit/unknown_status.rb +0 -48
- data/app/views/shipit/commits/_commit_author.html.erb +0 -7
- data/test/models/missing_status_test.rb +0 -23
- data/test/models/status_group_test.rb +0 -26
data/test/models/stacks_test.rb
CHANGED
|
@@ -216,7 +216,7 @@ module Shipit
|
|
|
216
216
|
end
|
|
217
217
|
|
|
218
218
|
test "#destroy also destroy associated Commits" do
|
|
219
|
-
assert_difference -> { Commit.count }, -
|
|
219
|
+
assert_difference -> { Commit.count }, -shipit_stacks(:shipit).commits.count do
|
|
220
220
|
shipit_stacks(:shipit).destroy
|
|
221
221
|
end
|
|
222
222
|
end
|
|
@@ -258,19 +258,38 @@ module Shipit
|
|
|
258
258
|
end
|
|
259
259
|
end
|
|
260
260
|
|
|
261
|
-
test "#deployable? returns true if stack is not locked and is not deploying" do
|
|
261
|
+
test "#deployable? returns true if the stack is not locked and is not deploying" do
|
|
262
262
|
@stack.deploys.destroy_all
|
|
263
|
-
|
|
263
|
+
assert_predicate @stack, :deployable?
|
|
264
264
|
end
|
|
265
265
|
|
|
266
|
-
test "#deployable? returns false if stack is locked" do
|
|
266
|
+
test "#deployable? returns false if the stack is locked" do
|
|
267
267
|
@stack.update!(lock_reason: 'Maintenance operation')
|
|
268
|
-
|
|
268
|
+
refute_predicate @stack, :deployable?
|
|
269
269
|
end
|
|
270
270
|
|
|
271
|
-
test "#deployable? returns false if stack is deploying" do
|
|
271
|
+
test "#deployable? returns false if the stack is deploying" do
|
|
272
272
|
@stack.trigger_deploy(shipit_commits(:third), AnonymousUser.new)
|
|
273
|
-
|
|
273
|
+
refute_predicate @stack, :deployable?
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
test "#allows_merges? returns true if the stack is not locked and the branch is green" do
|
|
277
|
+
assert_predicate @stack, :allows_merges?
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
test "#allows_merges? returns false if the stack is locked" do
|
|
281
|
+
@stack.update!(lock_reason: 'Maintenance operation')
|
|
282
|
+
refute_predicate @stack, :allows_merges?
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
test "#allows_merges? returns false if the merge queue is disabled" do
|
|
286
|
+
@stack.update!(merge_queue_enabled: false)
|
|
287
|
+
refute_predicate @stack, :allows_merges?
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
test "#allows_merges? returns false if the branch is failing" do
|
|
291
|
+
@stack.undeployed_commits.last.statuses.create!(context: 'ci/travis', state: 'failure', stack: @stack)
|
|
292
|
+
refute_predicate @stack, :allows_merges?
|
|
274
293
|
end
|
|
275
294
|
|
|
276
295
|
test "#monitoring is empty if cached_deploy_spec is blank" do
|
|
@@ -313,6 +332,16 @@ module Shipit
|
|
|
313
332
|
end
|
|
314
333
|
end
|
|
315
334
|
|
|
335
|
+
test "unlocking the stack triggers a MergePullRequests job" do
|
|
336
|
+
assert_no_enqueued_jobs(only: MergePullRequestsJob) do
|
|
337
|
+
@stack.update(lock_reason: "Just for fun", lock_author: shipit_users(:walrus))
|
|
338
|
+
end
|
|
339
|
+
|
|
340
|
+
assert_enqueued_with(job: MergePullRequestsJob, args: [@stack]) do
|
|
341
|
+
@stack.update(lock_reason: nil)
|
|
342
|
+
end
|
|
343
|
+
end
|
|
344
|
+
|
|
316
345
|
test "the git cache lock prevent concurrent access to the git cache" do
|
|
317
346
|
@stack.acquire_git_cache_lock do
|
|
318
347
|
assert_raises Redis::Lock::LockTimeout do
|
|
@@ -346,26 +375,6 @@ module Shipit
|
|
|
346
375
|
end
|
|
347
376
|
end
|
|
348
377
|
|
|
349
|
-
test "#filter_visible_statuses removes statuses from hidden contexts" do
|
|
350
|
-
stack = shipit_stacks(:cyclimse)
|
|
351
|
-
stack.stubs(hidden_statuses: ['ci/hidden'])
|
|
352
|
-
commit1 = Status.new(state: 'pending', context: 'ci/valid')
|
|
353
|
-
commit2 = Status.new(state: 'pending', context: 'ci/valid')
|
|
354
|
-
hidden = Status.new(state: 'pending', context: 'ci/hidden')
|
|
355
|
-
|
|
356
|
-
assert_equal [commit1, commit2], stack.filter_visible_statuses([hidden, commit1, commit2])
|
|
357
|
-
end
|
|
358
|
-
|
|
359
|
-
test "#filter_meaningful_statuses removes statuses from soft-failing contexts" do
|
|
360
|
-
stack = shipit_stacks(:cyclimse)
|
|
361
|
-
stack.stubs(soft_failing_statuses: ['ci/soft-fail'])
|
|
362
|
-
commit1 = Status.new(state: 'pending', context: 'ci/valid')
|
|
363
|
-
commit2 = Status.new(state: 'pending', context: 'ci/valid')
|
|
364
|
-
soft_fail = Status.new(state: 'pending', context: 'ci/soft-fail')
|
|
365
|
-
|
|
366
|
-
assert_equal [commit1, commit2], stack.filter_meaningful_statuses([soft_fail, commit1, commit2])
|
|
367
|
-
end
|
|
368
|
-
|
|
369
378
|
test "updating the stack emit a hook" do
|
|
370
379
|
expect_hook(:stack, @stack, action: :updated, stack: @stack) do
|
|
371
380
|
@stack.update(repo_name: 'foo')
|
|
@@ -397,42 +406,26 @@ module Shipit
|
|
|
397
406
|
assert_equal 'success', @stack.merge_status
|
|
398
407
|
end
|
|
399
408
|
|
|
400
|
-
test "#merge_status returns
|
|
409
|
+
test "#merge_status returns success if all undeployed commits and last deployed commit are in pending or unknown state" do
|
|
401
410
|
shipit_commits(:fifth).statuses.destroy_all
|
|
402
411
|
shipit_commits(:fourth).statuses.update_all(state: 'pending')
|
|
403
412
|
shipit_commits(:third).statuses.update_all(state: 'pending')
|
|
404
413
|
@stack.deploys_and_rollbacks.last.update!(status: 'success', until_commit: shipit_commits(:third))
|
|
405
414
|
|
|
406
|
-
assert_equal '
|
|
415
|
+
assert_equal 'success', @stack.merge_status
|
|
407
416
|
end
|
|
408
417
|
|
|
409
|
-
test "#merge_status returns
|
|
418
|
+
test "#merge_status returns success if there are no undeployed commits and no deployed commits" do
|
|
410
419
|
@stack.deploys_and_rollbacks.last.update(status: 'success', until_commit: shipit_commits(:fifth))
|
|
411
420
|
|
|
412
|
-
assert_equal 'pending', @stack.merge_status
|
|
413
|
-
end
|
|
414
|
-
|
|
415
|
-
test "#merge_status returns state of last deployed commit if there are no undeployed commits waiting" do
|
|
416
|
-
shipit_commits(:fifth).statuses.destroy_all
|
|
417
|
-
@stack.deploys_and_rollbacks.last.update!(status: 'success', until_commit: shipit_commits(:fourth))
|
|
418
|
-
|
|
419
|
-
shipit_commits(:fourth).statuses.update_all(state: 'success')
|
|
420
421
|
assert_equal 'success', @stack.merge_status
|
|
421
|
-
|
|
422
|
-
shipit_commits(:fourth).statuses.last.update(state: 'failure')
|
|
423
|
-
assert_equal 'failure', @stack.merge_status
|
|
424
422
|
end
|
|
425
423
|
|
|
426
|
-
test "#merge_status returns
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
@stack.
|
|
430
|
-
|
|
431
|
-
shipit_commits(:third).statuses.update_all(state: 'success')
|
|
432
|
-
assert_equal 'success', @stack.merge_status
|
|
433
|
-
|
|
434
|
-
shipit_commits(:third).statuses.last.update(state: 'failure')
|
|
435
|
-
assert_equal 'failure', @stack.merge_status
|
|
424
|
+
test "#merge_status returns backlogged if there are too many undeployed commits" do
|
|
425
|
+
@stack.deploys_and_rollbacks.destroy_all
|
|
426
|
+
@stack.update_undeployed_commits_count
|
|
427
|
+
@stack.reload
|
|
428
|
+
assert_equal 'backlogged', @stack.merge_status
|
|
436
429
|
end
|
|
437
430
|
|
|
438
431
|
test "#handle_github_redirections update the stack if the repository was renamed" do
|
|
@@ -547,11 +540,11 @@ module Shipit
|
|
|
547
540
|
test "#next_commit_to_deploy respects the deploy.max_commits directive" do
|
|
548
541
|
@stack.tasks.destroy_all
|
|
549
542
|
|
|
550
|
-
fifth_commit = shipit_commits(:
|
|
543
|
+
fifth_commit = shipit_commits(:third)
|
|
551
544
|
fifth_commit.statuses.create!(stack_id: @stack.id, state: 'success', context: 'ci/travis')
|
|
552
545
|
assert_predicate fifth_commit, :deployable?
|
|
553
546
|
|
|
554
|
-
assert_equal shipit_commits(:
|
|
547
|
+
assert_equal shipit_commits(:third), @stack.next_commit_to_deploy
|
|
555
548
|
|
|
556
549
|
@stack.expects(:maximum_commits_per_deploy).returns(3).at_least_once
|
|
557
550
|
assert_equal shipit_commits(:third), @stack.next_commit_to_deploy
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Shipit
|
|
4
|
+
class StatusGroupTest < ActiveSupport::TestCase
|
|
5
|
+
setup do
|
|
6
|
+
@commit = shipit_commits(:second)
|
|
7
|
+
@group = Status::Group.new(@commit, @commit.statuses)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
test "#description is a summary of the statuses" do
|
|
11
|
+
assert_equal '1 / 2 checks OK', @group.description
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
test "#group? returns true" do
|
|
15
|
+
assert_equal true, @group.group?
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
test "#target_url returns nil" do
|
|
19
|
+
assert_nil @group.target_url
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
test "#state is significant's status state" do
|
|
23
|
+
assert_equal %w(success failure), @group.statuses.map(&:state)
|
|
24
|
+
assert_equal 'failure', @group.state
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
test ".compact returns a regular status if there is only one visible status" do
|
|
28
|
+
status = Status::Group.compact(@commit, @commit.statuses.where(context: 'ci/travis'))
|
|
29
|
+
assert_instance_of Status, status
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
test ".compact returns an unknown status if there is no visible status" do
|
|
33
|
+
status = Status::Group.compact(@commit, @commit.statuses.where(context: 'ci/none'))
|
|
34
|
+
assert_instance_of Status::Unknown, status
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
test "missing required status will have MissingRequiredStatus as placeholder" do
|
|
38
|
+
@commit.stubs(:required_statuses).returns(%w(ci/very-important))
|
|
39
|
+
status = Status::Group.compact(@commit, [])
|
|
40
|
+
assert_instance_of Status::Missing, status
|
|
41
|
+
assert_predicate status, :pending?
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Shipit
|
|
4
|
+
class MissingStatusTest < ActiveSupport::TestCase
|
|
5
|
+
setup do
|
|
6
|
+
@commit = @commit = shipit_commits(:second)
|
|
7
|
+
@status = Status::Missing.new(@commit, 'ci/very-important')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
test "#state is 'pending'" do
|
|
11
|
+
assert_equal 'pending', @status.state
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
test "#description explains the situation" do
|
|
15
|
+
message = 'ci/very-important is required for deploy but was not sent yet.'
|
|
16
|
+
assert_equal message, @status.description
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
test "#success? is false" do
|
|
20
|
+
refute_predicate @status, :success?
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
data/test/models/status_test.rb
CHANGED
|
@@ -54,12 +54,9 @@ module Shipit
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
def expect_event(stack)
|
|
57
|
-
Pubsubstub
|
|
58
|
-
Pubsubstub
|
|
59
|
-
|
|
60
|
-
event.name == 'stack.update' &&
|
|
61
|
-
channel == "stack.#{stack.id}" &&
|
|
62
|
-
data['url'] == "/#{stack.to_param}"
|
|
57
|
+
Pubsubstub.expects(:publish).at_least_once
|
|
58
|
+
Pubsubstub.expects(:publish).with do |channel, _payload, options = {}|
|
|
59
|
+
options[:name] == 'update' && channel == "stack.#{stack.id}"
|
|
63
60
|
end
|
|
64
61
|
end
|
|
65
62
|
end
|
|
@@ -27,12 +27,20 @@ module Shipit
|
|
|
27
27
|
|
|
28
28
|
def assert_dumped(expected, object)
|
|
29
29
|
message = "Expected CSVSerializer.dump(#{object.inspect}) to eq #{expected.inspect}"
|
|
30
|
-
|
|
30
|
+
if expected.nil?
|
|
31
|
+
assert_nil Shipit::CSVSerializer.dump(object), message
|
|
32
|
+
else
|
|
33
|
+
assert_equal(expected, Shipit::CSVSerializer.dump(object), message)
|
|
34
|
+
end
|
|
31
35
|
end
|
|
32
36
|
|
|
33
37
|
def assert_loaded(expected, payload)
|
|
34
38
|
message = "Expected CSVSerializer.load(#{payload.inspect}) to eq #{expected.inspect}"
|
|
35
|
-
|
|
39
|
+
if expected.nil?
|
|
40
|
+
assert_nil Shipit::CSVSerializer.load(payload), message
|
|
41
|
+
else
|
|
42
|
+
assert_equal(expected, Shipit::CSVSerializer.load(payload), message)
|
|
43
|
+
end
|
|
36
44
|
end
|
|
37
45
|
end
|
|
38
46
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: shipit-engine
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.16.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jean Boussier
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-02-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
@@ -531,6 +531,7 @@ files:
|
|
|
531
531
|
- app/assets/javascripts/shipit/checklist.js.coffee
|
|
532
532
|
- app/assets/javascripts/shipit/deploy.js.coffee
|
|
533
533
|
- app/assets/javascripts/shipit/flash.js.coffee
|
|
534
|
+
- app/assets/javascripts/shipit/page_updater.js.coffee
|
|
534
535
|
- app/assets/javascripts/shipit/search.js.coffee
|
|
535
536
|
- app/assets/javascripts/shipit/stacks.js.coffee
|
|
536
537
|
- app/assets/javascripts/shipit_bs.js.coffee
|
|
@@ -568,16 +569,20 @@ files:
|
|
|
568
569
|
- app/controllers/concerns/shipit/authentication.rb
|
|
569
570
|
- app/controllers/concerns/shipit/pagination.rb
|
|
570
571
|
- app/controllers/shipit/api/base_controller.rb
|
|
572
|
+
- app/controllers/shipit/api/ccmenu_controller.rb
|
|
571
573
|
- app/controllers/shipit/api/commits_controller.rb
|
|
572
574
|
- app/controllers/shipit/api/deploys_controller.rb
|
|
573
575
|
- app/controllers/shipit/api/hooks_controller.rb
|
|
574
576
|
- app/controllers/shipit/api/locks_controller.rb
|
|
575
577
|
- app/controllers/shipit/api/outputs_controller.rb
|
|
578
|
+
- app/controllers/shipit/api/pull_requests_controller.rb
|
|
576
579
|
- app/controllers/shipit/api/stacks_controller.rb
|
|
577
580
|
- app/controllers/shipit/api/tasks_controller.rb
|
|
581
|
+
- app/controllers/shipit/ccmenu_url_controller.rb
|
|
578
582
|
- app/controllers/shipit/commit_checks_controller.rb
|
|
579
583
|
- app/controllers/shipit/deploys_controller.rb
|
|
580
584
|
- app/controllers/shipit/github_authentication_controller.rb
|
|
585
|
+
- app/controllers/shipit/pull_requests_controller.rb
|
|
581
586
|
- app/controllers/shipit/rollbacks_controller.rb
|
|
582
587
|
- app/controllers/shipit/shipit_controller.rb
|
|
583
588
|
- app/controllers/shipit/stacks_controller.rb
|
|
@@ -604,19 +609,23 @@ files:
|
|
|
604
609
|
- app/jobs/shipit/fetch_commit_stats_job.rb
|
|
605
610
|
- app/jobs/shipit/fetch_deployed_revision_job.rb
|
|
606
611
|
- app/jobs/shipit/github_sync_job.rb
|
|
612
|
+
- app/jobs/shipit/merge_pull_requests_job.rb
|
|
607
613
|
- app/jobs/shipit/perform_commit_checks_job.rb
|
|
608
614
|
- app/jobs/shipit/perform_task_job.rb
|
|
609
615
|
- app/jobs/shipit/refresh_github_user_job.rb
|
|
616
|
+
- app/jobs/shipit/refresh_pull_request_job.rb
|
|
610
617
|
- app/jobs/shipit/refresh_statuses_job.rb
|
|
611
618
|
- app/jobs/shipit/setup_github_hook_job.rb
|
|
612
619
|
- app/jobs/shipit/update_estimated_deploy_duration_job.rb
|
|
613
620
|
- app/models/concerns/shipit/deferred_touch.rb
|
|
614
621
|
- app/models/shipit/anonymous_user.rb
|
|
615
622
|
- app/models/shipit/api_client.rb
|
|
623
|
+
- app/models/shipit/application_record.rb
|
|
616
624
|
- app/models/shipit/commit.rb
|
|
617
625
|
- app/models/shipit/commit_checks.rb
|
|
618
626
|
- app/models/shipit/commit_deployment.rb
|
|
619
627
|
- app/models/shipit/commit_deployment_status.rb
|
|
628
|
+
- app/models/shipit/commit_message.rb
|
|
620
629
|
- app/models/shipit/delivery.rb
|
|
621
630
|
- app/models/shipit/deploy.rb
|
|
622
631
|
- app/models/shipit/deploy_spec.rb
|
|
@@ -633,17 +642,20 @@ files:
|
|
|
633
642
|
- app/models/shipit/github_status.rb
|
|
634
643
|
- app/models/shipit/hook.rb
|
|
635
644
|
- app/models/shipit/membership.rb
|
|
636
|
-
- app/models/shipit/missing_status.rb
|
|
637
645
|
- app/models/shipit/output_chunk.rb
|
|
646
|
+
- app/models/shipit/pull_request.rb
|
|
638
647
|
- app/models/shipit/rollback.rb
|
|
639
648
|
- app/models/shipit/stack.rb
|
|
640
649
|
- app/models/shipit/status.rb
|
|
641
|
-
- app/models/shipit/
|
|
650
|
+
- app/models/shipit/status/common.rb
|
|
651
|
+
- app/models/shipit/status/group.rb
|
|
652
|
+
- app/models/shipit/status/missing.rb
|
|
653
|
+
- app/models/shipit/status/unknown.rb
|
|
642
654
|
- app/models/shipit/task.rb
|
|
643
655
|
- app/models/shipit/task_definition.rb
|
|
644
656
|
- app/models/shipit/team.rb
|
|
645
657
|
- app/models/shipit/undeployed_commit.rb
|
|
646
|
-
- app/models/shipit/
|
|
658
|
+
- app/models/shipit/unlimited_api_client.rb
|
|
647
659
|
- app/models/shipit/user.rb
|
|
648
660
|
- app/models/shipit/variable_definition.rb
|
|
649
661
|
- app/serializers/concerns/shipit/conditional_attributes.rb
|
|
@@ -651,6 +663,7 @@ files:
|
|
|
651
663
|
- app/serializers/shipit/commit_serializer.rb
|
|
652
664
|
- app/serializers/shipit/deploy_serializer.rb
|
|
653
665
|
- app/serializers/shipit/hook_serializer.rb
|
|
666
|
+
- app/serializers/shipit/pull_request_serializer.rb
|
|
654
667
|
- app/serializers/shipit/rollback_serializer.rb
|
|
655
668
|
- app/serializers/shipit/short_commit_serializer.rb
|
|
656
669
|
- app/serializers/shipit/stack_serializer.rb
|
|
@@ -664,10 +677,10 @@ files:
|
|
|
664
677
|
- app/views/layouts/shipit.html.erb
|
|
665
678
|
- app/views/layouts/shipit_bootstrap.html.erb
|
|
666
679
|
- app/views/shipit/_variables.html.erb
|
|
680
|
+
- app/views/shipit/ccmenu/project.xml.builder
|
|
667
681
|
- app/views/shipit/commit_checks/_checks.html.erb
|
|
668
682
|
- app/views/shipit/commit_checks/show.html.erb
|
|
669
683
|
- app/views/shipit/commits/_commit.html.erb
|
|
670
|
-
- app/views/shipit/commits/_commit_author.html.erb
|
|
671
684
|
- app/views/shipit/deploys/_checklist.html.erb
|
|
672
685
|
- app/views/shipit/deploys/_concurrent_deploy_warning.html.erb
|
|
673
686
|
- app/views/shipit/deploys/_deploy.html.erb
|
|
@@ -678,6 +691,9 @@ files:
|
|
|
678
691
|
- app/views/shipit/deploys/show.html.erb
|
|
679
692
|
- app/views/shipit/github_authentication/failed.html.erb
|
|
680
693
|
- app/views/shipit/missing_settings.html.erb
|
|
694
|
+
- app/views/shipit/pull_requests/_pull_request.html.erb
|
|
695
|
+
- app/views/shipit/pull_requests/index.html.erb
|
|
696
|
+
- app/views/shipit/shared/_author.html.erb
|
|
681
697
|
- app/views/shipit/stacks/_header.html.erb
|
|
682
698
|
- app/views/shipit/stacks/index.html.erb
|
|
683
699
|
- app/views/shipit/stacks/new.html.erb
|
|
@@ -690,6 +706,7 @@ files:
|
|
|
690
706
|
- app/views/shipit/tasks/index.html.erb
|
|
691
707
|
- app/views/shipit/tasks/new.html.erb
|
|
692
708
|
- app/views/shipit/tasks/show.html.erb
|
|
709
|
+
- config/initializers/inflections.rb
|
|
693
710
|
- config/locales/en.yml
|
|
694
711
|
- config/routes.rb
|
|
695
712
|
- config/secrets.development.example.yml
|
|
@@ -725,6 +742,14 @@ files:
|
|
|
725
742
|
- db/migrate/20161206104224_denormalize_stack_id_on_statuses.rb
|
|
726
743
|
- db/migrate/20161206104817_backfill_stack_id_on_statuses.rb
|
|
727
744
|
- db/migrate/20161206105318_makes_stack_id_not_null_on_statuses.rb
|
|
745
|
+
- db/migrate/20170130113633_create_shipit_pull_requests.rb
|
|
746
|
+
- db/migrate/20170208143657_add_pull_request_number_and_title_to_commits.rb
|
|
747
|
+
- db/migrate/20170208154609_backfill_merge_commits.rb
|
|
748
|
+
- db/migrate/20170209160355_add_branch_to_pull_requests.rb
|
|
749
|
+
- db/migrate/20170215123538_add_merge_queue_enabled_to_stacks.rb
|
|
750
|
+
- db/migrate/20170220152410_improve_users_indexing.rb
|
|
751
|
+
- db/migrate/20170221102128_improve_tasks_indexing.rb
|
|
752
|
+
- db/migrate/20170221130336_add_last_revalidated_at_on_pull_requests.rb
|
|
728
753
|
- lib/shipit-engine.rb
|
|
729
754
|
- lib/shipit.rb
|
|
730
755
|
- lib/shipit/command.rb
|
|
@@ -759,16 +784,20 @@ files:
|
|
|
759
784
|
- lib/tasks/teams.rake
|
|
760
785
|
- lib/tasks/webhook.rake
|
|
761
786
|
- test/controllers/api/base_controller_test.rb
|
|
787
|
+
- test/controllers/api/ccmenu_controller_test.rb
|
|
762
788
|
- test/controllers/api/commits_controller_test.rb
|
|
763
789
|
- test/controllers/api/deploys_controller_test.rb
|
|
764
790
|
- test/controllers/api/hooks_controller_test.rb
|
|
765
791
|
- test/controllers/api/locks_controller_test.rb
|
|
766
792
|
- test/controllers/api/outputs_controller_test.rb
|
|
793
|
+
- test/controllers/api/pull_requests_controller_test.rb
|
|
767
794
|
- test/controllers/api/stacks_controller_test.rb
|
|
768
795
|
- test/controllers/api/tasks_controller_test.rb
|
|
796
|
+
- test/controllers/ccmenu_controller_test.rb
|
|
769
797
|
- test/controllers/commit_checks_controller_test.rb
|
|
770
798
|
- test/controllers/deploys_controller_test.rb
|
|
771
799
|
- test/controllers/github_authentication_controller_test.rb
|
|
800
|
+
- test/controllers/pull_requests_controller_test.rb
|
|
772
801
|
- test/controllers/rollbacks_controller_test.rb
|
|
773
802
|
- test/controllers/stacks_controller_test.rb
|
|
774
803
|
- test/controllers/status_controller_test.rb
|
|
@@ -819,6 +848,9 @@ files:
|
|
|
819
848
|
- test/dummy/data/stacks/byroot/junk/production/git/sdlkfjsdlkfjsdlkfjdsfsdfksdfjsldkfjsdlkfjsdf
|
|
820
849
|
- test/dummy/data/stacks/byroot/junk/production/git/shipit.yml
|
|
821
850
|
- test/dummy/data/stacks/byroot/junk/production/git/toto.txt
|
|
851
|
+
- test/dummy/data/stacks/shopify/junk/production/git/README.md
|
|
852
|
+
- test/dummy/data/stacks/shopify/junk/production/git/circle.yml
|
|
853
|
+
- test/dummy/data/stacks/shopify/junk/production/git/shipit.yml
|
|
822
854
|
- test/dummy/db/development.sqlite3
|
|
823
855
|
- test/dummy/db/schema.rb
|
|
824
856
|
- test/dummy/db/seeds.rb
|
|
@@ -839,6 +871,7 @@ files:
|
|
|
839
871
|
- test/fixtures/shipit/hooks.yml
|
|
840
872
|
- test/fixtures/shipit/memberships.yml
|
|
841
873
|
- test/fixtures/shipit/output_chunks.yml
|
|
874
|
+
- test/fixtures/shipit/pull_requests.yml
|
|
842
875
|
- test/fixtures/shipit/stacks.yml
|
|
843
876
|
- test/fixtures/shipit/statuses.yml
|
|
844
877
|
- test/fixtures/shipit/tasks.yml
|
|
@@ -860,6 +893,7 @@ files:
|
|
|
860
893
|
- test/jobs/fetch_commit_stats_job_test.rb
|
|
861
894
|
- test/jobs/fetch_deployed_revision_job_test.rb
|
|
862
895
|
- test/jobs/github_sync_job_test.rb
|
|
896
|
+
- test/jobs/merge_pull_requests_job_test.rb
|
|
863
897
|
- test/jobs/perform_task_job_test.rb
|
|
864
898
|
- test/jobs/refresh_github_user_job_test.rb
|
|
865
899
|
- test/jobs/refresh_status_job_test.rb
|
|
@@ -870,16 +904,18 @@ files:
|
|
|
870
904
|
- test/models/commit_deployment_test.rb
|
|
871
905
|
- test/models/commits_test.rb
|
|
872
906
|
- test/models/delivery_test.rb
|
|
907
|
+
- test/models/deploy_spec_test.rb
|
|
873
908
|
- test/models/deploys_test.rb
|
|
874
909
|
- test/models/duration_test.rb
|
|
875
910
|
- test/models/github_hook_test.rb
|
|
876
911
|
- test/models/hook_test.rb
|
|
877
912
|
- test/models/membership_test.rb
|
|
878
|
-
- test/models/missing_status_test.rb
|
|
879
913
|
- test/models/output_chunk_test.rb
|
|
914
|
+
- test/models/pull_request_test.rb
|
|
880
915
|
- test/models/rollbacks_test.rb
|
|
881
916
|
- test/models/stacks_test.rb
|
|
882
|
-
- test/models/
|
|
917
|
+
- test/models/status/group_test.rb
|
|
918
|
+
- test/models/status/missing_test.rb
|
|
883
919
|
- test/models/status_test.rb
|
|
884
920
|
- test/models/task_definitions_test.rb
|
|
885
921
|
- test/models/team_test.rb
|
|
@@ -891,7 +927,6 @@ files:
|
|
|
891
927
|
- test/unit/commands_test.rb
|
|
892
928
|
- test/unit/csv_serializer_test.rb
|
|
893
929
|
- test/unit/deploy_commands_test.rb
|
|
894
|
-
- test/unit/deploy_spec_test.rb
|
|
895
930
|
- test/unit/environment_variables_test.rb
|
|
896
931
|
- test/unit/github_url_helper_test.rb
|
|
897
932
|
- test/unit/shipit_test.rb
|
|
@@ -928,16 +963,20 @@ specification_version: 4
|
|
|
928
963
|
summary: Application deployment software
|
|
929
964
|
test_files:
|
|
930
965
|
- test/controllers/api/base_controller_test.rb
|
|
966
|
+
- test/controllers/api/ccmenu_controller_test.rb
|
|
931
967
|
- test/controllers/api/commits_controller_test.rb
|
|
932
968
|
- test/controllers/api/deploys_controller_test.rb
|
|
933
969
|
- test/controllers/api/hooks_controller_test.rb
|
|
934
970
|
- test/controllers/api/locks_controller_test.rb
|
|
935
971
|
- test/controllers/api/outputs_controller_test.rb
|
|
972
|
+
- test/controllers/api/pull_requests_controller_test.rb
|
|
936
973
|
- test/controllers/api/stacks_controller_test.rb
|
|
937
974
|
- test/controllers/api/tasks_controller_test.rb
|
|
975
|
+
- test/controllers/ccmenu_controller_test.rb
|
|
938
976
|
- test/controllers/commit_checks_controller_test.rb
|
|
939
977
|
- test/controllers/deploys_controller_test.rb
|
|
940
978
|
- test/controllers/github_authentication_controller_test.rb
|
|
979
|
+
- test/controllers/pull_requests_controller_test.rb
|
|
941
980
|
- test/controllers/rollbacks_controller_test.rb
|
|
942
981
|
- test/controllers/stacks_controller_test.rb
|
|
943
982
|
- test/controllers/status_controller_test.rb
|
|
@@ -987,6 +1026,9 @@ test_files:
|
|
|
987
1026
|
- test/dummy/data/stacks/byroot/junk/production/git/sdlkfjsdlkfjsdlkfjdsfsdfksdfjsldkfjsdlkfjsdf
|
|
988
1027
|
- test/dummy/data/stacks/byroot/junk/production/git/shipit.yml
|
|
989
1028
|
- test/dummy/data/stacks/byroot/junk/production/git/toto.txt
|
|
1029
|
+
- test/dummy/data/stacks/shopify/junk/production/git/circle.yml
|
|
1030
|
+
- test/dummy/data/stacks/shopify/junk/production/git/README.md
|
|
1031
|
+
- test/dummy/data/stacks/shopify/junk/production/git/shipit.yml
|
|
990
1032
|
- test/dummy/db/development.sqlite3
|
|
991
1033
|
- test/dummy/db/schema.rb
|
|
992
1034
|
- test/dummy/db/seeds.rb
|
|
@@ -1008,6 +1050,7 @@ test_files:
|
|
|
1008
1050
|
- test/fixtures/shipit/hooks.yml
|
|
1009
1051
|
- test/fixtures/shipit/memberships.yml
|
|
1010
1052
|
- test/fixtures/shipit/output_chunks.yml
|
|
1053
|
+
- test/fixtures/shipit/pull_requests.yml
|
|
1011
1054
|
- test/fixtures/shipit/stacks.yml
|
|
1012
1055
|
- test/fixtures/shipit/statuses.yml
|
|
1013
1056
|
- test/fixtures/shipit/tasks.yml
|
|
@@ -1029,6 +1072,7 @@ test_files:
|
|
|
1029
1072
|
- test/jobs/fetch_commit_stats_job_test.rb
|
|
1030
1073
|
- test/jobs/fetch_deployed_revision_job_test.rb
|
|
1031
1074
|
- test/jobs/github_sync_job_test.rb
|
|
1075
|
+
- test/jobs/merge_pull_requests_job_test.rb
|
|
1032
1076
|
- test/jobs/perform_task_job_test.rb
|
|
1033
1077
|
- test/jobs/refresh_github_user_job_test.rb
|
|
1034
1078
|
- test/jobs/refresh_status_job_test.rb
|
|
@@ -1039,16 +1083,18 @@ test_files:
|
|
|
1039
1083
|
- test/models/commit_deployment_test.rb
|
|
1040
1084
|
- test/models/commits_test.rb
|
|
1041
1085
|
- test/models/delivery_test.rb
|
|
1086
|
+
- test/models/deploy_spec_test.rb
|
|
1042
1087
|
- test/models/deploys_test.rb
|
|
1043
1088
|
- test/models/duration_test.rb
|
|
1044
1089
|
- test/models/github_hook_test.rb
|
|
1045
1090
|
- test/models/hook_test.rb
|
|
1046
1091
|
- test/models/membership_test.rb
|
|
1047
|
-
- test/models/missing_status_test.rb
|
|
1048
1092
|
- test/models/output_chunk_test.rb
|
|
1093
|
+
- test/models/pull_request_test.rb
|
|
1049
1094
|
- test/models/rollbacks_test.rb
|
|
1050
1095
|
- test/models/stacks_test.rb
|
|
1051
|
-
- test/models/
|
|
1096
|
+
- test/models/status/group_test.rb
|
|
1097
|
+
- test/models/status/missing_test.rb
|
|
1052
1098
|
- test/models/status_test.rb
|
|
1053
1099
|
- test/models/task_definitions_test.rb
|
|
1054
1100
|
- test/models/team_test.rb
|
|
@@ -1060,7 +1106,6 @@ test_files:
|
|
|
1060
1106
|
- test/unit/commands_test.rb
|
|
1061
1107
|
- test/unit/csv_serializer_test.rb
|
|
1062
1108
|
- test/unit/deploy_commands_test.rb
|
|
1063
|
-
- test/unit/deploy_spec_test.rb
|
|
1064
1109
|
- test/unit/environment_variables_test.rb
|
|
1065
1110
|
- test/unit/github_url_helper_test.rb
|
|
1066
1111
|
- test/unit/shipit_test.rb
|