fastlane 2.160.0 → 2.165.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.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +78 -78
  3. data/cert/lib/cert/options.rb +28 -1
  4. data/cert/lib/cert/runner.rb +51 -34
  5. data/deliver/lib/deliver/app_screenshot_iterator.rb +4 -4
  6. data/deliver/lib/deliver/module.rb +2 -0
  7. data/deliver/lib/deliver/options.rb +5 -5
  8. data/deliver/lib/deliver/queue_worker.rb +14 -29
  9. data/deliver/lib/deliver/upload_metadata.rb +20 -5
  10. data/deliver/lib/deliver/upload_screenshots.rb +28 -13
  11. data/fastlane/lib/fastlane/actions/.download_dsyms.rb.swp +0 -0
  12. data/fastlane/lib/fastlane/actions/actions_helper.rb +20 -1
  13. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +39 -3
  14. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +15 -1
  15. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +1 -0
  16. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +2 -2
  17. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +2 -2
  18. data/fastlane/lib/fastlane/actions/docs/create_app_online.md +1 -1
  19. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +2 -2
  20. data/fastlane/lib/fastlane/actions/docs/run_tests.md +2 -2
  21. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +12 -3
  22. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +2 -2
  23. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +1 -1
  24. data/fastlane/lib/fastlane/actions/download_dsyms.rb +1 -0
  25. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +13 -2
  26. data/fastlane/lib/fastlane/actions/get_certificates.rb +1 -0
  27. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -0
  28. data/fastlane/lib/fastlane/actions/import_from_git.rb +9 -1
  29. data/fastlane/lib/fastlane/actions/is_ci.rb +1 -1
  30. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +15 -0
  31. data/fastlane/lib/fastlane/actions/register_device.rb +46 -5
  32. data/fastlane/lib/fastlane/actions/register_devices.rb +50 -16
  33. data/fastlane/lib/fastlane/actions/set_changelog.rb +31 -3
  34. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +1 -0
  35. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +3 -2
  36. data/fastlane/lib/fastlane/fast_file.rb +74 -23
  37. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -0
  38. data/fastlane/lib/fastlane/version.rb +1 -1
  39. data/fastlane/swift/Deliverfile.swift +1 -1
  40. data/fastlane/swift/DeliverfileProtocol.swift +4 -4
  41. data/fastlane/swift/Fastlane.swift +120 -27
  42. data/fastlane/swift/Gymfile.swift +1 -1
  43. data/fastlane/swift/GymfileProtocol.swift +1 -1
  44. data/fastlane/swift/LaneFileProtocol.swift +28 -36
  45. data/fastlane/swift/MainProcess.swift +1 -1
  46. data/fastlane/swift/Matchfile.swift +1 -1
  47. data/fastlane/swift/MatchfileProtocol.swift +21 -5
  48. data/fastlane/swift/Precheckfile.swift +1 -1
  49. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  50. data/fastlane/swift/Scanfile.swift +1 -1
  51. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  52. data/fastlane/swift/Screengrabfile.swift +1 -1
  53. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  54. data/fastlane/swift/Snapshotfile.swift +1 -1
  55. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  56. data/fastlane/swift/main.swift +1 -1
  57. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +6 -7
  58. data/fastlane_core/lib/fastlane_core/device_manager.rb +8 -4
  59. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  60. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +3 -3
  61. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +2 -2
  62. data/match/lib/match/generator.rb +6 -1
  63. data/match/lib/match/importer.rb +63 -18
  64. data/match/lib/match/migrate.rb +13 -2
  65. data/match/lib/match/nuke.rb +65 -22
  66. data/match/lib/match/options.rb +34 -3
  67. data/match/lib/match/runner.rb +38 -10
  68. data/match/lib/match/spaceship_ensure.rb +27 -21
  69. data/match/lib/match/storage/google_cloud_storage.rb +20 -3
  70. data/match/lib/match/storage/s3_storage.rb +19 -3
  71. data/scan/lib/scan/detect_values.rb +5 -8
  72. data/scan/lib/scan/runner.rb +2 -1
  73. data/sigh/lib/assets/resign.sh +1 -1
  74. data/sigh/lib/sigh/download_all.rb +16 -4
  75. data/sigh/lib/sigh/options.rb +21 -0
  76. data/sigh/lib/sigh/runner.rb +83 -41
  77. data/snapshot/lib/assets/SnapshotHelper.swift +4 -0
  78. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -1
  79. data/spaceship/README.md +1 -1
  80. data/spaceship/lib/spaceship/client.rb +9 -4
  81. data/spaceship/lib/spaceship/connect_api.rb +27 -0
  82. data/spaceship/lib/spaceship/connect_api/api_client.rb +12 -3
  83. data/spaceship/lib/spaceship/connect_api/client.rb +20 -7
  84. data/spaceship/lib/spaceship/connect_api/models/app.rb +51 -0
  85. data/spaceship/lib/spaceship/connect_api/models/app_screenshot.rb +3 -1
  86. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +2 -1
  87. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +42 -0
  88. data/spaceship/lib/spaceship/connect_api/models/custom_app_organization.rb +43 -0
  89. data/spaceship/lib/spaceship/connect_api/models/custom_app_user.rb +41 -0
  90. data/spaceship/lib/spaceship/connect_api/models/device.rb +5 -0
  91. data/spaceship/lib/spaceship/connect_api/models/profile.rb +7 -1
  92. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +59 -0
  93. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +45 -2
  94. data/spaceship/lib/spaceship/connect_api/spaceship.rb +7 -4
  95. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
  96. data/spaceship/lib/spaceship/connect_api/token.rb +6 -1
  97. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +75 -1
  98. data/spaceship/lib/spaceship/connect_api/users/users.rb +40 -0
  99. data/spaceship/lib/spaceship/helper/net_http_generic_request.rb +11 -5
  100. data/supply/lib/supply/uploader.rb +1 -1
  101. metadata +19 -15
@@ -0,0 +1,59 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class UserInvitation
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :first_name
8
+ attr_accessor :last_name
9
+ attr_accessor :email
10
+ attr_accessor :roles
11
+ attr_accessor :all_apps_visible
12
+ attr_accessor :provisioning_allowed
13
+
14
+ attr_mapping({
15
+ "firstName" => "first_name",
16
+ "lastName" => "last_name",
17
+ "email" => "email",
18
+ "roles" => "roles",
19
+ "allAppsVisible" => "all_apps_visible",
20
+ "provisioningAllowed" => "provisioning_allowed"
21
+ })
22
+
23
+ module UserRole
24
+ ADMIN = "ADMIN"
25
+ FINANCE = "FINANCE"
26
+ TECHNICAL = "TECHNICAL"
27
+ SALES = "SALES"
28
+ MARKETING = "MARKETING"
29
+ DEVELOPER = "DEVELOPER"
30
+ ACCOUNT_HOLDER = "ACCOUNT_HOLDER"
31
+ READ_ONLY = "READ_ONLY"
32
+ APP_MANAGER = "APP_MANAGER"
33
+ ACCESS_TO_REPORTS = "ACCESS_TO_REPORTS"
34
+ CUSTOMER_SUPPORT = "CUSTOMER_SUPPORT"
35
+ end
36
+
37
+ def self.type
38
+ return "userInvitations"
39
+ end
40
+
41
+ #
42
+ # Managing invitations
43
+ #
44
+
45
+ def self.all(filter: {}, includes: nil, sort: nil)
46
+ resps = Spaceship::ConnectAPI.get_user_invitations(filter: filter, includes: includes, sort: sort).all_pages
47
+ return resps.flat_map(&:to_models)
48
+ end
49
+
50
+ def self.find(email: nil, includes: nil)
51
+ return all(filter: { email: email }, includes: includes)
52
+ end
53
+
54
+ def delete!
55
+ Spaceship::ConnectAPI.delete_user_invitation(user_invitation_id: id)
56
+ end
57
+ end
58
+ end
59
+ end
@@ -36,13 +36,56 @@ module Spaceship
36
36
  provisioning_request_client.get("certificates", params)
37
37
  end
38
38
 
39
+ def get_certificate(certificate_id: nil, includes: nil)
40
+ params = provisioning_request_client.build_params(filter: nil, includes: includes, limit: nil, sort: nil)
41
+ provisioning_request_client.get("certificates/#{certificate_id}", params)
42
+ end
43
+
44
+ def post_certificate(attributes: {})
45
+ body = {
46
+ data: {
47
+ attributes: attributes,
48
+ type: "certificates"
49
+ }
50
+ }
51
+
52
+ provisioning_request_client.post("certificates", body)
53
+ end
54
+
55
+ def delete_certificate(certificate_id: nil)
56
+ raise "Certificate id is nil" if certificate_id.nil?
57
+
58
+ provisioning_request_client.delete("certificates/#{certificate_id}")
59
+ end
60
+
39
61
  #
40
62
  # devices
41
63
  #
42
64
 
43
- def get_devices(filter: {}, includes: nil, limit: nil, sort: nil)
65
+ def get_devices(profile_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
44
66
  params = provisioning_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
45
- provisioning_request_client.get("devices", params)
67
+ if profile_id.nil?
68
+ provisioning_request_client.get("devices", params)
69
+ else
70
+ provisioning_request_client.get("profiles/#{profile_id}/devices", params)
71
+ end
72
+ end
73
+
74
+ def post_device(name: nil, platform: nil, udid: nil)
75
+ attributes = {
76
+ name: name,
77
+ platform: platform,
78
+ udid: udid
79
+ }
80
+
81
+ body = {
82
+ data: {
83
+ attributes: attributes,
84
+ type: "devices"
85
+ }
86
+ }
87
+
88
+ provisioning_request_client.post("devices", body)
46
89
  end
47
90
 
48
91
  #
@@ -44,20 +44,23 @@ module Spaceship
44
44
 
45
45
  # Initializes client with Apple's App Store Connect JWT auth key.
46
46
  #
47
- # This method will automatically use the key id, issuer id, and filepath from environment
47
+ # This method will automatically use the arguments from environment
48
48
  # variables if not given.
49
49
  #
50
- # All three parameters are needed to authenticate.
50
+ # The key_id, issuer_id and either filepath or key are needed to authenticate.
51
51
  #
52
52
  # @param key_id (String) (optional): The key id
53
53
  # @param issuer_id (String) (optional): The issuer id
54
54
  # @param filepath (String) (optional): The filepath
55
+ # @param key (String) (optional): The key
56
+ # @param duration (Integer) (optional): How long this session should last
57
+ # @param in_house (Boolean) (optional): Whether this session is an Enterprise one
55
58
  #
56
59
  # @raise InvalidUserCredentialsError: raised if authentication failed
57
60
  #
58
61
  # @return (Spaceship::ConnectAPI::Client) The client the login method was called for
59
- def auth(key_id: nil, issuer_id: nil, filepath: nil)
60
- @client = ConnectAPI::Client.auth(key_id: key_id, issuer_id: issuer_id, filepath: filepath)
62
+ def auth(key_id: nil, issuer_id: nil, filepath: nil, key: nil, duration: nil, in_house: nil)
63
+ @client = ConnectAPI::Client.auth(key_id: key_id, issuer_id: issuer_id, filepath: filepath, key: key, duration: duration, in_house: in_house)
61
64
  end
62
65
 
63
66
  # Authenticates with Apple's web services. This method has to be called once
@@ -277,6 +277,19 @@ module Spaceship
277
277
  test_flight_request_client.delete("betaTesters/#{beta_tester_id}/relationships/betaGroups", nil, body)
278
278
  end
279
279
 
280
+ def delete_beta_testers_from_app(beta_tester_ids: [], app_id: nil)
281
+ body = {
282
+ data: beta_tester_ids.map do |id|
283
+ {
284
+ type: "betaTesters",
285
+ id: id
286
+ }
287
+ end
288
+ }
289
+
290
+ test_flight_request_client.delete("apps/#{app_id}/relationships/betaTesters", nil, body)
291
+ end
292
+
280
293
  #
281
294
  # betaTesterMetrics
282
295
  #
@@ -1,4 +1,5 @@
1
1
  require 'jwt'
2
+ require 'base64'
2
3
  require 'openssl'
3
4
 
4
5
  # extract pem from .p8
@@ -39,7 +40,7 @@ module Spaceship
39
40
  self.create(json)
40
41
  end
41
42
 
42
- def self.create(key_id: nil, issuer_id: nil, filepath: nil, key: nil, duration: nil, in_house: nil)
43
+ def self.create(key_id: nil, issuer_id: nil, filepath: nil, key: nil, is_key_content_base64: false, duration: nil, in_house: nil)
43
44
  key_id ||= ENV['SPACESHIP_CONNECT_API_KEY_ID']
44
45
  issuer_id ||= ENV['SPACESHIP_CONNECT_API_ISSUER_ID']
45
46
  filepath ||= ENV['SPACESHIP_CONNECT_API_KEY_FILEPATH']
@@ -51,6 +52,10 @@ module Spaceship
51
52
  key ||= ENV['SPACESHIP_CONNECT_API_KEY']
52
53
  key ||= File.binread(filepath)
53
54
 
55
+ if !key.nil? && is_key_content_base64
56
+ key = Base64.decode64(key)
57
+ end
58
+
54
59
  self.new(
55
60
  key_id: key_id,
56
61
  issuer_id: issuer_id,
@@ -185,9 +185,12 @@ module Spaceship
185
185
  type: "apps",
186
186
  id: app_id
187
187
  }
188
- data[:attributes] = attributes unless attributes.empty?
189
188
  data[:relationships] = relationships unless relationships.empty?
190
189
 
190
+ if !attributes.nil? && !attributes.empty?
191
+ data[:attributes] = attributes
192
+ end
193
+
191
194
  # Body
192
195
  body = {
193
196
  data: data
@@ -887,6 +890,77 @@ module Spaceship
887
890
  tunes_request_client.post("appStoreVersionReleaseRequests", body)
888
891
  end
889
892
 
893
+ #
894
+ # customAppUsers
895
+ #
896
+
897
+ def get_custom_app_users(app_id: nil, filter: nil, includes: nil, limit: nil, sort: nil)
898
+ params = tunes_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
899
+ tunes_request_client.get("apps/#{app_id}/customAppUsers", params)
900
+ end
901
+
902
+ def post_custom_app_user(app_id: nil, apple_id: nil)
903
+ body = {
904
+ data: {
905
+ type: "customAppUsers",
906
+ attributes: {
907
+ appleId: apple_id
908
+ },
909
+ relationships: {
910
+ app: {
911
+ data: {
912
+ type: "apps",
913
+ id: app_id
914
+ }
915
+ }
916
+ }
917
+ }
918
+ }
919
+
920
+ tunes_request_client.post("customAppUsers", body)
921
+ end
922
+
923
+ def delete_custom_app_user(custom_app_user_id: nil)
924
+ params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
925
+ tunes_request_client.delete("customAppUsers/#{custom_app_user_id}", params)
926
+ end
927
+
928
+ #
929
+ # customOrganizationUsers
930
+ #
931
+
932
+ def get_custom_app_organization(app_id: nil, filter: nil, includes: nil, limit: nil, sort: nil)
933
+ params = tunes_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
934
+ tunes_request_client.get("apps/#{app_id}/customAppOrganizations", params)
935
+ end
936
+
937
+ def post_custom_app_organization(app_id: nil, device_enrollment_program_id: nil, name: nil)
938
+ body = {
939
+ data: {
940
+ type: "customAppOrganizations",
941
+ attributes: {
942
+ deviceEnrollmentProgramId: device_enrollment_program_id,
943
+ name: name
944
+ },
945
+ relationships: {
946
+ app: {
947
+ data: {
948
+ type: "apps",
949
+ id: app_id
950
+ }
951
+ }
952
+ }
953
+ }
954
+ }
955
+
956
+ tunes_request_client.post("customAppOrganizations", body)
957
+ end
958
+
959
+ def delete_custom_app_organization(custom_app_organization_id: nil)
960
+ params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
961
+ tunes_request_client.delete("customAppOrganizations/#{custom_app_organization_id}", params)
962
+ end
963
+
890
964
  #
891
965
  # idfaDeclarations
892
966
  #
@@ -17,11 +17,18 @@ module Spaceship
17
17
  # users
18
18
  #
19
19
 
20
+ # Get list of users
20
21
  def get_users(filter: {}, includes: nil, limit: nil, sort: nil)
21
22
  params = users_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
22
23
  users_request_client.get("users", params)
23
24
  end
24
25
 
26
+ # Delete existing user
27
+ def delete_user(user_id: nil)
28
+ users_request_client.delete("users/#{user_id}")
29
+ end
30
+
31
+ # Change app permissions for user
25
32
  def add_user_visible_apps(user_id: nil, app_ids: nil)
26
33
  body = {
27
34
  data: app_ids.map do |app_id|
@@ -34,6 +41,39 @@ module Spaceship
34
41
 
35
42
  users_request_client.post("users/#{user_id}/relationships/visibleApps", body)
36
43
  end
44
+
45
+ #
46
+ # invitations (invited users)
47
+ #
48
+
49
+ # Get all invited users (not yet accepted)
50
+ def get_user_invitations(filter: {}, includes: nil, limit: nil, sort: nil)
51
+ params = users_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
52
+ users_request_client.get("userInvitations", params)
53
+ end
54
+
55
+ # Invite new users to App Store Connect
56
+ def post_user_invitation(email: nil, first_name: nil, last_name: nil, roles: [], provisioning_allowed: nil, all_apps_visible: nil)
57
+ body = {
58
+ data: {
59
+ type: "userInvitations",
60
+ attributes: {
61
+ email: email,
62
+ firstName: first_name,
63
+ lastName: last_name,
64
+ roles: roles,
65
+ provisioningAllowed: provisioning_allowed,
66
+ allAppsVisible: all_apps_visible
67
+ }
68
+ }
69
+ }
70
+ users_request_client.post("userInvitations", body)
71
+ end
72
+
73
+ # Remove invited user from team (not yet accepted)
74
+ def delete_user_invitation(user_invitation_id: nil)
75
+ users_request_client.delete("userInvitations/#{user_invitation_id}")
76
+ end
37
77
  end
38
78
  end
39
79
  end
@@ -5,10 +5,16 @@ require 'net/http'
5
5
  # Certain apple endpoints return 415 responses if a Content-Type is supplied.
6
6
  # Net::HTTP will default a content-type if none is provided by faraday
7
7
  # This monkey-patch allows us to leave out the content-type if we do not specify one.
8
- module Net
9
- class HTTPGenericRequest
10
- def supply_default_content_type
11
- return if content_type
12
- end
8
+ module NetHTTPGenericRequestMonkeypatch
9
+ def supply_default_content_type
10
+ # Return no content type if we communicating with an apple.com domain
11
+ return if !self['host'].nil? && self['host'].end_with?('.apple.com')
12
+
13
+ # Otherwise use the default implementation
14
+ super
13
15
  end
14
16
  end
17
+
18
+ # We prepend the monkeypatch so the patch has access to the original implementation
19
+ # using `super`.
20
+ Net::HTTPGenericRequest.prepend(NetHTTPGenericRequestMonkeypatch)
@@ -111,7 +111,7 @@ module Supply
111
111
  releases = track.releases
112
112
 
113
113
  releases = releases.select { |r| r.status == status } if status
114
- releases = releases.select { |r| r.version_codes.map(&:to_s).include?(version_code.to_s) } if version_code
114
+ releases = releases.select { |r| (r.version_codes || []).map(&:to_s).include?(version_code.to_s) } if version_code
115
115
 
116
116
  if releases.size > 1
117
117
  UI.user_error!("More than one release found in this track. Please specify with the :version_code option to select a release.")
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.160.0
4
+ version: 2.165.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jorge Revuelta H
8
- - Helmut Januschka
8
+ - Matthew Ellis
9
9
  - Felix Krause
10
- - Kohki Miki
11
- - Joshua Liebowitz
12
- - Manu Wallner
13
- - Max Ott
10
+ - Josh Holtz
11
+ - Danielle Tomlinson
14
12
  - Jérôme Lacoste
13
+ - Kohki Miki
14
+ - Maksym Grebenets
15
+ - Aaron Brager
15
16
  - Jimmy Dee
17
+ - Max Ott
16
18
  - Luka Mirosevic
17
- - Matthew Ellis
18
- - Maksym Grebenets
19
- - Josh Holtz
19
+ - Manu Wallner
20
20
  - Jan Piotrowski
21
21
  - Stefan Natchev
22
- - Daniel Jankowski
23
- - Olivier Halligon
24
- - Danielle Tomlinson
25
- - Fumiya Nakamura
26
- - Aaron Brager
27
22
  - Andrew McBurney
23
+ - Fumiya Nakamura
28
24
  - Iulian Onofrei
25
+ - Olivier Halligon
26
+ - Joshua Liebowitz
27
+ - Daniel Jankowski
28
+ - Helmut Januschka
29
29
  autorequire:
30
30
  bindir: bin
31
31
  cert_chain: []
32
- date: 2020-09-16 00:00:00.000000000 Z
32
+ date: 2020-10-23 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: slack-notifier
@@ -983,6 +983,7 @@ files:
983
983
  - fastlane/lib/fastlane/.erb_template_helper.rb.swp
984
984
  - fastlane/lib/fastlane/action.rb
985
985
  - fastlane/lib/fastlane/action_collector.rb
986
+ - fastlane/lib/fastlane/actions/.download_dsyms.rb.swp
986
987
  - fastlane/lib/fastlane/actions/.git_commit.rb.swp
987
988
  - fastlane/lib/fastlane/actions/README.md
988
989
  - fastlane/lib/fastlane/actions/actions_helper.rb
@@ -1654,6 +1655,8 @@ files:
1654
1655
  - spaceship/lib/spaceship/connect_api/models/bundle_id.rb
1655
1656
  - spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb
1656
1657
  - spaceship/lib/spaceship/connect_api/models/certificate.rb
1658
+ - spaceship/lib/spaceship/connect_api/models/custom_app_organization.rb
1659
+ - spaceship/lib/spaceship/connect_api/models/custom_app_user.rb
1657
1660
  - spaceship/lib/spaceship/connect_api/models/device.rb
1658
1661
  - spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb
1659
1662
  - spaceship/lib/spaceship/connect_api/models/pre_release_version.rb
@@ -1662,6 +1665,7 @@ files:
1662
1665
  - spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb
1663
1666
  - spaceship/lib/spaceship/connect_api/models/territory.rb
1664
1667
  - spaceship/lib/spaceship/connect_api/models/user.rb
1668
+ - spaceship/lib/spaceship/connect_api/models/user_invitation.rb
1665
1669
  - spaceship/lib/spaceship/connect_api/provisioning/client.rb
1666
1670
  - spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb
1667
1671
  - spaceship/lib/spaceship/connect_api/response.rb