shipit-engine 0.32.0 → 0.33.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/app/assets/images/magic-solid.svg +1 -0
- data/app/assets/javascripts/shipit/repositories_search.js.coffee +60 -0
- data/app/assets/javascripts/shipit/{search.js.coffee → stack_search.js.coffee} +0 -0
- data/app/assets/stylesheets/_pages/_repositories.scss +148 -0
- data/app/assets/stylesheets/_pages/_stacks.scss +19 -0
- data/app/assets/stylesheets/shipit.scss +1 -0
- data/app/controllers/shipit/api/{pull_requests_controller.rb → merge_requests_controller.rb} +8 -8
- data/app/controllers/shipit/api/stacks_controller.rb +14 -1
- data/app/controllers/shipit/deploys_controller.rb +2 -2
- data/app/controllers/shipit/merge_requests_controller.rb +31 -0
- data/app/controllers/shipit/merge_status_controller.rb +15 -15
- data/app/controllers/shipit/repositories_controller.rb +74 -0
- data/app/controllers/shipit/tasks_controller.rb +4 -4
- data/app/helpers/shipit/chunks_helper.rb +2 -2
- data/app/helpers/shipit/github_url_helper.rb +8 -0
- data/app/helpers/shipit/stacks_helper.rb +4 -0
- data/app/jobs/shipit/create_on_github_job.rb +1 -0
- data/app/jobs/shipit/destroy_repository_job.rb +24 -0
- data/app/jobs/shipit/destroy_stack_job.rb +2 -2
- data/app/jobs/shipit/perform_task_job.rb +4 -98
- data/app/jobs/shipit/process_merge_requests_job.rb +32 -0
- data/app/jobs/shipit/refresh_merge_request_job.rb +11 -0
- data/app/models/shipit/anonymous_user.rb +4 -0
- data/app/models/shipit/check_run.rb +2 -2
- data/app/models/shipit/command_line_user.rb +4 -0
- data/app/models/shipit/commit.rb +11 -11
- data/app/models/shipit/commit_checks.rb +1 -0
- data/app/models/shipit/deploy.rb +1 -0
- data/app/models/shipit/deploy_spec.rb +16 -4
- data/app/models/shipit/deploy_spec/file_system.rb +11 -5
- data/app/models/shipit/hook.rb +2 -0
- data/app/models/shipit/merge_request.rb +302 -0
- data/app/models/shipit/provisioning_handler.rb +32 -0
- data/app/models/shipit/provisioning_handler/base.rb +30 -0
- data/app/models/shipit/provisioning_handler/unregistered_provisioning_handler.rb +35 -0
- data/app/models/shipit/pull_request.rb +25 -264
- data/app/models/shipit/pull_request_assignment.rb +10 -0
- data/app/models/shipit/repository.rb +54 -0
- data/app/models/shipit/review_stack.rb +116 -0
- data/app/models/shipit/review_stack_provisioning_queue.rb +39 -0
- data/app/models/shipit/stack.rb +22 -8
- data/app/models/shipit/task.rb +56 -7
- data/app/models/shipit/task_execution_strategy/base.rb +20 -0
- data/app/models/shipit/task_execution_strategy/default.rb +110 -0
- data/app/models/shipit/user.rb +6 -1
- data/app/models/shipit/webhooks.rb +10 -0
- data/app/models/shipit/webhooks/handlers/pull_request/assigned_handler.rb +74 -0
- data/app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb +68 -0
- data/app/models/shipit/webhooks/handlers/pull_request/edited_handler.rb +74 -0
- data/app/models/shipit/webhooks/handlers/pull_request/label_capturing_handler.rb +127 -0
- data/app/models/shipit/webhooks/handlers/pull_request/labeled_handler.rb +106 -0
- data/app/models/shipit/webhooks/handlers/pull_request/opened_handler.rb +83 -0
- data/app/models/shipit/webhooks/handlers/pull_request/reopened_handler.rb +88 -0
- data/app/models/shipit/webhooks/handlers/pull_request/review_stack_adapter.rb +103 -0
- data/app/models/shipit/webhooks/handlers/pull_request/unlabeled_handler.rb +107 -0
- data/app/serializers/shipit/deploy_serializer.rb +6 -0
- data/app/serializers/shipit/merge_request_serializer.rb +21 -0
- data/app/serializers/shipit/pull_request_serializer.rb +5 -8
- data/app/serializers/shipit/review_stack_serializer.rb +7 -0
- data/app/serializers/shipit/stack_serializer.rb +7 -6
- data/app/serializers/shipit/tail_task_serializer.rb +10 -2
- data/app/serializers/shipit/task_serializer.rb +1 -1
- data/app/views/shipit/merge_requests/_merge_request.html.erb +29 -0
- data/app/views/shipit/{pull_requests → merge_requests}/index.html.erb +2 -2
- data/app/views/shipit/merge_requests/merge_requests/_pull_request.html.erb +29 -0
- data/app/views/shipit/merge_requests/merge_requests/index.html.erb +20 -0
- data/app/views/shipit/merge_status/_merge_queue_button.html.erb +3 -3
- data/app/views/shipit/merge_status/backlogged.html.erb +1 -1
- data/app/views/shipit/merge_status/failure.html.erb +1 -1
- data/app/views/shipit/merge_status/locked.html.erb +1 -1
- data/app/views/shipit/merge_status/success.html.erb +2 -2
- data/app/views/shipit/repositories/_header.html.erb +19 -0
- data/app/views/shipit/repositories/index.html.erb +31 -0
- data/app/views/shipit/repositories/new.html.erb +23 -0
- data/app/views/shipit/repositories/settings.html.erb +53 -0
- data/app/views/shipit/repositories/show.html.erb +30 -0
- data/app/views/shipit/stacks/_banners.html.erb +13 -0
- data/app/views/shipit/stacks/_header.html.erb +5 -2
- data/app/views/shipit/stacks/_stack.html.erb +8 -0
- data/app/views/shipit/stacks/index.html.erb +2 -1
- data/app/views/shipit/stacks/settings.html.erb +5 -5
- data/app/views/shipit/stacks/show.html.erb +1 -1
- data/app/views/shipit/tasks/_task_output.html.erb +1 -1
- data/config/routes.rb +15 -5
- data/db/migrate/20200706145406_add_review_stacks.rb +12 -0
- data/db/migrate/20200804144639_rename_pull_request_to_merge_request.rb +7 -0
- data/db/migrate/20200804161512_rename_commits_pull_request_id_to_merge_request_id.rb +5 -0
- data/db/migrate/20200813134712_recreate_shipit_pull_requests.rb +22 -0
- data/db/migrate/20200813194056_create_pull_request_assignments.rb +8 -0
- data/db/migrate/20201001125502_add_provision_pr_stacks_flag_to_repositories.rb +7 -0
- data/db/migrate/20201008145809_add_retry_attempt_to_tasks.rb +5 -0
- data/db/migrate/20201008152744_add_max_retries_to_tasks.rb +5 -0
- data/lib/shipit.rb +11 -1
- data/lib/shipit/github_app.rb +1 -1
- data/lib/shipit/review_stack_commands.rb +8 -0
- data/lib/shipit/stack_commands.rb +6 -1
- data/lib/shipit/task_commands.rb +1 -0
- data/lib/shipit/version.rb +1 -1
- data/lib/tasks/cron.rake +11 -2
- data/test/controllers/api/{pull_requests_controller_test.rb → merge_requests_controller_test.rb} +12 -12
- data/test/controllers/api/outputs_controller_test.rb +1 -0
- data/test/controllers/api/rollback_controller_test.rb +1 -1
- data/test/controllers/api/stacks_controller_test.rb +21 -1
- data/test/controllers/{pull_requests_controller_test.rb → merge_requests_controller_test.rb} +6 -6
- data/test/controllers/repositories_controller_test.rb +71 -0
- data/test/controllers/stacks_controller_test.rb +9 -1
- data/test/controllers/tasks_controller_test.rb +14 -2
- data/test/controllers/webhooks_controller_test.rb +1 -1
- data/test/dummy/config/application.rb +6 -1
- data/test/dummy/config/environments/development.rb +0 -3
- data/test/dummy/config/environments/test.rb +0 -5
- data/test/dummy/db/schema.rb +52 -14
- data/test/dummy/db/seeds.rb +1 -1
- data/test/fixtures/payloads/check_suite_master.json +2 -2
- data/test/fixtures/payloads/invalid_pull_request.json +117 -0
- data/test/fixtures/payloads/provision_disabled_pull_request.json +454 -0
- data/test/fixtures/payloads/pull_request_assigned.json +480 -0
- data/test/fixtures/payloads/pull_request_closed.json +454 -0
- data/test/fixtures/payloads/pull_request_labeled.json +461 -0
- data/test/fixtures/payloads/pull_request_opened.json +454 -0
- data/test/fixtures/payloads/pull_request_reopened.json +454 -0
- data/test/fixtures/payloads/pull_request_unlabeled.json +454 -0
- data/test/fixtures/payloads/pull_request_with_no_repo.json +454 -0
- data/test/fixtures/shipit/commits.yml +15 -2
- data/test/fixtures/shipit/merge_requests.yml +141 -0
- data/test/fixtures/shipit/pull_request_assignments.yml +3 -0
- data/test/fixtures/shipit/pull_requests.yml +10 -131
- data/test/fixtures/shipit/repositories.yml +1 -0
- data/test/fixtures/shipit/stacks.yml +145 -0
- data/test/fixtures/shipit/statuses.yml +9 -0
- data/test/fixtures/shipit/tasks.yml +3 -0
- data/test/fixtures/shipit/users.yml +7 -0
- data/test/helpers/payloads_helper.rb +4 -0
- data/test/jobs/chunk_rollup_job_test.rb +15 -1
- data/test/jobs/destroy_repository_job_test.rb +27 -0
- data/test/jobs/perform_task_job_test.rb +8 -8
- data/test/jobs/{merge_pull_requests_job_test.rb → process_merge_requests_job_test.rb} +18 -18
- data/test/lib/shipit/deploy_commands_test.rb +16 -0
- data/test/lib/shipit/task_commands_test.rb +17 -0
- data/test/models/commits_test.rb +22 -13
- data/test/models/deploy_spec_test.rb +57 -24
- data/test/models/deploys_test.rb +148 -14
- data/test/models/{pull_request_test.rb → merge_request_test.rb} +30 -30
- data/test/models/pull_request_assignment_test.rb +16 -0
- data/test/models/shipit/provisioning_handler/base_test.rb +33 -0
- data/test/models/shipit/provisioning_handler/unregistered_provisioning_handler_test.rb +49 -0
- data/test/models/shipit/provisioning_handler_test.rb +64 -0
- data/test/models/shipit/pull_request_test.rb +52 -0
- data/test/models/shipit/repository_test.rb +5 -1
- data/test/models/shipit/review_stack_provision_status_test.rb +77 -0
- data/test/models/shipit/review_stack_provisioning_queue_test.rb +63 -0
- data/test/models/shipit/review_stack_test.rb +59 -0
- data/test/models/{stacks_test.rb → shipit/stacks_test.rb} +10 -4
- data/test/models/shipit/webhooks/handlers/pull_request/assigned_handler_test.rb +45 -0
- data/test/models/shipit/webhooks/handlers/pull_request/closed_handler_test.rb +192 -0
- data/test/models/shipit/webhooks/handlers/pull_request/edited_handler_test.rb +47 -0
- data/test/models/shipit/webhooks/handlers/pull_request/label_capturing_handler_test.rb +209 -0
- data/test/models/shipit/webhooks/handlers/pull_request/labeled_handler_test.rb +332 -0
- data/test/models/shipit/webhooks/handlers/pull_request/opened_handler_test.rb +238 -0
- data/test/models/shipit/webhooks/handlers/pull_request/reopened_handler_test.rb +282 -0
- data/test/models/shipit/webhooks/handlers/pull_request/review_stack_adapter_test.rb +83 -0
- data/test/models/shipit/webhooks/handlers/pull_request/unlabeled_handler_test.rb +324 -0
- data/test/models/shipit/{wehbooks → webhooks}/handlers_test.rb +0 -0
- data/test/models/tasks_test.rb +44 -3
- data/test/serializers/shipit/pull_request_serializer_test.rb +29 -0
- data/test/unit/command_test.rb +3 -3
- data/test/unit/github_url_helper_test.rb +5 -0
- data/test/unit/shipit_task_execution_strategy_test.rb +47 -0
- metadata +260 -154
- data/app/controllers/shipit/pull_requests_controller.rb +0 -31
- data/app/jobs/shipit/merge_pull_requests_job.rb +0 -32
- data/app/jobs/shipit/refresh_pull_request_job.rb +0 -11
- data/app/views/shipit/pull_requests/_pull_request.html.erb +0 -29
- data/test/fixtures/shipit/output_chunks.yml +0 -47
- data/test/models/output_chunk_test.rb +0 -21
|
@@ -4,10 +4,11 @@ module Shipit
|
|
|
4
4
|
include ConditionalAttributes
|
|
5
5
|
|
|
6
6
|
has_one :lock_author
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
|
|
8
|
+
attributes :id, :repo_owner, :repo_name, :environment, :html_url, :url, :tasks_url, :deploy_url,
|
|
9
|
+
:merge_requests_url, :deploy_spec, :undeployed_commits_count, :is_locked, :lock_reason, :continuous_deployment,
|
|
10
|
+
:created_at, :updated_at, :locked_since, :last_deployed_at, :branch, :merge_queue_enabled, :is_archived,
|
|
11
|
+
:archived_since
|
|
11
12
|
|
|
12
13
|
def url
|
|
13
14
|
api_stack_url(object)
|
|
@@ -21,8 +22,8 @@ module Shipit
|
|
|
21
22
|
api_stack_tasks_url(object)
|
|
22
23
|
end
|
|
23
24
|
|
|
24
|
-
def
|
|
25
|
-
|
|
25
|
+
def merge_requests_url
|
|
26
|
+
api_stack_merge_requests_url(object)
|
|
26
27
|
end
|
|
27
28
|
|
|
28
29
|
def is_locked
|
|
@@ -8,7 +8,7 @@ module Shipit
|
|
|
8
8
|
|
|
9
9
|
def url
|
|
10
10
|
return @url if defined? @url
|
|
11
|
-
@url = next_chunks_url(task)
|
|
11
|
+
@url = next_chunks_url(task, last_byte: next_offset)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def include_url?
|
|
@@ -16,7 +16,7 @@ module Shipit
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def output
|
|
19
|
-
task.
|
|
19
|
+
@output ||= task.tail_output(last_byte)
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def rollback_url
|
|
@@ -32,6 +32,14 @@ module Shipit
|
|
|
32
32
|
alias_method :task, :object
|
|
33
33
|
delegate :stack, to: :object
|
|
34
34
|
|
|
35
|
+
def next_offset
|
|
36
|
+
last_byte + output.bytesize
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def last_byte
|
|
40
|
+
context[:last_byte].to_i
|
|
41
|
+
end
|
|
42
|
+
|
|
35
43
|
def rollback
|
|
36
44
|
return @rollback if defined? @rollback
|
|
37
45
|
@rollback = stack.rollbacks.where(parent_id: task.id).last
|
|
@@ -6,7 +6,7 @@ module Shipit
|
|
|
6
6
|
has_one :author
|
|
7
7
|
has_one :revision, serializer: ShortCommitSerializer
|
|
8
8
|
|
|
9
|
-
attributes(:id, :url, :html_url, :output_url, :type, :status, :action, :title, :description, :started_at, :ended_at, :updated_at, :created_at, :env, :ignored_safeties)
|
|
9
|
+
attributes(:id, :url, :html_url, :output_url, :type, :status, :action, :title, :description, :started_at, :ended_at, :updated_at, :created_at, :env, :ignored_safeties, :max_retries, :retry_attempt)
|
|
10
10
|
|
|
11
11
|
def revision
|
|
12
12
|
object.until_commit
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<li class="pr" id="pr-<%= merge_request.id %>">
|
|
2
|
+
<%= render 'shipit/shared/author', author: merge_request.merge_requested_by %>
|
|
3
|
+
<div class="pr-details">
|
|
4
|
+
<span class="pr-number">
|
|
5
|
+
<%= pull_request_link(merge_request) %>
|
|
6
|
+
</span>
|
|
7
|
+
<span class="pr-title">
|
|
8
|
+
<%= render_pull_request_title_with_link merge_request %>
|
|
9
|
+
</span>
|
|
10
|
+
<p class="pr-meta">
|
|
11
|
+
<span class="code-additions">+<%= merge_request.additions %></span>
|
|
12
|
+
<span class="code-deletions">-<%= merge_request.deletions %></span>
|
|
13
|
+
</p>
|
|
14
|
+
<p class="pr-meta">
|
|
15
|
+
Enqueued <%= timeago_tag(merge_request.merge_requested_at, force: true) %>
|
|
16
|
+
<% if merge_request.revalidating? %>
|
|
17
|
+
<em class="warning">Need revalidation.</em>
|
|
18
|
+
<% end %>
|
|
19
|
+
</p>
|
|
20
|
+
</div>
|
|
21
|
+
<% if merge_request.revalidating? %>
|
|
22
|
+
<div class="commit-actions">
|
|
23
|
+
<%= button_to 'Confirm', stack_merge_requests_path(merge_request.stack, number_or_url: merge_request.number), class: 'btn btn--warning', method: 'post' %>
|
|
24
|
+
</div>
|
|
25
|
+
<% end %>
|
|
26
|
+
<div class="commit-actions">
|
|
27
|
+
<%= button_to 'Cancel', stack_merge_request_path(merge_request.stack, merge_request), class: 'btn btn--warning', method: 'delete' %>
|
|
28
|
+
</div>
|
|
29
|
+
</li>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<div class="wrapper">
|
|
6
6
|
<section>
|
|
7
7
|
<header class="section-header">
|
|
8
|
-
<%= form_tag
|
|
8
|
+
<%= form_tag stack_merge_requests_path(@stack) do %>
|
|
9
9
|
<div class="field-wrapper inline">
|
|
10
10
|
<%= text_field_tag :number_or_url, '', placeholder: 'PR number or URL' %>
|
|
11
11
|
<%= submit_tag 'Request merge', class: 'btn' %>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
</header>
|
|
15
15
|
|
|
16
16
|
<ul class="pr-list">
|
|
17
|
-
<%= render @
|
|
17
|
+
<%= render @merge_requests %>
|
|
18
18
|
</ul>
|
|
19
19
|
</section>
|
|
20
20
|
</div>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<li class="pr" id="pr-<%= merge_request.id %>">
|
|
2
|
+
<%= render 'shipit/shared/author', author: merge_request.merge_requested_by %>
|
|
3
|
+
<div class="pr-details">
|
|
4
|
+
<span class="pr-number">
|
|
5
|
+
<%= pull_request_link(merge_request) %>
|
|
6
|
+
</span>
|
|
7
|
+
<span class="pr-title">
|
|
8
|
+
<%= render_pull_request_title_with_link merge_request %>
|
|
9
|
+
</span>
|
|
10
|
+
<p class="pr-meta">
|
|
11
|
+
<span class="code-additions">+<%= merge_request.additions %></span>
|
|
12
|
+
<span class="code-deletions">-<%= merge_request.deletions %></span>
|
|
13
|
+
</p>
|
|
14
|
+
<p class="pr-meta">
|
|
15
|
+
Enqueued <%= timeago_tag(merge_request.merge_requested_at, force: true) %>
|
|
16
|
+
<% if merge_request.revalidating? %>
|
|
17
|
+
<em class="warning">Need revalidation.</em>
|
|
18
|
+
<% end %>
|
|
19
|
+
</p>
|
|
20
|
+
</div>
|
|
21
|
+
<% if merge_request.revalidating? %>
|
|
22
|
+
<div class="commit-actions">
|
|
23
|
+
<%= button_to 'Confirm', stack_merge_requests_path(merge_request.stack, number_or_url: merge_request.number), class: 'btn btn--warning', method: 'post' %>
|
|
24
|
+
</div>
|
|
25
|
+
<% end %>
|
|
26
|
+
<div class="commit-actions">
|
|
27
|
+
<%= button_to 'Cancel', stack_merge_request_path(merge_request.stack, merge_request), class: 'btn btn--warning', method: 'delete' %>
|
|
28
|
+
</div>
|
|
29
|
+
</li>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<% subscribe events_path(channels: ["stack.#{@stack.id}"]), '.pr-list', '.header' %>
|
|
2
|
+
|
|
3
|
+
<%= render partial: 'shipit/stacks/header', locals: { stack: @stack } %>
|
|
4
|
+
|
|
5
|
+
<div class="wrapper">
|
|
6
|
+
<section>
|
|
7
|
+
<header class="section-header">
|
|
8
|
+
<%= form_tag stack_merge_requests_path(@stack) do %>
|
|
9
|
+
<div class="field-wrapper inline">
|
|
10
|
+
<%= text_field_tag :number_or_url, '', placeholder: 'PR number or URL' %>
|
|
11
|
+
<%= submit_tag 'Request merge', class: 'btn' %>
|
|
12
|
+
</div>
|
|
13
|
+
<% end %>
|
|
14
|
+
</header>
|
|
15
|
+
|
|
16
|
+
<ul class="pr-list">
|
|
17
|
+
<%= render @merge_requests %>
|
|
18
|
+
</ul>
|
|
19
|
+
</section>
|
|
20
|
+
</div>
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<% classes = 'branch-action-btn float-right js-immediate-updates js-handle-pull-merging-errors' %>
|
|
2
|
-
<% if
|
|
3
|
-
<%= form_tag
|
|
2
|
+
<% if merge_request.try!(&:waiting?) %>
|
|
3
|
+
<%= form_tag dequeue_merge_request_path(stack, pull_request_number), method: 'delete', class: classes, data: {remote: true} do %>
|
|
4
4
|
<%= hidden_field_tag 'referrer', params[:referrer] %>
|
|
5
5
|
<button type="submit" data-disable-with="Removing from merge queue…" class="btn">
|
|
6
6
|
Remove from merge queue
|
|
7
7
|
</button>
|
|
8
8
|
<% end %>
|
|
9
9
|
<% else %>
|
|
10
|
-
<%= form_tag
|
|
10
|
+
<%= form_tag enqueue_merge_request_path(stack, pull_request_number), method: 'put', class: classes, data: {remote: true} do %>
|
|
11
11
|
<%= hidden_field_tag 'referrer', params[:referrer] %>
|
|
12
12
|
<button type="submit" data-disable-with="Adding to merge queue…" class="btn btn-primary">
|
|
13
13
|
Add to merge queue
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
7
|
<h4 class="status-heading">
|
|
8
|
-
<% if
|
|
9
|
-
<% if
|
|
8
|
+
<% if merge_request.waiting? %>
|
|
9
|
+
<% if merge_request.all_status_checks_passed? %>
|
|
10
10
|
Will be merged shortly!
|
|
11
11
|
<% else %>
|
|
12
12
|
Will be merged when required checks are passing.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<% content_for :page_title do %>
|
|
2
|
+
<span><%= repository.owner %></span>
|
|
3
|
+
<h1><%= repository.name %></h1>
|
|
4
|
+
<% end %>
|
|
5
|
+
|
|
6
|
+
<% content_for :primary_navigation do %>
|
|
7
|
+
<%= link_to 'Add a stack', repository_stacks_new_path(repository), class: 'btn secondary' %>
|
|
8
|
+
<% end %>
|
|
9
|
+
|
|
10
|
+
<% content_for :secondary_navigation do %>
|
|
11
|
+
<ul class="nav__list nav__list--primary">
|
|
12
|
+
<li class="nav__list__item">
|
|
13
|
+
<%= link_to 'Stacks', repository_path(repository) %>
|
|
14
|
+
</li>
|
|
15
|
+
<li class="nav__list__item">
|
|
16
|
+
<%= link_to 'Settings', repository_settings_path(repository) %>
|
|
17
|
+
</li>
|
|
18
|
+
</ul>
|
|
19
|
+
<% end %>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<% content_for :page_title do %>
|
|
2
|
+
<h1>Repositories</h1>
|
|
3
|
+
<% end %>
|
|
4
|
+
<% content_for :primary_navigation do %>
|
|
5
|
+
<%= link_to 'Add a repository', new_repository_path, class: 'btn secondary' %>
|
|
6
|
+
<% end %>
|
|
7
|
+
|
|
8
|
+
<div class="wrapper <%= 'filtering-enabled' if @repositories.size > 10 %>">
|
|
9
|
+
<section>
|
|
10
|
+
<header class="section-header repository-search-header">
|
|
11
|
+
<input class="repository-search" placeholder="Search <%= @repositories.size %> repositories" />
|
|
12
|
+
</header>
|
|
13
|
+
<ul class="repository-table-header">
|
|
14
|
+
<li class="col">Owner<li>
|
|
15
|
+
<li class="col">Name</li>
|
|
16
|
+
</ul>
|
|
17
|
+
<ul class="repository-lst">
|
|
18
|
+
<% @repositories.each do |repository| %>
|
|
19
|
+
<li class="search-item <%= contributor_class(current_user.repositories_contributed_to, repository.id) %>" data-search="<%= repository.github_repo_name %>" data-repository-id="<%= repository.id %>">
|
|
20
|
+
<%= link_to repository_path(repository), class: 'commits-path' do %>
|
|
21
|
+
<span class="col"><%= repository.owner %></span>
|
|
22
|
+
<span class="col"><%= repository.name %></span>
|
|
23
|
+
<% end %>
|
|
24
|
+
</li>
|
|
25
|
+
<% end %>
|
|
26
|
+
</ul>
|
|
27
|
+
|
|
28
|
+
<%= link_to 'show all repositories', '#', class: 'btn secondary show-all-repositories' %></p>
|
|
29
|
+
</section>
|
|
30
|
+
|
|
31
|
+
</div>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<% content_for :page_title do %>
|
|
2
|
+
<h1>Create a repository</h1>
|
|
3
|
+
<% end %>
|
|
4
|
+
|
|
5
|
+
<div class="wrapper">
|
|
6
|
+
<section>
|
|
7
|
+
<div class="setting-section">
|
|
8
|
+
<%= form_for @repository do |f| %>
|
|
9
|
+
<div class="field-wrapper">
|
|
10
|
+
<%= label_tag "Repo" %>
|
|
11
|
+
<br>
|
|
12
|
+
<%= Shipit.github.url %>
|
|
13
|
+
/
|
|
14
|
+
<%= f.text_field :owner, placeholder: 'e.g. Shopify', required: true, class: "repo" %>
|
|
15
|
+
/
|
|
16
|
+
<%= f.text_field :name, required: true, pattern: "^[a-zA-Z0-9\-_\.]+$", class: "repo" %>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<div class="field-wrapper"><%= f.submit class: 'btn' %></div>
|
|
20
|
+
<% end %>
|
|
21
|
+
</div>
|
|
22
|
+
</section>
|
|
23
|
+
</div>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<%= render partial: 'shipit/repositories/header', locals: { repository: @repository } %>
|
|
2
|
+
|
|
3
|
+
<div class="wrapper">
|
|
4
|
+
<section>
|
|
5
|
+
<header class="section-header">
|
|
6
|
+
<h2>Settings (Repository <%= @repository.github_repo_name %>)</h2>
|
|
7
|
+
</header>
|
|
8
|
+
|
|
9
|
+
<div class="setting-section">
|
|
10
|
+
<%= form_for @repository do |f| %>
|
|
11
|
+
<div class="field-wrapper">
|
|
12
|
+
<%= f.check_box :review_stacks_enabled %>
|
|
13
|
+
<%= f.label :review_stacks_enabled, "Dynamically provision stacks for Pull Requests?" %>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
<div class="field-wrapper">
|
|
17
|
+
<p>
|
|
18
|
+
<%= f.label :provisioning_behavior, "Provisioning behavior", aria: { describedby: 'provisioningBehaviorHelp' } %>
|
|
19
|
+
<%= f.select :provisioning_behavior, Shipit::Repository.provisioning_behaviors.map { |key, value| [ key.titleize, key] } %>
|
|
20
|
+
</p>
|
|
21
|
+
<p>
|
|
22
|
+
<small class="form-text text-muted" id="provisioningBehaviorHelp">
|
|
23
|
+
When "Allow All", the provisioning label has no effect on dynamic stack provisioning - ALL Pull Requests dynamically provision stacks.
|
|
24
|
+
</small>
|
|
25
|
+
</p>
|
|
26
|
+
<p>
|
|
27
|
+
<small class="form-text text-muted">
|
|
28
|
+
When "Allow With Label", dynamic provisioning occurs ONLY for Pull Requests whose labels include the 'Provisioning Label'.
|
|
29
|
+
</small>
|
|
30
|
+
</p>
|
|
31
|
+
<p>
|
|
32
|
+
<small class="form-text text-muted">
|
|
33
|
+
When "Prevent With Label", dynamic provisioning will occur for every Pull Request EXCEPT those whose labels include the 'Provisioning Label'.
|
|
34
|
+
</small>
|
|
35
|
+
</p>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<div class="field-wrapper">
|
|
39
|
+
<%= f.label :provisioning_label_name, "Provisioning label" %>
|
|
40
|
+
<%= f.text_field :provisioning_label_name %>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<%= f.submit class: "btn", value: "Save" %>
|
|
44
|
+
<% end %>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<div class="setting-section">
|
|
48
|
+
<h5>Delete this repository</h5>
|
|
49
|
+
<p>This action will delete the repository and its stacks from Ship it permanently. Be careful.</p>
|
|
50
|
+
<%= button_to "Delete…", repository_path(@repository), class: 'btn btn--delete', data: {confirm: 'Are you sure?'}, method: :delete %>
|
|
51
|
+
</div>
|
|
52
|
+
</section>
|
|
53
|
+
</div>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<% subscribe events_path(channels: ["repository.#{@repository.id}"]), '#layout-content' %>
|
|
2
|
+
|
|
3
|
+
<%= render partial: 'shipit/repositories/header', locals: {repository: @repository} %>
|
|
4
|
+
|
|
5
|
+
<div class="wrapper">
|
|
6
|
+
<section>
|
|
7
|
+
<% cache [@repository, params[:show_archived]] do %>
|
|
8
|
+
<section>
|
|
9
|
+
<header class="section-header">
|
|
10
|
+
<h2>Stacks</h2>
|
|
11
|
+
</header>
|
|
12
|
+
<ul class="repository-table-header">
|
|
13
|
+
<li class="col">Name</li>
|
|
14
|
+
<li class="col">Environment</li>
|
|
15
|
+
<li class="col">Branch</li>
|
|
16
|
+
<li class="col">Deploy URL</li>
|
|
17
|
+
</ul>
|
|
18
|
+
<ul class="repository-lst">
|
|
19
|
+
<%= render @stacks %>
|
|
20
|
+
</ul>
|
|
21
|
+
|
|
22
|
+
<%= link_to 'show all stacks', '#', class: 'btn secondary show-all-stacks' %></p>
|
|
23
|
+
<% if @show_archived %>
|
|
24
|
+
<%= link_to 'hide archived stacks', '?', class: 'btn secondary' %></p>
|
|
25
|
+
<% else %>
|
|
26
|
+
<%= link_to 'show archived stacks', '?show_archived=1', class: 'btn secondary' %></p>
|
|
27
|
+
<% end %>
|
|
28
|
+
</section>
|
|
29
|
+
<% end %>
|
|
30
|
+
</div>
|
|
@@ -49,6 +49,19 @@
|
|
|
49
49
|
</div>
|
|
50
50
|
<% end %>
|
|
51
51
|
|
|
52
|
+
<% if stack.awaiting_provision? %>
|
|
53
|
+
<div class="banner banner--orange">
|
|
54
|
+
<div class="banner__inner wrapper">
|
|
55
|
+
<div class="banner__content">
|
|
56
|
+
<h2 class="banner__title">
|
|
57
|
+
<i class="icon icon--list"></i>
|
|
58
|
+
This stack is in a queue waiting on provisioning. This may be because too many review stacks exist for this repository.
|
|
59
|
+
</h2>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
<% end %>
|
|
64
|
+
|
|
52
65
|
<% if stack.continuous_delivery_delayed? %>
|
|
53
66
|
<div class="banner">
|
|
54
67
|
<div class="banner__inner wrapper">
|
|
@@ -22,9 +22,12 @@
|
|
|
22
22
|
<li class="nav__list__item">
|
|
23
23
|
<%= link_to t('stack.nav.statistics'), stack_statistics_path(stack) %>
|
|
24
24
|
</li>
|
|
25
|
+
<li class="nav__list__item">
|
|
26
|
+
<%= link_to 'Repository', repository_path(stack.repository) %>
|
|
27
|
+
</li>
|
|
25
28
|
<% if stack.merge_queue_enabled? %>
|
|
26
29
|
<li class="nav__list__item">
|
|
27
|
-
<%= link_to t('stack.nav.merge_queue', count: stack.
|
|
30
|
+
<%= link_to t('stack.nav.merge_queue', count: stack.merge_requests.queued.count), stack_merge_requests_path(stack) %>
|
|
28
31
|
</li>
|
|
29
32
|
<% end %>
|
|
30
33
|
|
|
@@ -64,7 +67,7 @@
|
|
|
64
67
|
</li>
|
|
65
68
|
<% end %>
|
|
66
69
|
<li class="nav__list__item">
|
|
67
|
-
<%= link_to t('stack.nav.view_on_github'),
|
|
70
|
+
<%= link_to t('stack.nav.view_on_github'), stack_github_url(stack) %>
|
|
68
71
|
</li>
|
|
69
72
|
<% if stack.deploy_url.present? %>
|
|
70
73
|
<li class="nav__list__item">
|