fastlane 2.210.1 → 2.211.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +84 -84
  3. data/deliver/lib/deliver/app_screenshot.rb +17 -0
  4. data/fastlane/lib/fastlane/actions/docs/build_app.md +5 -5
  5. data/fastlane/lib/fastlane/actions/docs/run_tests.md +1 -1
  6. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +14 -4
  7. data/fastlane/lib/fastlane/actions/xcode_install.rb +5 -1
  8. data/fastlane/lib/fastlane/actions/xcode_select.rb +1 -1
  9. data/fastlane/lib/fastlane/actions/xcodes.rb +137 -0
  10. data/fastlane/lib/fastlane/actions/xcversion.rb +10 -15
  11. data/fastlane/lib/fastlane/helper/xcodes_helper.rb +28 -0
  12. data/fastlane/lib/fastlane/helper/xcversion_helper.rb +0 -9
  13. data/fastlane/lib/fastlane/version.rb +1 -1
  14. data/fastlane/swift/Deliverfile.swift +1 -1
  15. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  16. data/fastlane/swift/Fastlane.swift +66 -3
  17. data/fastlane/swift/Gymfile.swift +1 -1
  18. data/fastlane/swift/GymfileProtocol.swift +1 -1
  19. data/fastlane/swift/Matchfile.swift +1 -1
  20. data/fastlane/swift/MatchfileProtocol.swift +5 -1
  21. data/fastlane/swift/Precheckfile.swift +1 -1
  22. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  23. data/fastlane/swift/Scanfile.swift +1 -1
  24. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  25. data/fastlane/swift/Screengrabfile.swift +1 -1
  26. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  27. data/fastlane/swift/Snapshotfile.swift +1 -1
  28. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  29. data/fastlane/swift/formatting/Brewfile.lock.json +20 -15
  30. data/fastlane_core/lib/fastlane_core/cert_checker.rb +2 -2
  31. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +1 -1
  32. data/frameit/lib/frameit/device.rb +1 -1
  33. data/match/lib/match/change_password.rb +2 -0
  34. data/match/lib/match/commands_generator.rb +2 -1
  35. data/match/lib/match/generator.rb +1 -0
  36. data/match/lib/match/importer.rb +2 -0
  37. data/match/lib/match/migrate.rb +4 -3
  38. data/match/lib/match/nuke.rb +2 -0
  39. data/match/lib/match/options.rb +5 -0
  40. data/match/lib/match/runner.rb +5 -2
  41. data/sigh/lib/sigh/options.rb +5 -0
  42. data/sigh/lib/sigh/runner.rb +3 -1
  43. data/snapshot/lib/assets/SnapshotHelper.swift +2 -2
  44. data/spaceship/lib/spaceship/connect_api/models/actor.rb +26 -0
  45. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
  46. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
  47. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +10 -10
  48. data/spaceship/lib/spaceship/connect_api/models/device.rb +3 -0
  49. data/spaceship/lib/spaceship/connect_api/models/resolution_center_message.rb +29 -0
  50. data/spaceship/lib/spaceship/connect_api/models/resolution_center_thread.rb +67 -0
  51. data/spaceship/lib/spaceship/connect_api/models/review_rejection.rb +19 -0
  52. data/spaceship/lib/spaceship/connect_api/models/review_submission.rb +12 -0
  53. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +23 -0
  54. data/spaceship/lib/spaceship/connect_api.rb +5 -0
  55. metadata +28 -22
@@ -253,6 +253,11 @@ module Match
253
253
  description: "Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id'",
254
254
  type: Boolean,
255
255
  default_value: false),
256
+ FastlaneCore::ConfigItem.new(key: :include_mac_in_profiles,
257
+ env_name: "MATCH_INCLUDE_MAC_IN_PROFILES",
258
+ description: "Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps",
259
+ type: Boolean,
260
+ default_value: false),
256
261
  FastlaneCore::ConfigItem.new(key: :include_all_certificates,
257
262
  env_name: "MATCH_INCLUDE_ALL_CERTIFICATES",
258
263
  description: "Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type",
@@ -336,7 +336,7 @@ module Match
336
336
 
337
337
  prov_types_without_devices = [:appstore, :developer_id]
338
338
  if !prov_types_without_devices.include?(prov_type) && !params[:force]
339
- force = device_count_different?(profile: profile, keychain_path: keychain_path, platform: params[:platform].to_sym)
339
+ force = device_count_different?(profile: profile, keychain_path: keychain_path, platform: params[:platform].to_sym, include_mac_in_profiles: params[:include_mac_in_profiles])
340
340
  else
341
341
  # App Store provisioning profiles don't contain device identifiers and
342
342
  # thus shouldn't be renewed if the device count has changed.
@@ -347,7 +347,7 @@ module Match
347
347
  return force
348
348
  end
349
349
 
350
- def device_count_different?(profile: nil, keychain_path: nil, platform: nil)
350
+ def device_count_different?(profile: nil, keychain_path: nil, platform: nil, include_mac_in_profiles: false)
351
351
  return false unless profile
352
352
 
353
353
  parsed = FastlaneCore::ProvisioningProfile.parse(profile, keychain_path)
@@ -379,6 +379,9 @@ module Match
379
379
  else
380
380
  []
381
381
  end
382
+ if platform == :ios && include_mac_in_profiles
383
+ device_classes += [Spaceship::ConnectAPI::Device::DeviceClass::APPLE_SILICON_MAC]
384
+ end
382
385
 
383
386
  devices = Spaceship::ConnectAPI::Device.all
384
387
  unless device_classes.empty?
@@ -47,6 +47,11 @@ module Sigh
47
47
  is_string: false,
48
48
  short_option: "-f",
49
49
  default_value: false),
50
+ FastlaneCore::ConfigItem.new(key: :include_mac_in_profiles,
51
+ env_name: "SIGH_INCLUDE_MAC_IN_PROFILES",
52
+ description: "Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps",
53
+ is_string: false,
54
+ default_value: false),
50
55
  FastlaneCore::ConfigItem.new(key: :app_identifier,
51
56
  short_option: "-a",
52
57
  env_name: "SIGH_APP_IDENTIFIER",
@@ -289,7 +289,9 @@ module Sigh
289
289
  when 'macos', 'catalyst'
290
290
  [Spaceship::ConnectAPI::Device::DeviceClass::MAC]
291
291
  end
292
-
292
+ if Sigh.config[:platform].to_s == 'ios' && Sigh.config[:include_mac_in_profiles]
293
+ device_classes += [Spaceship::ConnectAPI::Device::DeviceClass::APPLE_SILICON_MAC]
294
+ end
293
295
  if Spaceship::ConnectAPI.token
294
296
  return Spaceship::ConnectAPI::Device.all.select do |device|
295
297
  device_classes.include?(device.device_class)
@@ -181,7 +181,7 @@ open class Snapshot: NSObject {
181
181
 
182
182
  let path = screenshotsDir.appendingPathComponent("\(simulator)-\(name).png")
183
183
  #if swift(<5.0)
184
- UIImagePNGRepresentation(image)?.write(to: path, options: .atomic)
184
+ try UIImagePNGRepresentation(image)?.write(to: path, options: .atomic)
185
185
  #else
186
186
  try image.pngData()?.write(to: path, options: .atomic)
187
187
  #endif
@@ -306,4 +306,4 @@ private extension CGFloat {
306
306
 
307
307
  // Please don't remove the lines below
308
308
  // They are used to detect outdated configuration files
309
- // SnapshotHelperVersion [1.28]
309
+ // SnapshotHelperVersion [1.29]
@@ -0,0 +1,26 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class Actor
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :actor_type
8
+ attr_accessor :user_first_name
9
+ attr_accessor :user_last_name
10
+ attr_accessor :user_email
11
+ attr_accessor :api_key_id
12
+
13
+ attr_mapping({
14
+ actorType: 'actor_type',
15
+ userFirstName: 'user_first_name',
16
+ userLastName: 'user_last_name',
17
+ userEmail: 'user_email',
18
+ apiKeyId: 'api_key_id'
19
+ })
20
+
21
+ def self.type
22
+ return 'actors'
23
+ end
24
+ end
25
+ end
26
+ end
@@ -17,6 +17,7 @@ module Spaceship
17
17
  APP_IPHONE_55 = "APP_IPHONE_55"
18
18
  APP_IPHONE_58 = "APP_IPHONE_58"
19
19
  APP_IPHONE_65 = "APP_IPHONE_65"
20
+ APP_IPHONE_67 = "APP_IPHONE_67"
20
21
 
21
22
  APP_IPAD_97 = "APP_IPAD_97"
22
23
  APP_IPAD_105 = "APP_IPAD_105"
@@ -29,6 +30,7 @@ module Spaceship
29
30
  IMESSAGE_APP_IPHONE_55 = "IMESSAGE_APP_IPHONE_55"
30
31
  IMESSAGE_APP_IPHONE_58 = "IMESSAGE_APP_IPHONE_58"
31
32
  IMESSAGE_APP_IPHONE_65 = "IMESSAGE_APP_IPHONE_65"
33
+ IMESSAGE_APP_IPHONE_67 = "IMESSAGE_APP_IPHONE_67"
32
34
 
33
35
  IMESSAGE_APP_IPAD_97 = "IMESSAGE_APP_IPAD_97"
34
36
  IMESSAGE_APP_IPAD_105 = "IMESSAGE_APP_IPAD_105"
@@ -50,6 +52,7 @@ module Spaceship
50
52
  IMESSAGE_APP_IPHONE_55,
51
53
  IMESSAGE_APP_IPHONE_58,
52
54
  IMESSAGE_APP_IPHONE_65,
55
+ IMESSAGE_APP_IPHONE_67,
53
56
 
54
57
  IMESSAGE_APP_IPAD_97,
55
58
  IMESSAGE_APP_IPAD_105,
@@ -65,6 +68,7 @@ module Spaceship
65
68
  APP_IPHONE_55,
66
69
  APP_IPHONE_58,
67
70
  APP_IPHONE_65,
71
+ APP_IPHONE_67,
68
72
 
69
73
  APP_IPAD_97,
70
74
  APP_IPAD_105,
@@ -77,6 +81,7 @@ module Spaceship
77
81
  IMESSAGE_APP_IPHONE_55,
78
82
  IMESSAGE_APP_IPHONE_58,
79
83
  IMESSAGE_APP_IPHONE_65,
84
+ IMESSAGE_APP_IPHONE_67,
80
85
 
81
86
  IMESSAGE_APP_IPAD_97,
82
87
  IMESSAGE_APP_IPAD_105,
@@ -112,7 +112,7 @@ module Spaceship
112
112
 
113
113
  # @deprecated
114
114
  def fetch_age_rating_declaration(client: nil)
115
- raise 'AppStoreVersion no longer as AgeRatingDeclaration as of App Store Connect API 1.3 - Use AppInfo instead'
115
+ raise 'AppStoreVersion no longer has AgeRatingDeclaration as of App Store Connect API 1.3 - Use AppInfo instead'
116
116
  end
117
117
 
118
118
  #
@@ -19,16 +19,16 @@ module Spaceship
19
19
  attr_accessor :app_preview_sets
20
20
 
21
21
  attr_mapping({
22
- "description" => "description",
23
- "locale" => "locale",
24
- "keywords" => "keywords",
25
- "marketingUrl" => "marketing_url",
26
- "promotionalText" => "promotional_text",
27
- "supportUrl" => "support_url",
28
- "whatsNew" => "whats_new",
29
-
30
- "appScreenshotSets" => "app_screenshot_sets",
31
- "appPreviewSets" => "app_preview_sets"
22
+ "description" => "description",
23
+ "locale" => "locale",
24
+ "keywords" => "keywords",
25
+ "marketingUrl" => "marketing_url",
26
+ "promotionalText" => "promotional_text",
27
+ "supportUrl" => "support_url",
28
+ "whatsNew" => "whats_new",
29
+
30
+ "appScreenshotSets" => "app_screenshot_sets",
31
+ "appPreviewSets" => "app_preview_sets"
32
32
  })
33
33
 
34
34
  def self.type
@@ -29,6 +29,9 @@ module Spaceship
29
29
  IPOD = "IPOD"
30
30
  APPLE_TV = "APPLE_TV"
31
31
  MAC = "MAC"
32
+
33
+ # As of 2022-11-12, this is not officially supported by App Store Connect API
34
+ APPLE_SILICON_MAC = "APPLE_SILICON_MAC"
32
35
  end
33
36
 
34
37
  module Status
@@ -0,0 +1,29 @@
1
+ require_relative '../model'
2
+ require_relative './actor'
3
+ require_relative './review_rejection'
4
+
5
+ module Spaceship
6
+ class ConnectAPI
7
+ class ResolutionCenterMessage
8
+ include Spaceship::ConnectAPI::Model
9
+
10
+ attr_accessor :message_body
11
+ attr_accessor :created_date
12
+ attr_accessor :rejections
13
+ attr_accessor :from_actor
14
+
15
+ attr_mapping({
16
+ messageBody: 'message_body',
17
+ createdDate: 'created_date',
18
+
19
+ # includes
20
+ rejections: 'rejections',
21
+ fromActor: 'from_actor'
22
+ })
23
+
24
+ def self.type
25
+ return 'resolutionCenterMessages'
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,67 @@
1
+ require_relative '../model'
2
+
3
+ module Spaceship
4
+ class ConnectAPI
5
+ class ResolutionCenterThread
6
+ include Spaceship::ConnectAPI::Model
7
+
8
+ attr_accessor :state
9
+ attr_accessor :can_developer_add_node
10
+ attr_accessor :objectionable_content
11
+ attr_accessor :thread_type
12
+ attr_accessor :created_date
13
+ attr_accessor :last_message_response_date
14
+
15
+ attr_accessor :resolution_center_messages
16
+ attr_accessor :app_store_version
17
+
18
+ module ThreadType
19
+ REJECTION_BINARY = 'REJECTION_BINARY'
20
+ REJECTION_METADATA = 'REJECTION_METADATA'
21
+ REJECTION_REVIEW_SUBMISSION = 'REJECTION_REVIEW_SUBMISSION'
22
+ APP_MESSAGE_ARC = 'APP_MESSAGE_ARC'
23
+ APP_MESSAGE_ARB = 'APP_MESSAGE_ARB'
24
+ APP_MESSAGE_COMM = 'APP_MESSAGE_COMM'
25
+ end
26
+
27
+ attr_mapping({
28
+ state: 'state',
29
+ canDeveloperAddNote: 'can_developer_add_node',
30
+ objectionableContent: 'objectionable_content',
31
+ threadType: 'thread_type',
32
+ createdDate: 'created_date',
33
+ lastMessageResponseDate: 'last_message_response_date',
34
+
35
+ # includes
36
+ resolutionCenterMessages: 'resolution_center_messages',
37
+ appStoreVersion: 'app_store_version'
38
+ })
39
+
40
+ def self.type
41
+ return "resolutionCenterThreads"
42
+ end
43
+
44
+ #
45
+ # API
46
+ #
47
+
48
+ def self.all(client: nil, filter:, includes: nil)
49
+ client ||= Spaceship::ConnectAPI
50
+ resps = client.get_resolution_center_threads(filter: filter, includes: includes).all_pages
51
+ return resps.flat_map(&:to_models)
52
+ end
53
+
54
+ def fetch_messages(client: nil, filter: {}, includes: nil)
55
+ client ||= Spaceship::ConnectAPI
56
+ resps = client.get_resolution_center_messages(thread_id: id, filter: filter, includes: includes).all_pages
57
+ return resps.flat_map(&:to_models)
58
+ end
59
+
60
+ def fetch_rejection_reasons(client: nil, includes: nil)
61
+ client ||= Spaceship::ConnectAPI
62
+ resp = client.get_review_rejection(filter: { 'resolutionCenterMessage.resolutionCenterThread': id }, includes: includes)
63
+ return resp.to_models
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,19 @@
1
+ require_relative '../model'
2
+
3
+ module Spaceship
4
+ class ConnectAPI
5
+ class ReviewRejection
6
+ include Spaceship::ConnectAPI::Model
7
+
8
+ attr_accessor :reasons
9
+
10
+ attr_mapping({
11
+ reasons: 'reasons'
12
+ })
13
+
14
+ def self.type
15
+ return 'reviewRejections'
16
+ end
17
+ end
18
+ end
19
+ end
@@ -69,6 +69,18 @@ module Spaceship
69
69
  resp = client.post_review_submission_item(review_submission_id: id, app_store_version_id: app_store_version_id)
70
70
  return resp.to_models.first
71
71
  end
72
+
73
+ def fetch_resolution_center_threads(client: nil)
74
+ client ||= Spaceship::ConnectAPI
75
+ resp = client.get_resolution_center_threads(filter: { reviewSubmission: id }, includes: 'reviewSubmission')
76
+ return resp.to_models
77
+ end
78
+
79
+ def latest_resolution_center_messages(client: nil)
80
+ client ||= Spaceship::ConnectAPI
81
+ threads = fetch_resolution_center_threads(client: client)
82
+ threads.first.fetch_messages(client: client)
83
+ end
72
84
  end
73
85
  end
74
86
  end
@@ -1252,6 +1252,29 @@ module Spaceship
1252
1252
  params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
1253
1253
  tunes_request_client.get("territories", params)
1254
1254
  end
1255
+
1256
+ #
1257
+ # resolutionCenter
1258
+ #
1259
+ # As of 2022-11-11:
1260
+ # This is not official available throught the App Store Connect API using an API Key.
1261
+ # This is only works with Apple ID auth.
1262
+ #
1263
+
1264
+ def get_resolution_center_threads(filter: {}, includes: nil)
1265
+ params = tunes_request_client.build_params(filter: filter, includes: includes)
1266
+ tunes_request_client.get('resolutionCenterThreads', params)
1267
+ end
1268
+
1269
+ def get_resolution_center_messages(thread_id:, filter: {}, includes: nil)
1270
+ params = tunes_request_client.build_params(filter: filter, includes: includes)
1271
+ tunes_request_client.get("resolutionCenterThreads/#{thread_id}/resolutionCenterMessages", params)
1272
+ end
1273
+
1274
+ def get_review_rejection(filter: {}, includes: nil)
1275
+ params = tunes_request_client.build_params(filter: filter, includes: includes)
1276
+ tunes_request_client.get("reviewRejections", params)
1277
+ end
1255
1278
  end
1256
1279
  end
1257
1280
  end
@@ -68,6 +68,11 @@ require 'spaceship/connect_api/models/reset_ratings_request'
68
68
  require 'spaceship/connect_api/models/sandbox_tester'
69
69
  require 'spaceship/connect_api/models/territory'
70
70
 
71
+ require 'spaceship/connect_api/models/resolution_center_message'
72
+ require 'spaceship/connect_api/models/resolution_center_thread'
73
+ require 'spaceship/connect_api/models/review_rejection'
74
+ require 'spaceship/connect_api/models/actor'
75
+
71
76
  module Spaceship
72
77
  class ConnectAPI
73
78
  # Defined in the App Store Connect API docs:
metadata CHANGED
@@ -1,39 +1,39 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.210.1
4
+ version: 2.211.0
5
5
  platform: ruby
6
6
  authors:
7
- - Manish Rathi
8
- - Maksym Grebenets
9
- - Olivier Halligon
7
+ - Josh Holtz
8
+ - Łukasz Grabowski
9
+ - Stefan Natchev
10
+ - Jimmy Dee
10
11
  - Jérôme Lacoste
11
- - Satoshi Namai
12
- - Aaron Brager
13
- - Jorge Revuelta H
14
12
  - Daniel Jankowski
15
- - Helmut Januschka
16
- - Jimmy Dee
17
- - Max Ott
18
- - Fumiya Nakamura
19
- - Stefan Natchev
20
- - Luka Mirosevic
21
- - Felix Krause
22
- - Josh Holtz
23
- - Roger Oba
24
- - Jan Piotrowski
13
+ - Aaron Brager
25
14
  - Matthew Ellis
26
- - Łukasz Grabowski
27
- - Joshua Liebowitz
28
- - Iulian Onofrei
29
15
  - Kohki Miki
30
- - Manu Wallner
16
+ - Iulian Onofrei
17
+ - Roger Oba
31
18
  - Andrew McBurney
19
+ - Luka Mirosevic
20
+ - Joshua Liebowitz
32
21
  - Danielle Tomlinson
22
+ - Maksym Grebenets
23
+ - Helmut Januschka
24
+ - Manu Wallner
25
+ - Max Ott
26
+ - Jan Piotrowski
27
+ - Fumiya Nakamura
28
+ - Satoshi Namai
29
+ - Olivier Halligon
30
+ - Felix Krause
31
+ - Jorge Revuelta H
32
+ - Manish Rathi
33
33
  autorequire:
34
34
  bindir: bin
35
35
  cert_chain: []
36
- date: 2022-09-21 00:00:00.000000000 Z
36
+ date: 2022-11-12 00:00:00.000000000 Z
37
37
  dependencies:
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: xcodeproj
@@ -1258,6 +1258,7 @@ files:
1258
1258
  - fastlane/lib/fastlane/actions/xcode_select.rb
1259
1259
  - fastlane/lib/fastlane/actions/xcode_server_get_assets.rb
1260
1260
  - fastlane/lib/fastlane/actions/xcodebuild.rb
1261
+ - fastlane/lib/fastlane/actions/xcodes.rb
1261
1262
  - fastlane/lib/fastlane/actions/xcov.rb
1262
1263
  - fastlane/lib/fastlane/actions/xctool.rb
1263
1264
  - fastlane/lib/fastlane/actions/xcversion.rb
@@ -1289,6 +1290,7 @@ files:
1289
1290
  - fastlane/lib/fastlane/helper/sh_helper.rb
1290
1291
  - fastlane/lib/fastlane/helper/xcodebuild_formatter_helper.rb
1291
1292
  - fastlane/lib/fastlane/helper/xcodeproj_helper.rb
1293
+ - fastlane/lib/fastlane/helper/xcodes_helper.rb
1292
1294
  - fastlane/lib/fastlane/helper/xcversion_helper.rb
1293
1295
  - fastlane/lib/fastlane/junit_generator.rb
1294
1296
  - fastlane/lib/fastlane/lane.rb
@@ -1661,6 +1663,7 @@ files:
1661
1663
  - spaceship/lib/spaceship/connect_api/client.rb
1662
1664
  - spaceship/lib/spaceship/connect_api/file_uploader.rb
1663
1665
  - spaceship/lib/spaceship/connect_api/model.rb
1666
+ - spaceship/lib/spaceship/connect_api/models/actor.rb
1664
1667
  - spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb
1665
1668
  - spaceship/lib/spaceship/connect_api/models/app.rb
1666
1669
  - spaceship/lib/spaceship/connect_api/models/app_category.rb
@@ -1711,6 +1714,9 @@ files:
1711
1714
  - spaceship/lib/spaceship/connect_api/models/pre_release_version.rb
1712
1715
  - spaceship/lib/spaceship/connect_api/models/profile.rb
1713
1716
  - spaceship/lib/spaceship/connect_api/models/reset_ratings_request.rb
1717
+ - spaceship/lib/spaceship/connect_api/models/resolution_center_message.rb
1718
+ - spaceship/lib/spaceship/connect_api/models/resolution_center_thread.rb
1719
+ - spaceship/lib/spaceship/connect_api/models/review_rejection.rb
1714
1720
  - spaceship/lib/spaceship/connect_api/models/review_submission.rb
1715
1721
  - spaceship/lib/spaceship/connect_api/models/review_submission_item.rb
1716
1722
  - spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb