shipit-engine 0.37.0 → 0.38.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/shipit/api/stacks_controller.rb +25 -1
  3. data/app/helpers/shipit/api_clients_helper.rb +12 -0
  4. data/app/jobs/shipit/continuous_delivery_job.rb +4 -1
  5. data/app/models/shipit/stack.rb +8 -0
  6. data/app/models/shipit/task_execution_strategy/default.rb +1 -1
  7. data/app/views/shipit/api_clients/show.html.erb +1 -1
  8. data/db/migrate/20230703181143_change_commit_deployment_statuses_github_id_to_big_int.rb +5 -0
  9. data/lib/shipit/octokit_iterator.rb +2 -0
  10. data/lib/shipit/stack_commands.rb +10 -0
  11. data/lib/shipit/task_commands.rb +1 -1
  12. data/lib/shipit/version.rb +1 -1
  13. data/test/controllers/api/base_controller_test.rb +1 -1
  14. data/test/controllers/api/ccmenu_controller_test.rb +1 -1
  15. data/test/controllers/api/commits_controller_test.rb +1 -1
  16. data/test/controllers/api/deploys_controller_test.rb +1 -1
  17. data/test/controllers/api/hooks_controller_test.rb +1 -1
  18. data/test/controllers/api/locks_controller_test.rb +1 -1
  19. data/test/controllers/api/merge_requests_controller_test.rb +1 -1
  20. data/test/controllers/api/outputs_controller_test.rb +1 -1
  21. data/test/controllers/api/release_statuses_controller_test.rb +1 -1
  22. data/test/controllers/api/rollback_controller_test.rb +1 -1
  23. data/test/controllers/api/stacks_controller_test.rb +52 -1
  24. data/test/controllers/api/tasks_controller_test.rb +1 -1
  25. data/test/dummy/db/schema.rb +2 -2
  26. data/test/helpers/api_helper.rb +13 -0
  27. data/test/models/shipit/stacks_test.rb +30 -0
  28. data/test/unit/deploy_commands_test.rb +94 -6
  29. metadata +5 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 174fee8bf3ed460fa137cbe666f639fec2218d0617b4860dcede08d38ed6d93d
4
- data.tar.gz: 739d8f122ead25b8f1053f954686e4ddd574bc17b544de9b69dce5af7635425c
3
+ metadata.gz: f671228679f81a64a70284699951ea5cc8fce83e82a56263cf6a4f52055f5976
4
+ data.tar.gz: 0d795762874714a9d592edb0dd3fd1b599f1819edc06d1085252a9e26ef0073b
5
5
  SHA512:
6
- metadata.gz: 7b3118fb7bc39e0c8cddad0444d34c39e935bcc192010dec3b27b2bddd9947a770573a959b13fe26661eb8874963b10cdb8ab2382d6eec811ebd8cd87322cc41
7
- data.tar.gz: cd173c7dc66f31a90e878ed9a2da9724132286c93f2a9c168a5593f81ffbfe3c6f25161095fafe7df1e9d7c2561339ca0c4051ae856c78d8698d382e8d65818c
6
+ metadata.gz: 6c55d8a3f3ab16affd874abd8c15e51c19a29e81ddb3131a4695d9ca2ba409e312e40892ddbd66ec6bca32ce403254f02de632dbab06a97306c6a0da5e684c2e
7
+ data.tar.gz: fd7b4ad69bd0b03a486a38a4ce2dcf0802581aee836e44f1390f362aeace5b1fbb30f24bd3a5579da89e0bfca8f588ed16d121e9be7a4afd7f7f1efda208a97f
@@ -46,9 +46,13 @@ module Shipit
46
46
  accepts :ignore_ci, Boolean
47
47
  accepts :merge_queue_enabled, Boolean
48
48
  accepts :continuous_deployment, Boolean
49
+ accepts :archived, Boolean
49
50
  end
50
51
  def update
51
- stack.update(params)
52
+ stack.update(update_params)
53
+
54
+ update_archived
55
+
52
56
  render_resource(stack)
53
57
  end
54
58
 
@@ -78,6 +82,26 @@ module Shipit
78
82
  @stack ||= stacks.from_param!(params[:id])
79
83
  end
80
84
 
85
+ def update_archived
86
+ if key?(:archived)
87
+ if params[:archived]
88
+ stack.archive!(nil)
89
+ elsif stack.archived?
90
+ stack.unarchive!
91
+ end
92
+ end
93
+ end
94
+
95
+ def key?(key)
96
+ params.to_h.key?(key)
97
+ end
98
+
99
+ def update_params
100
+ params.select do |key, _|
101
+ %i(environment branch deploy_url ignore_ci merge_queue_enabled continuous_deployment).include?(key)
102
+ end
103
+ end
104
+
81
105
  def repository
82
106
  @repository ||= Repository.find_or_create_by(owner: repo_owner, name: repo_name)
83
107
  end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+ module Shipit
3
+ module ApiClientsHelper
4
+ def api_client_token(api_client)
5
+ if api_client.created_at >= 5.minutes.ago && current_user == api_client.creator
6
+ api_client.authentication_token
7
+ else
8
+ "#{api_client.authentication_token[0..5]}************************"
9
+ end
10
+ end
11
+ end
12
+ end
@@ -8,7 +8,10 @@ module Shipit
8
8
 
9
9
  def perform(stack)
10
10
  return unless stack.continuous_deployment?
11
- return if stack.active_task?
11
+
12
+ # checks if there are any tasks running, including concurrent tasks
13
+ return if stack.occupied?
14
+
12
15
  stack.trigger_continuous_delivery
13
16
  end
14
17
  end
@@ -453,6 +453,14 @@ module Shipit
453
453
  @active_task ||= tasks.current
454
454
  end
455
455
 
456
+ def occupied?
457
+ !!occupied
458
+ end
459
+
460
+ def occupied
461
+ @occupied ||= tasks.active.last
462
+ end
463
+
456
464
  def locked?
457
465
  lock_reason.present?
458
466
  end
@@ -70,7 +70,7 @@ module Shipit
70
70
  @task.acquire_git_cache_lock do
71
71
  @task.ping
72
72
  unless @commands.fetched?(@task.until_commit).tap(&:run).success?
73
- capture!(@commands.fetch)
73
+ capture!(@commands.fetch_commit(@task.until_commit))
74
74
  end
75
75
  end
76
76
  end
@@ -10,7 +10,7 @@
10
10
  <section>
11
11
  <h3>Authentication token:</h3>
12
12
  <code style="background-color: yellow">
13
- <b><%= @api_client.authentication_token %></b>
13
+ <b><%= api_client_token(@api_client) %></b>
14
14
  </code>
15
15
  </section>
16
16
 
@@ -0,0 +1,5 @@
1
+ class ChangeCommitDeploymentStatusesGithubIdToBigInt < ActiveRecord::Migration[7.0]
2
+ def change
3
+ change_column :commit_deployment_statuses, :github_id, :bigint
4
+ end
5
+ end
@@ -16,6 +16,8 @@ module Shipit
16
16
  response = @response
17
17
 
18
18
  loop do
19
+ return unless response.present?
20
+
19
21
  response.data.each(&block)
20
22
  return unless response.rels[:next]
21
23
  response = response.rels[:next].get
@@ -13,6 +13,16 @@ module Shipit
13
13
  super.merge(@stack.env)
14
14
  end
15
15
 
16
+ def fetch_commit(commit)
17
+ create_directories
18
+ if valid_git_repository?(@stack.git_path)
19
+ git('fetch', 'origin', '--quiet', '--tags', commit.sha, env: env, chdir: @stack.git_path)
20
+ else
21
+ @stack.clear_git_cache!
22
+ git_clone(@stack.repo_git_url, @stack.git_path, branch: @stack.branch, env: env, chdir: @stack.deploys_path)
23
+ end
24
+ end
25
+
16
26
  def fetch
17
27
  create_directories
18
28
  if valid_git_repository?(@stack.git_path)
@@ -2,7 +2,7 @@
2
2
  # rubocop:disable Lint/MissingSuper
3
3
  module Shipit
4
4
  class TaskCommands < Commands
5
- delegate :fetch, :fetched?, to: :stack_commands
5
+ delegate :fetch_commit, :fetch, :fetched?, to: :stack_commands
6
6
 
7
7
  def initialize(task)
8
8
  @task = task
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Shipit
3
- VERSION = '0.37.0'
3
+ VERSION = '0.38.0'
4
4
  end
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class BaseControllerTest < ActionController::TestCase
6
+ class BaseControllerTest < ApiControllerTestCase
7
7
  test "authentication is required" do
8
8
  get :index
9
9
  assert_response :unauthorized
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class CCMenuControllerTest < ActionController::TestCase
6
+ class CCMenuControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  authenticate!
9
9
  @stack = shipit_stacks(:shipit)
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class CommitsControllerTest < ActionController::TestCase
6
+ class CommitsControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  @stack = shipit_stacks(:shipit)
9
9
  authenticate!
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class DeploysControllerTest < ActionController::TestCase
6
+ class DeploysControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  authenticate!
9
9
  @user = shipit_users(:walrus)
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class HooksControllerTest < ActionController::TestCase
6
+ class HooksControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  authenticate!
9
9
  @stack = shipit_stacks(:shipit)
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class LocksControllerTest < ActionController::TestCase
6
+ class LocksControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  authenticate!
9
9
  @stack = shipit_stacks(:shipit)
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class MergeRequestsControllerTest < ActionController::TestCase
6
+ class MergeRequestsControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  @stack = shipit_stacks(:shipit)
9
9
  @merge_request = shipit_merge_requests(:shipit_pending)
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class OutputsControllerTest < ActionController::TestCase
6
+ class OutputsControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  @stack = shipit_stacks(:shipit)
9
9
  authenticate!
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class ReleaseStatusesControllerTest < ActionController::TestCase
6
+ class ReleaseStatusesControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  authenticate!
9
9
  @stack = shipit_stacks(:shipit_canaries)
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class RollbacksControllerTest < ActionController::TestCase
6
+ class RollbacksControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  authenticate!
9
9
  @user = shipit_users(:walrus)
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class StacksControllerTest < ActionController::TestCase
6
+ class StacksControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  authenticate!
9
9
  @stack = shipit_stacks(:shipit)
@@ -114,6 +114,57 @@ module Shipit
114
114
  refute @stack.continuous_deployment
115
115
  end
116
116
 
117
+ test "#update does not perform archive when key is not provided" do
118
+ refute_predicate @stack, :archived?
119
+ refute_predicate @stack, :locked?
120
+
121
+ patch :update, params: { id: @stack.to_param }
122
+
123
+ @stack.reload
124
+ refute_predicate @stack, :archived?
125
+ refute_predicate @stack, :locked?
126
+ end
127
+
128
+ test "#update does not perform unarchive when key is not provided" do
129
+ @stack.archive!(shipit_users(:walrus))
130
+ assert_predicate @stack, :locked?
131
+ assert_predicate @stack, :archived?
132
+
133
+ patch :update, params: { id: @stack.to_param }
134
+
135
+ @stack.reload
136
+ assert_predicate @stack, :locked?
137
+ assert_predicate @stack, :archived?
138
+ end
139
+
140
+ test "#update allows to archive the stack" do
141
+ refute_predicate @stack, :archived?
142
+ refute_predicate @stack, :locked?
143
+
144
+ patch :update, params: { id: @stack.to_param, archived: true }
145
+
146
+ @stack.reload
147
+ assert_predicate @stack, :locked?
148
+ assert_predicate @stack, :archived?
149
+ assert_instance_of AnonymousUser, @stack.lock_author
150
+ assert_equal "Archived", @stack.lock_reason
151
+ end
152
+
153
+ test "#update allows to unarchive the stack" do
154
+ @stack.archive!(shipit_users(:walrus))
155
+ assert_predicate @stack, :locked?
156
+ assert_predicate @stack, :archived?
157
+
158
+ patch :update, params: { id: @stack.to_param, archived: false }
159
+
160
+ @stack.reload
161
+ refute_predicate @stack, :archived?
162
+ refute_predicate @stack, :locked?
163
+ assert_nil @stack.locked_since
164
+ assert_nil @stack.lock_reason
165
+ assert_instance_of AnonymousUser, @stack.lock_author
166
+ end
167
+
117
168
  test "#index returns a list of stacks" do
118
169
  stack = Stack.last
119
170
  get :index
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
 
4
4
  module Shipit
5
5
  module Api
6
- class TasksControllerTest < ActionController::TestCase
6
+ class TasksControllerTest < ApiControllerTestCase
7
7
  setup do
8
8
  @stack = shipit_stacks(:shipit)
9
9
  @user = shipit_users(:walrus)
@@ -10,7 +10,7 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 2021_11_03_154121) do
13
+ ActiveRecord::Schema.define(version: 2023_07_03_181143) do
14
14
 
15
15
  create_table "api_clients", force: :cascade do |t|
16
16
  t.text "permissions", limit: 65535
@@ -42,7 +42,7 @@ ActiveRecord::Schema.define(version: 2021_11_03_154121) do
42
42
  create_table "commit_deployment_statuses", force: :cascade do |t|
43
43
  t.integer "commit_deployment_id"
44
44
  t.string "status"
45
- t.integer "github_id"
45
+ t.bigint "github_id"
46
46
  t.string "api_url"
47
47
  t.datetime "created_at", null: false
48
48
  t.datetime "updated_at", null: false
@@ -8,3 +8,16 @@ module ApiHelper
8
8
  request.headers['Authorization'] = "Basic #{Base64.encode64(client.authentication_token)}"
9
9
  end
10
10
  end
11
+
12
+ module Shipit
13
+ class ApiControllerTestCase < ActionController::TestCase
14
+ private
15
+
16
+ def process(_action, **kwargs)
17
+ if kwargs[:method] != "GET"
18
+ kwargs[:as] ||= :json
19
+ end
20
+ super
21
+ end
22
+ end
23
+ end
@@ -278,6 +278,36 @@ module Shipit
278
278
  end
279
279
  end
280
280
 
281
+ test "#active_task? is false if stack has a concurrent deploy in active state" do
282
+ @stack.trigger_deploy(shipit_commits(:third), AnonymousUser.new, force: true)
283
+ refute @stack.active_task?
284
+ end
285
+
286
+ test "#occupied? is false if stack has no deploy in either pending or running state" do
287
+ @stack.deploys.active.destroy_all
288
+ refute @stack.occupied?
289
+ end
290
+
291
+ test "#occupied? is false if stack has no deploy at all" do
292
+ @stack.deploys.destroy_all
293
+ refute @stack.occupied?
294
+ end
295
+
296
+ test "occupied? is true if stack has a concurrent deploy in active state" do
297
+ @stack.trigger_deploy(shipit_commits(:third), AnonymousUser.new, force: true)
298
+ assert @stack.occupied?
299
+ end
300
+
301
+ test "occupied? is true if stack has a deploy in pending state" do
302
+ @stack.trigger_deploy(shipit_commits(:third), AnonymousUser.new)
303
+ assert @stack.occupied?
304
+ end
305
+
306
+ test "#occupied? is true if a rollback is ongoing" do
307
+ shipit_deploys(:shipit_complete).trigger_rollback(AnonymousUser.new)
308
+ assert @stack.occupied?
309
+ end
310
+
281
311
  test "#deployable? returns true if the stack is not locked, not awaiting provision, and is not deploying" do
282
312
  @stack.deploys.destroy_all
283
313
  @stack.update!(lock_reason: nil, awaiting_provision: false)
@@ -21,6 +21,100 @@ module Shipit
21
21
  StackCommands.stubs(git_version: Gem::Version.new('1.8.4.3'))
22
22
  end
23
23
 
24
+ test "#fetch_commit calls git fetch if repository cache already exist" do
25
+ @stack.git_path.stubs(:exist?).returns(true)
26
+ @stack.git_path.stubs(:empty?).returns(false)
27
+
28
+ command = @commands.fetch_commit(@deploy.until_commit)
29
+
30
+ assert_equal %W(git fetch origin --quiet --tags #{@deploy.until_commit.sha}), command.args
31
+ end
32
+
33
+ test "#fetch_commit calls git fetch in git_path directory if repository cache already exist" do
34
+ @stack.git_path.stubs(:exist?).returns(true)
35
+ @stack.git_path.stubs(:empty?).returns(false)
36
+
37
+ command = @commands.fetch_commit(@deploy.until_commit)
38
+
39
+ assert_equal @stack.git_path.to_s, command.chdir
40
+ end
41
+
42
+ test "#fetch_commit calls git clone if repository cache do not exist" do
43
+ @stack.git_path.stubs(:exist?).returns(false)
44
+
45
+ command = @commands.fetch_commit(@deploy.until_commit)
46
+
47
+ expected = %W(git clone --quiet --single-branch --recursive --branch master #{@stack.repo_git_url} #{@stack.git_path})
48
+ assert_equal expected, command.args.map(&:to_s)
49
+ end
50
+
51
+ test "#fetch_commit calls git clone if repository cache is empty" do
52
+ @stack.git_path.stubs(:exist?).returns(true)
53
+ @stack.git_path.stubs(:empty?).returns(true)
54
+
55
+ command = @commands.fetch_commit(@deploy.until_commit)
56
+
57
+ expected = %W(git clone --quiet --single-branch --recursive --branch master #{@stack.repo_git_url} #{@stack.git_path})
58
+ assert_equal expected, command.args
59
+ end
60
+
61
+ test "#fetch_commit calls git clone if repository cache corrupt" do
62
+ @stack.git_path.stubs(:exist?).returns(true)
63
+ @stack.git_path.stubs(:empty?).returns(false)
64
+ StackCommands.any_instance.expects(:git_cmd_succeeds?)
65
+ .with(@stack.git_path)
66
+ .returns(false)
67
+
68
+ command = @commands.fetch_commit(@deploy.until_commit)
69
+
70
+ expected = %W(git clone --quiet --single-branch --recursive --branch master #{@stack.repo_git_url} #{@stack.git_path})
71
+ assert_equal expected, command.args
72
+ end
73
+
74
+ test "#fetch_commit clears a corrupted git stash before cloning" do
75
+ @stack.expects(:clear_git_cache!)
76
+ @stack.git_path.stubs(:exist?).returns(true)
77
+ @stack.git_path.stubs(:empty?).returns(false)
78
+ StackCommands.any_instance.expects(:git_cmd_succeeds?)
79
+ .with(@stack.git_path)
80
+ .returns(false)
81
+
82
+ command = @commands.fetch_commit(@deploy.until_commit)
83
+
84
+ expected = %W(git clone --quiet --single-branch --recursive --branch master #{@stack.repo_git_url} #{@stack.git_path})
85
+ assert_equal expected, command.args
86
+ end
87
+
88
+ test "#fetch_commit does not use --single-branch if git is outdated" do
89
+ @stack.git_path.stubs(:exist?).returns(false)
90
+ StackCommands.stubs(git_version: Gem::Version.new('1.7.2.30'))
91
+
92
+ command = @commands.fetch_commit(@deploy.until_commit)
93
+
94
+ expected = %W(git clone --quiet --recursive --branch master #{@stack.repo_git_url} #{@stack.git_path})
95
+ assert_equal expected, command.args.map(&:to_s)
96
+ end
97
+
98
+ test "#fetch_commit calls git fetch in base_path directory if repository cache do not exist" do
99
+ @stack.git_path.stubs(:exist?).returns(false)
100
+
101
+ command = @commands.fetch_commit(@deploy.until_commit)
102
+
103
+ assert_equal @stack.deploys_path.to_s, command.chdir
104
+ end
105
+
106
+ test "#fetch_commit merges Shipit.env in ENVIRONMENT" do
107
+ Shipit.stubs(:env).returns("SPECIFIC_CONFIG" => 5)
108
+ command = @commands.fetch_commit(@deploy.until_commit)
109
+ assert_equal '5', command.env["SPECIFIC_CONFIG"]
110
+ end
111
+
112
+ test "#env uses the correct Github token for a stack" do
113
+ Shipit.github(organization: 'shopify').stubs(:token).returns('aS3cr3Tt0kEn')
114
+ command = @commands.fetch_commit(@deploy.until_commit)
115
+ assert_equal 'aS3cr3Tt0kEn', command.env["GITHUB_TOKEN"]
116
+ end
117
+
24
118
  test "#fetch calls git fetch if repository cache already exist" do
25
119
  @stack.git_path.stubs(:exist?).returns(true)
26
120
  @stack.git_path.stubs(:empty?).returns(false)
@@ -109,12 +203,6 @@ module Shipit
109
203
  assert_equal '5', command.env["SPECIFIC_CONFIG"]
110
204
  end
111
205
 
112
- test "#env uses the correct Github token for a stack" do
113
- Shipit.github(organization: 'shopify').stubs(:token).returns('aS3cr3Tt0kEn')
114
- command = @commands.fetch
115
- assert_equal 'aS3cr3Tt0kEn', command.env["GITHUB_TOKEN"]
116
- end
117
-
118
206
  test "#clone clones the repository cache into the working directory" do
119
207
  commands = @commands.clone
120
208
  assert_equal 2, commands.size
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.37.0
4
+ version: 0.38.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: 2022-08-10 00:00:00.000000000 Z
11
+ date: 2023-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_model_serializers
@@ -507,6 +507,7 @@ files:
507
507
  - app/controllers/shipit/status_controller.rb
508
508
  - app/controllers/shipit/tasks_controller.rb
509
509
  - app/controllers/shipit/webhooks_controller.rb
510
+ - app/helpers/shipit/api_clients_helper.rb
510
511
  - app/helpers/shipit/chunks_helper.rb
511
512
  - app/helpers/shipit/deploys_helper.rb
512
513
  - app/helpers/shipit/github_url_helper.rb
@@ -771,6 +772,7 @@ files:
771
772
  - db/migrate/20210504200438_add_github_updated_at_to_check_runs.rb
772
773
  - db/migrate/20210823075617_change_check_runs_github_updated_at_default.rb
773
774
  - db/migrate/20211103154121_increase_github_team_slug_size.rb
775
+ - db/migrate/20230703181143_change_commit_deployment_statuses_github_id_to_big_int.rb
774
776
  - lib/shipit-engine.rb
775
777
  - lib/shipit.rb
776
778
  - lib/shipit/cast_value.rb
@@ -1039,7 +1041,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1039
1041
  - !ruby/object:Gem::Version
1040
1042
  version: '0'
1041
1043
  requirements: []
1042
- rubygems_version: 3.3.3
1044
+ rubygems_version: 3.4.14
1043
1045
  signing_key:
1044
1046
  specification_version: 4
1045
1047
  summary: Application deployment software