fastlane 2.126.0.beta.20190623200100 → 2.126.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +76 -76
  3. data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
  4. data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
  5. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -2
  6. data/fastlane/lib/fastlane/actions/oclint.rb +9 -2
  7. data/fastlane/lib/fastlane/actions/reset_simulator_contents.rb +34 -27
  8. data/fastlane/lib/fastlane/lane_manager_base.rb +4 -1
  9. data/fastlane/lib/fastlane/version.rb +1 -1
  10. data/fastlane/swift/Deliverfile.swift +1 -1
  11. data/fastlane/swift/DeliverfileProtocol.swift +3 -1
  12. data/fastlane/swift/Fastlane.swift +19 -5
  13. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  14. data/fastlane/swift/Gymfile.swift +1 -1
  15. data/fastlane/swift/Matchfile.swift +1 -1
  16. data/fastlane/swift/Precheckfile.swift +1 -1
  17. data/fastlane/swift/Scanfile.swift +1 -1
  18. data/fastlane/swift/ScanfileProtocol.swift +3 -1
  19. data/fastlane/swift/Screengrabfile.swift +1 -1
  20. data/fastlane/swift/Snapshotfile.swift +1 -1
  21. data/fastlane_core/lib/fastlane_core/.build_watcher.rb.swp +0 -0
  22. data/fastlane_core/lib/fastlane_core/build_watcher.rb +2 -2
  23. data/pilot/lib/pilot/.build_manager.rb.swp +0 -0
  24. data/pilot/lib/pilot/.manager.rb.swp +0 -0
  25. data/pilot/lib/pilot/.tester_manager.rb.swp +0 -0
  26. data/pilot/lib/pilot/build_manager.rb +9 -14
  27. data/pilot/lib/pilot/manager.rb +2 -2
  28. data/pilot/lib/pilot/tester_exporter.rb +3 -3
  29. data/pilot/lib/pilot/tester_manager.rb +2 -2
  30. data/scan/lib/scan/options.rb +7 -1
  31. data/scan/lib/scan/test_command_generator.rb +1 -1
  32. data/snapshot/lib/assets/SnapshotHelper.swift +10 -4
  33. data/spaceship/lib/spaceship/connect_api.rb +42 -0
  34. data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
  35. data/spaceship/lib/spaceship/connect_api/client.rb +178 -0
  36. data/spaceship/lib/spaceship/connect_api/model.rb +1 -15
  37. data/spaceship/lib/spaceship/connect_api/models/app.rb +97 -0
  38. data/spaceship/lib/spaceship/connect_api/models/beta_app_localization.rb +28 -0
  39. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_detail.rb +32 -0
  40. data/spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb +26 -0
  41. data/spaceship/lib/spaceship/connect_api/models/beta_build_localization.rb +20 -0
  42. data/spaceship/lib/spaceship/connect_api/models/beta_build_metric.rb +24 -0
  43. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +41 -0
  44. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +56 -0
  45. data/spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb +43 -0
  46. data/spaceship/lib/spaceship/connect_api/models/build.rb +144 -0
  47. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +56 -0
  48. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +36 -0
  49. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +46 -0
  50. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +37 -0
  51. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +48 -0
  52. data/spaceship/lib/spaceship/connect_api/models/device.rb +53 -0
  53. data/spaceship/lib/spaceship/connect_api/models/pre_release_version.rb +20 -0
  54. data/spaceship/lib/spaceship/connect_api/models/profile.rb +60 -0
  55. data/spaceship/lib/spaceship/connect_api/models/user.rb +50 -0
  56. data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +59 -0
  57. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +48 -0
  58. data/spaceship/lib/spaceship/connect_api/response.rb +1 -1
  59. data/spaceship/lib/spaceship/connect_api/testflight/client.rb +18 -538
  60. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +314 -19
  61. data/spaceship/lib/spaceship/connect_api/token.rb +13 -1
  62. data/spaceship/lib/spaceship/connect_api/users/client.rb +33 -0
  63. data/spaceship/lib/spaceship/connect_api/users/users.rb +16 -0
  64. data/spaceship/lib/spaceship/test_flight/build.rb +2 -2
  65. data/spaceship/lib/spaceship/test_flight/build_trains.rb +5 -56
  66. metadata +64 -48
  67. data/spaceship/lib/spaceship/connect_api/testflight/base.rb +0 -41
  68. data/spaceship/lib/spaceship/connect_api/testflight/models/app.rb +0 -99
  69. data/spaceship/lib/spaceship/connect_api/testflight/models/beta_app_localization.rb +0 -30
  70. data/spaceship/lib/spaceship/connect_api/testflight/models/beta_app_review_detail.rb +0 -34
  71. data/spaceship/lib/spaceship/connect_api/testflight/models/beta_app_review_submission.rb +0 -28
  72. data/spaceship/lib/spaceship/connect_api/testflight/models/beta_build_localization.rb +0 -22
  73. data/spaceship/lib/spaceship/connect_api/testflight/models/beta_build_metric.rb +0 -26
  74. data/spaceship/lib/spaceship/connect_api/testflight/models/beta_group.rb +0 -43
  75. data/spaceship/lib/spaceship/connect_api/testflight/models/beta_tester.rb +0 -58
  76. data/spaceship/lib/spaceship/connect_api/testflight/models/beta_tester_metric.rb +0 -45
  77. data/spaceship/lib/spaceship/connect_api/testflight/models/build.rb +0 -146
  78. data/spaceship/lib/spaceship/connect_api/testflight/models/build_beta_detail.rb +0 -58
  79. data/spaceship/lib/spaceship/connect_api/testflight/models/build_delivery.rb +0 -38
  80. data/spaceship/lib/spaceship/connect_api/testflight/models/pre_release_version.rb +0 -22
  81. data/spaceship/lib/spaceship/connect_api/testflight/models/user.rb +0 -52
@@ -1,20 +1,10 @@
1
- require_relative '../base'
2
- require_relative './testflight/base'
3
-
4
1
  module Spaceship
5
- module ConnectAPI
2
+ class ConnectAPI
6
3
  module Model
7
4
  def self.included(base)
8
5
  Spaceship::ConnectAPI::Models.types ||= []
9
6
  Spaceship::ConnectAPI::Models.types << base
10
7
  base.extend(Spaceship::ConnectAPI::Model)
11
- base.extend(Spaceship::ConnectAPI::Model::ClassMethods)
12
- end
13
-
14
- module ClassMethods
15
- def testflight_client
16
- return Spaceship::ConnectAPI::TestFlight::Base.client
17
- end
18
8
  end
19
9
 
20
10
  attr_accessor :id
@@ -31,10 +21,6 @@ module Spaceship
31
21
  end
32
22
  end
33
23
 
34
- def testflight_client
35
- return Spaceship::ConnectAPI::TestFlight::Base.client
36
- end
37
-
38
24
  #
39
25
  # Example:
40
26
  # { "minOsVersion" => "min_os_version" }
@@ -0,0 +1,97 @@
1
+ require_relative '../model'
2
+ require_relative './build'
3
+
4
+ module Spaceship
5
+ class ConnectAPI
6
+ class App
7
+ include Spaceship::ConnectAPI::Model
8
+
9
+ attr_accessor :name
10
+ attr_accessor :bundle_id
11
+ attr_accessor :sku
12
+ attr_accessor :primary_locale
13
+ attr_accessor :removed
14
+ attr_accessor :is_aag
15
+
16
+ self.attr_mapping({
17
+ "name" => "name",
18
+ "bundleId" => "bundle_id",
19
+ "sku" => "sku",
20
+ "primaryLocale" => "primary_locale",
21
+ "removed" => "removed",
22
+ "isAAG" => "is_aag"
23
+ })
24
+
25
+ def self.type
26
+ return "apps"
27
+ end
28
+
29
+ #
30
+ # Apps
31
+ #
32
+
33
+ def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
34
+ resps = Spaceship::ConnectAPI.get_apps(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
35
+ return resps.map(&:to_models).flatten
36
+ end
37
+
38
+ def self.find(bundle_id)
39
+ return all(filter: { bundleId: bundle_id }).find do |app|
40
+ app.bundle_id == bundle_id
41
+ end
42
+ end
43
+
44
+ def self.get(app_id: nil, includes: nil)
45
+ return Spaceship::ConnectAPI.get_app(app_id: app_id, includes: includes).first
46
+ end
47
+
48
+ #
49
+ # Beta Testers
50
+ #
51
+
52
+ def get_beta_testers(filter: {}, includes: nil, limit: nil, sort: nil)
53
+ filter ||= {}
54
+ filter[:apps] = id
55
+
56
+ resps = Spaceship::ConnectAPI.get_beta_testers(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
57
+ return resps.map(&:to_models).flatten
58
+ end
59
+
60
+ #
61
+ # Builds
62
+ #
63
+
64
+ def get_builds(filter: {}, includes: nil, limit: nil, sort: nil)
65
+ filter ||= {}
66
+ filter[:app] = id
67
+
68
+ resps = Spaceship::ConnectAPI.get_builds(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
69
+ return resps.map(&:to_models).flatten
70
+ end
71
+
72
+ def get_build_deliveries(filter: {}, includes: nil, limit: nil, sort: nil)
73
+ filter ||= {}
74
+ filter[:app] = id
75
+
76
+ resps = Spaceship::ConnectAPI.get_build_deliveries(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
77
+ return resps.map(&:to_models).flatten
78
+ end
79
+
80
+ def get_beta_app_localizations(filter: {}, includes: nil, limit: nil, sort: nil)
81
+ filter ||= {}
82
+ filter[:app] = id
83
+
84
+ resps = Spaceship::ConnectAPI.get_beta_app_localizations(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
85
+ return resps.map(&:to_models).flatten
86
+ end
87
+
88
+ def get_beta_groups(filter: {}, includes: nil, limit: nil, sort: nil)
89
+ filter ||= {}
90
+ filter[:app] = id
91
+
92
+ resps = Spaceship::ConnectAPI.get_beta_groups(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
93
+ return resps.map(&:to_models).flatten
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,28 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class BetaAppLocalization
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :feedback_email
8
+ attr_accessor :marketing_url
9
+ attr_accessor :privacy_policy_url
10
+ attr_accessor :tv_os_privacy_policy
11
+ attr_accessor :description
12
+ attr_accessor :locale
13
+
14
+ attr_mapping({
15
+ "feedbackEmail" => "feedback_email",
16
+ "marketingUrl" => "marketing_url",
17
+ "privacyPolicyUrl" => "privacy_policy_url",
18
+ "tvOsPrivacyPolicy" => "tv_os_privacy_policy",
19
+ "description" => "description",
20
+ "locale" => "locale"
21
+ })
22
+
23
+ def self.type
24
+ return "betaAppLocalizations"
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,32 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class BetaAppReviewDetail
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :contact_first_name
8
+ attr_accessor :contact_last_name
9
+ attr_accessor :contact_phone
10
+ attr_accessor :contact_email
11
+ attr_accessor :demo_account_name
12
+ attr_accessor :demo_account_password
13
+ attr_accessor :demo_account_required
14
+ attr_accessor :notes
15
+
16
+ attr_mapping({
17
+ "contactFirstName" => "contact_first_name",
18
+ "contactLastName" => "contact_last_name",
19
+ "contactPhone" => "contact_phone",
20
+ "contactEmail" => "contact_email",
21
+ "demoAccountName" => "demo_account_name",
22
+ "demoAccountPassword" => "demo_account_password",
23
+ "demoAccountRequired" => "demo_account_required",
24
+ "notes" => "notes"
25
+ })
26
+
27
+ def self.type
28
+ return "betaAppReviewDetails"
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,26 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class BetaAppReviewSubmission
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :beta_review_state
8
+
9
+ attr_mapping({
10
+ "betaReviewState" => "beta_review_state"
11
+ })
12
+
13
+ def self.type
14
+ return "betaAppReviewSubmissions"
15
+ end
16
+
17
+ #
18
+ # API
19
+ #
20
+
21
+ def delete!
22
+ return Spaceship::ConnectAPI.delete_beta_app_review_submission(beta_app_review_submission_id: id)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class BetaBuildLocalization
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :whats_new
8
+ attr_accessor :locale
9
+
10
+ attr_mapping({
11
+ "whatsNew" => "whats_new",
12
+ "locale" => "locale"
13
+ })
14
+
15
+ def self.type
16
+ return "betaBuildLocalizations"
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,24 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class BetaBuildMetric
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :install_count
8
+ attr_accessor :crash_count
9
+ attr_accessor :invite_count
10
+ attr_accessor :seven_day_tester_count
11
+
12
+ attr_mapping({
13
+ "installCount" => "install_count",
14
+ "crashCount" => "crash_count",
15
+ "inviteCount" => "invite_count",
16
+ "sevenDayTesterCount" => "seven_day_tester_count"
17
+ })
18
+
19
+ def self.type
20
+ return "betaBuildMetrics"
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,41 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class BetaGroup
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :name
8
+ attr_accessor :created_date
9
+ attr_accessor :is_internal_group
10
+ attr_accessor :public_link_enabled
11
+ attr_accessor :public_link_id
12
+ attr_accessor :public_link_limit_enabled
13
+ attr_accessor :public_link_limit
14
+ attr_accessor :public_link
15
+
16
+ attr_mapping({
17
+ "name" => "name",
18
+ "createdDate" => "created_date",
19
+ "isInternalGroup" => "is_internal_group",
20
+ "publicLinkEnabled" => "public_link_enabled",
21
+ "publicLinkId" => "public_link_id",
22
+ "publicLinkLimitEnabled" => "public_link_limit_enabled",
23
+ "publicLinkLimit" => "public_link_limit",
24
+ "publicLink" => "public_link"
25
+ })
26
+
27
+ def self.type
28
+ return "betaGroups"
29
+ end
30
+
31
+ #
32
+ # API
33
+ #
34
+
35
+ # beta_testers - [{email: "", firstName: "", lastName: ""}]
36
+ def post_bulk_beta_tester_assignments(beta_testers: nil)
37
+ return Spaceship::ConnectAPI.post_bulk_beta_tester_assignments(beta_group_id: id, beta_testers: beta_testers)
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,56 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class BetaTester
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :first_name
8
+ attr_accessor :last_name
9
+ attr_accessor :email
10
+ attr_accessor :invite_type
11
+ attr_accessor :invitation
12
+
13
+ attr_accessor :apps
14
+ attr_accessor :beta_groups
15
+ attr_accessor :beta_tester_metrics
16
+
17
+ attr_mapping({
18
+ "firstName" => "first_name",
19
+ "lastName" => "last_name",
20
+ "email" => "email",
21
+ "inviteType" => "invite_type",
22
+ "invitation" => "invitation",
23
+
24
+ "apps" => "apps",
25
+ "betaGroups" => "beta_groups",
26
+ "betaTesterMetrics" => "beta_tester_metrics"
27
+ })
28
+
29
+ def self.type
30
+ return "betaTesters"
31
+ end
32
+
33
+ #
34
+ # API
35
+ #
36
+
37
+ def self.all(filter: {}, includes: nil, limit: nil, sort: nil)
38
+ return Spaceship::ConnectAPI.get_beta_testers(filter: filter, includes: includes)
39
+ end
40
+
41
+ def self.find(email: nil, includes: nil)
42
+ return all(filter: { email: email }, includes: includes).first
43
+ end
44
+
45
+ def delete_from_apps(apps: nil)
46
+ app_ids = apps.map(&:id)
47
+ return Spaceship::ConnectAPI.delete_beta_tester_from_apps(beta_tester_id: id, app_ids: app_ids)
48
+ end
49
+
50
+ def delete_from_beta_groups(beta_groups: nil)
51
+ beta_group_ids = beta_groups.map(&:id)
52
+ return Spaceship::ConnectAPI.delete_beta_tester_from_beta_groups(beta_tester_id: id, beta_group_ids: beta_group_ids)
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,43 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class BetaTesterMetric
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :install_count
8
+ attr_accessor :crash_count
9
+ attr_accessor :session_count
10
+ attr_accessor :beta_tester_state
11
+ attr_accessor :last_modified_date
12
+ attr_accessor :installed_cf_bundle_short_version_string
13
+ attr_accessor :installed_cf_bundle_version
14
+
15
+ attr_mapping({
16
+ "installCount" => "install_count",
17
+ "crashCount" => "crash_count",
18
+ "sessionCount" => "session_count",
19
+ "betaTesterState" => "beta_tester_state",
20
+ "lastModifiedDate" => "last_modified_date",
21
+ "installedCfBundleShortVersionString" => "installed_cf_bundle_short_version_string",
22
+ "installedCfBundleVersion" => "installed_cf_bundle_version"
23
+ })
24
+
25
+ module BetaTesterState
26
+ INSTALLED = "INSTALLED"
27
+ NO_BUILDS = "NO_BUILDS"
28
+ end
29
+
30
+ def self.type
31
+ return "betaTesterMetrics"
32
+ end
33
+
34
+ #
35
+ # Helpers
36
+ #
37
+
38
+ def installed?
39
+ return beta_tester_state == BetaTesterState::INSTALLED
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,144 @@
1
+ require_relative '../model'
2
+ require 'spaceship/test_flight/build'
3
+ module Spaceship
4
+ class ConnectAPI
5
+ class Build
6
+ include Spaceship::ConnectAPI::Model
7
+
8
+ attr_accessor :version
9
+ attr_accessor :uploaded_date
10
+ attr_accessor :expiration_date
11
+ attr_accessor :expired
12
+ attr_accessor :min_os_version
13
+ attr_accessor :icon_asset_token
14
+ attr_accessor :processing_state
15
+ attr_accessor :uses_non_exempt_encryption
16
+
17
+ attr_accessor :app
18
+ attr_accessor :beta_app_review_submission
19
+ attr_accessor :beta_build_metrics
20
+ attr_accessor :build_beta_detail
21
+ attr_accessor :pre_release_version
22
+
23
+ attr_mapping({
24
+ "version" => "version",
25
+ "uploadedDate" => "uploaded_date",
26
+ "expirationDate" => "expiration_date",
27
+ "expired" => "expired",
28
+ "minOsVersion" => "min_os_version",
29
+ "iconAssetToken" => "icon_asset_token",
30
+ "processingState" => "processing_state",
31
+ "usesNonExemptEncryption" => "uses_non_exempt_encryption",
32
+
33
+ "app" => "app",
34
+ "betaAppReviewSubmission" => "beta_app_review_submission",
35
+ "betaBuildMetrics" => "beta_build_metrics",
36
+ "buildBetaDetail" => "build_beta_detail",
37
+ "preReleaseVersion" => "pre_release_version"
38
+ })
39
+
40
+ ESSENTIAL_INCLUDES = "app,buildBetaDetail,preReleaseVersion"
41
+
42
+ module ProcessingState
43
+ PROCESSING = "PROCESSING"
44
+ FAILED = "FAILED"
45
+ INVALID = "INVALID"
46
+ VALID = "VALID"
47
+ end
48
+
49
+ def self.type
50
+ return "builds"
51
+ end
52
+
53
+ #
54
+ # Helpers
55
+ #
56
+
57
+ def app_version
58
+ raise "No pre_release_version included" unless pre_release_version
59
+ return pre_release_version.version
60
+ end
61
+
62
+ def app_id
63
+ raise "No app included" unless app
64
+ return app.id
65
+ end
66
+
67
+ def bundle_id
68
+ raise "No app included" unless app
69
+ return app.bundle_id
70
+ end
71
+
72
+ def processed?
73
+ return processing_state != ProcessingState::PROCESSING
74
+ end
75
+
76
+ def ready_for_beta_submission?
77
+ raise "No build_beat_detail included" unless build_beta_detail
78
+ return build_beta_detail.ready_for_beta_submission?
79
+ end
80
+
81
+ # This is here temporarily until the removal of Spaceship::TestFlight
82
+ def to_testflight_build
83
+ h = {
84
+ 'buildVersion' => version,
85
+ 'uploadDate' => uploaded_date,
86
+ 'externalState' => processed? ? Spaceship::TestFlight::Build::BUILD_STATES[:active] : Spaceship::TestFlight::Build::BUILD_STATES[:processing],
87
+ 'appAdamId' => app_id,
88
+ 'bundleId' => bundle_id,
89
+ 'trainVersion' => app_version
90
+ }
91
+
92
+ return Spaceship::TestFlight::Build.new(h)
93
+ end
94
+
95
+ #
96
+ # API
97
+ #
98
+
99
+ def self.all(app_id: nil, version: nil, build_number: nil, includes: ESSENTIAL_INCLUDES, sort: "-uploadedDate", limit: 30)
100
+ resps = Spaceship::ConnectAPI.get_builds(
101
+ filter: { app: app_id, "preReleaseVersion.version" => version, version: build_number },
102
+ includes: includes,
103
+ sort: sort,
104
+ limit: limit
105
+ ).all_pages
106
+ return resps.map(&:to_models).flatten
107
+ end
108
+
109
+ def self.get(build_id: nil, includes: ESSENTIAL_INCLUDES)
110
+ return Spaceship::ConnectAPI.get_build(build_id: build_id, includes: includes).first
111
+ end
112
+
113
+ def add_beta_groups(beta_groups: nil)
114
+ beta_groups ||= []
115
+ beta_group_ids = beta_groups.map(&:id)
116
+ return Spaceship::ConnectAPI.add_beta_groups_to_build(build_id: id, beta_group_ids: beta_group_ids)
117
+ end
118
+
119
+ def get_beta_build_localizations(filter: {}, includes: nil, limit: nil, sort: nil)
120
+ resps = Spaceship::ConnectAPI.get_beta_build_localizations(
121
+ filter: { build: id },
122
+ includes: includes,
123
+ sort: sort,
124
+ limit: limit
125
+ ).all_pages
126
+ return resps.map(&:to_models).flatten
127
+ end
128
+
129
+ def get_build_beta_details(filter: {}, includes: nil, limit: nil, sort: nil)
130
+ resps = Spaceship::ConnectAPI.get_build_beta_details(
131
+ filter: { build: id },
132
+ includes: includes,
133
+ sort: sort,
134
+ limit: limit
135
+ ).all_pages
136
+ return resps.map(&:to_models).flatten
137
+ end
138
+
139
+ def post_beta_app_review_submission
140
+ return Spaceship::ConnectAPI.post_beta_app_review_submissions(build_id: id)
141
+ end
142
+ end
143
+ end
144
+ end