fastlane 2.135.0 → 2.138.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +78 -78
  3. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
  4. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +38 -4
  5. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +19 -0
  6. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +4 -2
  7. data/fastlane/lib/fastlane/actions/ensure_bundle_exec.rb +3 -3
  8. data/fastlane/lib/fastlane/actions/get_version_number.rb +7 -2
  9. data/fastlane/lib/fastlane/actions/google_play_track_version_codes.rb +5 -1
  10. data/fastlane/lib/fastlane/actions/gradle.rb +11 -1
  11. data/fastlane/lib/fastlane/actions/increment_version_number.rb +6 -3
  12. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
  13. data/fastlane/lib/fastlane/actions/register_devices.rb +5 -1
  14. data/fastlane/lib/fastlane/actions/ruby_version.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/testfairy.rb +8 -1
  16. data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/xcode_select.rb +6 -1
  18. data/fastlane/lib/fastlane/cli_tools_distributor.rb +2 -2
  19. data/fastlane/lib/fastlane/commands_generator.rb +1 -1
  20. data/fastlane/lib/fastlane/helper/adb_helper.rb +13 -4
  21. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -0
  22. data/fastlane/lib/fastlane/swift_fastlane_function.rb +9 -0
  23. data/fastlane/lib/fastlane/version.rb +1 -1
  24. data/fastlane/swift/Deliverfile.swift +1 -1
  25. data/fastlane/swift/Fastlane.swift +47 -17
  26. data/fastlane/swift/Gymfile.swift +1 -1
  27. data/fastlane/swift/Matchfile.swift +1 -1
  28. data/fastlane/swift/MatchfileProtocol.swift +6 -2
  29. data/fastlane/swift/Precheckfile.swift +1 -1
  30. data/fastlane/swift/Scanfile.swift +1 -1
  31. data/fastlane/swift/Screengrabfile.swift +1 -1
  32. data/fastlane/swift/ScreengrabfileProtocol.swift +14 -2
  33. data/fastlane/swift/Snapshotfile.swift +1 -1
  34. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  35. data/match/lib/match/options.rb +8 -0
  36. data/match/lib/match/runner.rb +1 -0
  37. data/match/lib/match/storage/git_storage.rb +7 -2
  38. data/screengrab/lib/screengrab/module.rb +2 -0
  39. data/screengrab/lib/screengrab/options.rb +24 -11
  40. data/screengrab/lib/screengrab/runner.rb +79 -42
  41. data/spaceship/lib/spaceship/client.rb +9 -4
  42. data/spaceship/lib/spaceship/connect_api.rb +2 -0
  43. data/spaceship/lib/spaceship/connect_api/models/app.rb +11 -0
  44. data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +71 -0
  45. data/spaceship/lib/spaceship/connect_api/models/beta_screenshot.rb +18 -0
  46. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +9 -0
  47. data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -5
  48. data/supply/lib/supply/client.rb +1 -0
  49. data/supply/lib/supply/options.rb +9 -2
  50. data/supply/lib/supply/uploader.rb +63 -39
  51. metadata +22 -24
  52. data/gym/lib/gym/.module.rb.swp +0 -0
  53. data/supply/lib/supply/.client.rb.swp +0 -0
  54. data/supply/lib/supply/.options.rb.swp +0 -0
  55. data/supply/lib/supply/.uploader.rb.swp +0 -0
@@ -563,10 +563,15 @@ module Spaceship
563
563
  #####################################################
564
564
 
565
565
  def load_session_from_file
566
- if File.exist?(persistent_cookie_path)
567
- puts("Loading session from '#{persistent_cookie_path}'") if Spaceship::Globals.verbose?
568
- @cookie.load(persistent_cookie_path)
569
- return true
566
+ begin
567
+ if File.exist?(persistent_cookie_path)
568
+ puts("Loading session from '#{persistent_cookie_path}'") if Spaceship::Globals.verbose?
569
+ @cookie.load(persistent_cookie_path)
570
+ return true
571
+ end
572
+ rescue => ex
573
+ puts(ex.to_s)
574
+ puts("Continuing with normal login.")
570
575
  end
571
576
  return false
572
577
  end
@@ -20,7 +20,9 @@ require 'spaceship/connect_api/models/beta_build_localization'
20
20
  require 'spaceship/connect_api/models/beta_build_metric'
21
21
  require 'spaceship/connect_api/models/beta_app_review_detail'
22
22
  require 'spaceship/connect_api/models/beta_app_review_submission'
23
+ require 'spaceship/connect_api/models/beta_feedback'
23
24
  require 'spaceship/connect_api/models/beta_group'
25
+ require 'spaceship/connect_api/models/beta_screenshot'
24
26
  require 'spaceship/connect_api/models/beta_tester'
25
27
  require 'spaceship/connect_api/models/beta_tester_metric'
26
28
  require 'spaceship/connect_api/models/build'
@@ -45,6 +45,17 @@ module Spaceship
45
45
  return Spaceship::ConnectAPI.get_app(app_id: app_id, includes: includes).first
46
46
  end
47
47
 
48
+ #
49
+ # Beta Feedback
50
+
51
+ def get_beta_feedback(filter: {}, includes: "tester,build,screenshots", limit: nil, sort: nil)
52
+ filter ||= {}
53
+ filter["build.app"] = id
54
+
55
+ resps = Spaceship::ConnectAPI.get_beta_feedback(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
56
+ return resps.flat_map(&:to_models)
57
+ end
58
+
48
59
  #
49
60
  # Beta Testers
50
61
  #
@@ -0,0 +1,71 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class BetaFeedback
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :timestamp
8
+ attr_accessor :comment
9
+ attr_accessor :email_address
10
+ attr_accessor :device_model
11
+ attr_accessor :os_version
12
+ attr_accessor :bookmarked
13
+ attr_accessor :locale
14
+ attr_accessor :carrier
15
+ attr_accessor :timezone
16
+ attr_accessor :architecture
17
+ attr_accessor :connection_status
18
+ attr_accessor :paired_apple_watch
19
+ attr_accessor :app_up_time_millis
20
+ attr_accessor :available_disk_bytes
21
+ attr_accessor :total_disk_bytes
22
+ attr_accessor :network_type
23
+ attr_accessor :battery_percentage
24
+ attr_accessor :screen_width
25
+ attr_accessor :screen_height
26
+
27
+ attr_accessor :build
28
+ attr_accessor :tester
29
+ attr_accessor :screenshots
30
+
31
+ attr_mapping({
32
+ "timestamp" => "timestamp",
33
+ "comment" => "comment",
34
+ "emailAddress" => "email_address",
35
+ "contactEmail" => "contact_email",
36
+ "deviceModel" => "device_model",
37
+ "osVersion" => "os_version",
38
+ "bookmarked" => "bookmarked",
39
+ "locale" => "locale",
40
+ "carrier" => "carrier",
41
+ "timezone" => "timezone",
42
+ "architecture" => "architecture",
43
+ "connectionStatus" => "connection_status",
44
+ "pairedAppleWatch" => "paired_apple_watch",
45
+ "appUpTimeMillis" => "app_up_time_millis",
46
+ "availableDiskBytes" => "available_disk_bytes",
47
+ "totalDiskBytes" => "total_disk_bytes",
48
+ "networkType" => "network_type",
49
+ "batteryPercentage" => "battery_percentage",
50
+ "screenWidth" => "screen_width",
51
+ "screenHeight" => "screen_height",
52
+
53
+ "build" => "build",
54
+ "tester" => "tester",
55
+ "screenshots" => "screenshots"
56
+ })
57
+
58
+ def self.type
59
+ return "betaFeedbacks"
60
+ end
61
+
62
+ #
63
+ # API
64
+ #
65
+
66
+ def self.all(filter: {}, includes: "tester,build,screenshots", limit: nil, sort: nil)
67
+ return Spaceship::ConnectAPI.get_beta_feedback(filter: filter, includes: includes, limit: limit, sort: sort)
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,18 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class BetaScreenshot
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :image_assets
8
+
9
+ attr_mapping({
10
+ "imageAssets" => "image_assets"
11
+ })
12
+
13
+ def self.type
14
+ return "betaScreenshots"
15
+ end
16
+ end
17
+ end
18
+ end
@@ -317,6 +317,15 @@ module Spaceship
317
317
  params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
318
318
  Client.instance.get("preReleaseVersions", params)
319
319
  end
320
+
321
+ #
322
+ # betaFeedbacks (private API as of end 2019)
323
+ #
324
+
325
+ def get_beta_feedback(filter: {}, includes: nil, limit: nil, sort: nil)
326
+ params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
327
+ Client.instance.get("betaFeedbacks", params)
328
+ end
320
329
  end
321
330
  end
322
331
  end
@@ -784,11 +784,8 @@ module Spaceship
784
784
  end
785
785
 
786
786
  def available_languages
787
- r = request(:get, "ra/apps/storePreview/regionCountryLanguage")
788
- response = parse_response(r, 'data')
789
- response.flat_map { |region| region["storeFronts"] }
790
- .flat_map { |storefront| storefront["supportedLocaleCodes"] }
791
- .uniq
787
+ r = request(:get, "ra/ref")
788
+ parse_response(r, 'data')['detailLocales']
792
789
  end
793
790
 
794
791
  #####################################################
@@ -345,6 +345,7 @@ module Supply
345
345
  ensure_active_edit!
346
346
 
347
347
  all_tracks = call_google_api { client.list_edit_tracks(current_package_name, current_edit.id) }.tracks
348
+ all_tracks = [] unless all_tracks
348
349
 
349
350
  if tracknames.length > 0
350
351
  all_tracks = all_tracks.select { |track| tracknames.include?(track.track) }
@@ -24,6 +24,7 @@ module Supply
24
24
  env_name: "SUPPLY_VERSION_CODE",
25
25
  short_option: "-C",
26
26
  optional: true,
27
+ type: Integer,
27
28
  description: "Version code (used when updating rollout or promoting specific versions)",
28
29
  default_value: CredentialsManager::AppfileConfig.try_fetch_value(:version_code),
29
30
  default_value_dynamic: true),
@@ -42,7 +43,10 @@ module Supply
42
43
  env_name: "SUPPLY_TRACK",
43
44
  description: "The track of the application to use. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}",
44
45
  default_value: Supply::Tracks::DEFAULT,
45
- type: String),
46
+ type: String,
47
+ verify_block: proc do |value|
48
+ UI.user_error!("'rollout' is no longer a valid track name - please use 'production' instead") if value.casecmp('rollout').zero?
49
+ end),
46
50
  FastlaneCore::ConfigItem.new(key: :rollout,
47
51
  short_option: "-r",
48
52
  description: "The percentage of the user fraction when uploading to the rollout track",
@@ -207,7 +211,10 @@ module Supply
207
211
  FastlaneCore::ConfigItem.new(key: :track_promote_to,
208
212
  env_name: "SUPPLY_TRACK_PROMOTE_TO",
209
213
  optional: true,
210
- description: "The track to promote to. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}"),
214
+ description: "The track to promote to. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}",
215
+ verify_block: proc do |value|
216
+ UI.user_error!("'rollout' is no longer a valid track name - please use 'production' instead") if value.casecmp('rollout').zero?
217
+ end),
211
218
  FastlaneCore::ConfigItem.new(key: :validate_only,
212
219
  env_name: "SUPPLY_VALIDATE_ONLY",
213
220
  optional: true,
@@ -1,4 +1,5 @@
1
1
  module Supply
2
+ # rubocop:disable Metrics/ClassLength
2
3
  class Uploader
3
4
  def perform_upload
4
5
  FastlaneCore::PrintTable.print_values(config: Supply.config, hide_keys: [:issuer], mask_keys: [:json_key_data], title: "Summary for supply #{Fastlane::VERSION}")
@@ -14,40 +15,47 @@ module Supply
14
15
 
15
16
  apk_version_codes.concat(Supply.config[:version_codes_to_retain]) if Supply.config[:version_codes_to_retain]
16
17
 
17
- # Only update tracks if we have version codes
18
- # Updating a track with empty version codes can completely clear out a track
19
- update_track(apk_version_codes) unless apk_version_codes.empty?
20
-
21
- if !Supply.config[:rollout].nil? && Supply.config[:track].to_s != ""
22
- update_rollout
18
+ if !apk_version_codes.empty?
19
+ # Only update tracks if we have version codes
20
+ # update_track handle setting rollout if needed
21
+ # Updating a track with empty version codes can completely clear out a track
22
+ update_track(apk_version_codes)
23
+ else
24
+ # Only promote or rollout if we don't have version codes
25
+ if Supply.config[:track_promote_to]
26
+ promote_track
27
+ elsif !Supply.config[:rollout].nil? && Supply.config[:track].to_s != ""
28
+ update_rollout
29
+ end
23
30
  end
24
31
 
25
- promote_track if Supply.config[:track_promote_to]
32
+ perform_upload_meta(apk_version_codes)
26
33
 
27
34
  if Supply.config[:validate_only]
28
- UI.message("Validating all track and release changes with Google Play...")
35
+ UI.message("Validating all changes with Google Play...")
29
36
  client.validate_current_edit!
30
37
  UI.success("Successfully validated the upload to Google Play")
31
38
  else
32
- UI.message("Uploading all track and release changes to Google Play...")
39
+ UI.message("Uploading all changes to Google Play...")
33
40
  client.commit_current_edit!
34
41
  UI.success("Successfully finished the upload to Google Play")
35
42
  end
36
-
37
- perform_upload_meta(apk_version_codes)
38
43
  end
39
44
 
40
45
  def perform_upload_meta(version_codes)
41
- client.begin_edit(package_name: Supply.config[:package_name])
42
-
43
46
  if (!Supply.config[:skip_upload_metadata] || !Supply.config[:skip_upload_images] || !Supply.config[:skip_upload_changelogs] || !Supply.config[:skip_upload_screenshots]) && metadata_path
47
+ # Use version code from config if version codes is empty and no nil or empty string
44
48
  version_codes = [Supply.config[:version_code]] if version_codes.empty?
49
+ version_codes = version_codes.reject do |version_code|
50
+ version_codes.to_s == ""
51
+ end
52
+
45
53
  version_codes.each do |version_code|
46
54
  UI.user_error!("Could not find folder #{metadata_path}") unless File.directory?(metadata_path)
47
55
 
48
56
  track, release = fetch_track_and_release!(Supply.config[:track], version_code)
49
57
  UI.user_error!("Unable to find the requested track - '#{Supply.config[:track]}'") unless track
50
- UI.user_error!("Coult not find release for version code '#{version_code}' to update changelog") unless release
58
+ UI.user_error!("Could not find release for version code '#{version_code}' to update changelog") unless release
51
59
 
52
60
  release_notes = []
53
61
  all_languages.each do |language|
@@ -59,22 +67,12 @@ module Supply
59
67
  upload_metadata(language, listing) unless Supply.config[:skip_upload_metadata]
60
68
  upload_images(language) unless Supply.config[:skip_upload_images]
61
69
  upload_screenshots(language) unless Supply.config[:skip_upload_screenshots]
62
- release_notes << upload_changelog(language, release.name) unless Supply.config[:skip_upload_changelogs]
70
+ release_notes << upload_changelog(language, version_code) unless Supply.config[:skip_upload_changelogs]
63
71
  end
64
72
 
65
73
  upload_changelogs(release_notes, release, track) unless release_notes.empty?
66
74
  end
67
75
  end
68
-
69
- if Supply.config[:validate_only]
70
- UI.message("Validating all meta changes with Google Play...")
71
- client.validate_current_edit!
72
- UI.success("Successfully validated the upload to Google Play")
73
- else
74
- UI.message("Uploading all meta changes to Google Play...")
75
- client.commit_current_edit!
76
- UI.success("Successfully finished the upload to Google Play")
77
- end
78
76
  end
79
77
 
80
78
  def fetch_track_and_release!(track, version_code, status = nil)
@@ -83,23 +81,25 @@ module Supply
83
81
 
84
82
  track = tracks.first
85
83
  releases = track.releases
84
+
86
85
  releases = releases.select { |r| r.status == status } if status
86
+ releases = releases.select { |r| r.version_codes.map(&:to_s).include?(version_code.to_s) } if version_code
87
87
 
88
88
  if releases.size > 1
89
89
  UI.user_error!("More than one release found in this track. Please specify with the :version_code option to select a release.")
90
90
  end
91
91
 
92
- release = releases.first { |r| r.version_codes.include?(version_code) }
93
-
94
- return track, release
92
+ return track, releases.first
95
93
  end
96
94
 
97
95
  def update_rollout
98
96
  track, release = fetch_track_and_release!(Supply.config[:track], Supply.config[:version_code], Supply::ReleaseStatus::IN_PROGRESS)
97
+ UI.user_error!("Unable to find the requested track - '#{Supply.config[:track]}'") unless track
98
+ UI.user_error!("Unable to find the requested release on track - '#{Supply.config[:track]}'") unless release
99
+
99
100
  version_code = release.version_codes.first
100
101
 
101
102
  UI.message("Updating #{version_code}'s rollout to '#{Supply.config[:rollout]}' on track '#{Supply.config[:track]}'...")
102
- UI.user_error!("Unable to find the requested track - '#{Supply.config[:track]}'") unless track
103
103
 
104
104
  if track && release
105
105
  completed = Supply.config[:rollout].to_f == 1
@@ -107,7 +107,7 @@ module Supply
107
107
  release.status = Supply::ReleaseStatus::COMPLETED if completed
108
108
 
109
109
  # Deleted other version codes if completed because only allowed on completed version in a release
110
- track.releases.delete_if { |r| !(r.version_codes || []).include?(version_code) } if completed
110
+ track.releases.delete_if { |r| !(r.version_codes || []).map(&:to_s).include?(version_code) } if completed
111
111
  else
112
112
  UI.user_error!("Unable to find version to rollout in track '#{Supply.config[:track]}'")
113
113
  end
@@ -129,7 +129,7 @@ module Supply
129
129
  UI.user_error!("Cannot provide both apk(s) and aab - use `skip_upload_apk`, `skip_upload_aab`, or make sure to remove any existing .apk or .aab files that are no longer needed")
130
130
  end
131
131
 
132
- if Supply.config[:release_status] == 'draft' && Supply.config[:rollout]
132
+ if Supply.config[:release_status] == Supply::ReleaseStatus::DRAFT && Supply.config[:rollout]
133
133
  UI.user_error!(%(Cannot specify rollout percentage when the release status is set to 'draft'))
134
134
  end
135
135
 
@@ -147,7 +147,11 @@ module Supply
147
147
  releases = track_from.releases
148
148
  if Supply.config[:version_code].to_s != ""
149
149
  releases = releases.select do |release|
150
- release.version_codes.include?(Supply.config[:version_code])
150
+ release.version_codes.include?(Supply.config[:version_code].to_s)
151
+ end
152
+ else
153
+ releases = releases.select do |release|
154
+ release.status == Supply::ReleaseStatus::COMPLETED
151
155
  end
152
156
  end
153
157
 
@@ -157,9 +161,17 @@ module Supply
157
161
  UI.user_error!("Track '#{Supply.config[:track]}' has more than one release - use :version_code to filter the release to promote")
158
162
  end
159
163
 
160
- release = track_from.releases.first
164
+ release = releases.first
161
165
  track_to = client.tracks(Supply.config[:track_promote_to]).first
162
166
 
167
+ if Supply.config[:rollout]
168
+ release.status = Supply::ReleaseStatus::IN_PROGRESS
169
+ release.user_fraction = Supply.config[:rollout]
170
+ else
171
+ release.status = Supply::ReleaseStatus::COMPLETED
172
+ release.user_fraction = nil
173
+ end
174
+
163
175
  if track_to
164
176
  # Its okay to set releases to an array containing the newest release
165
177
  # Google Play will keep previous releases there this release is a partial rollout
@@ -174,14 +186,22 @@ module Supply
174
186
  client.update_track(Supply.config[:track_promote_to], track_to)
175
187
  end
176
188
 
177
- def upload_changelog(language, version_name)
178
- UI.user_error!("Cannot find changelog because no version name given - please specify :version_name") unless version_name
189
+ def upload_changelog(language, version_code)
190
+ UI.user_error!("Cannot find changelog because no version code given - please specify :version_code") unless version_code
179
191
 
180
- path = File.join(Supply.config[:metadata_path], language, Supply::CHANGELOGS_FOLDER_NAME, "#{version_name}.txt")
192
+ path = File.join(Supply.config[:metadata_path], language, Supply::CHANGELOGS_FOLDER_NAME, "#{version_code}.txt")
181
193
  changelog_text = ''
182
194
  if File.exist?(path)
183
- UI.message("Updating changelog for '#{version_name}' and language '#{language}'...")
195
+ UI.message("Updating changelog for '#{version_code}' and language '#{language}'...")
184
196
  changelog_text = File.read(path, encoding: 'UTF-8')
197
+ else
198
+ default_changelog_path = File.join(Supply.config[:metadata_path], language, Supply::CHANGELOGS_FOLDER_NAME, "default.txt")
199
+ if File.exist?(default_changelog_path)
200
+ UI.message("Updating changelog for '#{version_code}' and language '#{language}' to default changelog...")
201
+ changelog_text = File.read(default_changelog_path, encoding: 'UTF-8')
202
+ else
203
+ UI.message("Could not find changelog for '#{version_code}' and language '#{language}' at path #{path}...")
204
+ end
185
205
  end
186
206
 
187
207
  AndroidPublisher::LocalizedText.new({
@@ -336,8 +356,11 @@ module Supply
336
356
  )
337
357
 
338
358
  if Supply.config[:rollout]
339
- track_release.status = Supply::ReleaseStatus::IN_PROGRESS
340
- track_release.user_fraction = Supply.config[:rollout].to_f
359
+ rollout = Supply.config[:rollout].to_f
360
+ if rollout > 0 && rollout < 1
361
+ track_release.status = Supply::ReleaseStatus::IN_PROGRESS
362
+ track_release.user_fraction = rollout
363
+ end
341
364
  end
342
365
 
343
366
  tracks = client.tracks(Supply.config[:track])
@@ -421,4 +444,5 @@ module Supply
421
444
  end
422
445
  end
423
446
  end
447
+ # rubocop:enable Metrics/ClassLength
424
448
  end
metadata CHANGED
@@ -1,33 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.135.0
4
+ version: 2.138.0
5
5
  platform: ruby
6
6
  authors:
7
- - Aaron Brager
8
- - Matthew Ellis
9
- - Josh Holtz
10
- - Stefan Natchev
11
7
  - Jorge Revuelta H
12
- - Helmut Januschka
13
- - Fumiya Nakamura
14
- - Manu Wallner
15
- - Iulian Onofrei
16
- - Felix Krause
17
8
  - Joshua Liebowitz
18
- - Olivier Halligon
9
+ - Josh Holtz
19
10
  - Danielle Tomlinson
20
- - Maksym Grebenets
21
- - Jérôme Lacoste
22
- - Jimmy Dee
23
- - Andrew McBurney
24
11
  - Kohki Miki
25
12
  - Luka Mirosevic
13
+ - Iulian Onofrei
14
+ - Stefan Natchev
15
+ - Maksym Grebenets
16
+ - Manu Wallner
17
+ - Aaron Brager
18
+ - Matthew Ellis
19
+ - Felix Krause
26
20
  - Jan Piotrowski
21
+ - Jérôme Lacoste
22
+ - Helmut Januschka
23
+ - Fumiya Nakamura
24
+ - Andrew McBurney
25
+ - Olivier Halligon
26
+ - Jimmy Dee
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2019-11-11 00:00:00.000000000 Z
30
+ date: 2019-12-19 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: slack-notifier
@@ -55,7 +55,7 @@ dependencies:
55
55
  requirements:
56
56
  - - ">="
57
57
  - !ruby/object:Gem::Version
58
- version: 1.8.1
58
+ version: 1.13.0
59
59
  - - "<"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 2.0.0
@@ -65,7 +65,7 @@ dependencies:
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 1.8.1
68
+ version: 1.13.0
69
69
  - - "<"
70
70
  - !ruby/object:Gem::Version
71
71
  version: 2.0.0
@@ -325,7 +325,7 @@ dependencies:
325
325
  requirements:
326
326
  - - ">="
327
327
  - !ruby/object:Gem::Version
328
- version: 0.45.0
328
+ version: 0.71.0
329
329
  - - "<"
330
330
  - !ruby/object:Gem::Version
331
331
  version: 1.0.0
@@ -335,7 +335,7 @@ dependencies:
335
335
  requirements:
336
336
  - - ">="
337
337
  - !ruby/object:Gem::Version
338
- version: 0.45.0
338
+ version: 0.71.0
339
339
  - - "<"
340
340
  - !ruby/object:Gem::Version
341
341
  version: 1.0.0
@@ -1420,7 +1420,6 @@ files:
1420
1420
  - gym/lib/assets/GymfileTemplate.swift
1421
1421
  - gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh
1422
1422
  - gym/lib/gym.rb
1423
- - gym/lib/gym/.module.rb.swp
1424
1423
  - gym/lib/gym/code_signing_mapping.rb
1425
1424
  - gym/lib/gym/commands_generator.rb
1426
1425
  - gym/lib/gym/detect_values.rb
@@ -1608,7 +1607,9 @@ files:
1608
1607
  - spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb
1609
1608
  - spaceship/lib/spaceship/connect_api/models/beta_build_localization.rb
1610
1609
  - spaceship/lib/spaceship/connect_api/models/beta_build_metric.rb
1610
+ - spaceship/lib/spaceship/connect_api/models/beta_feedback.rb
1611
1611
  - spaceship/lib/spaceship/connect_api/models/beta_group.rb
1612
+ - spaceship/lib/spaceship/connect_api/models/beta_screenshot.rb
1612
1613
  - spaceship/lib/spaceship/connect_api/models/beta_tester.rb
1613
1614
  - spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb
1614
1615
  - spaceship/lib/spaceship/connect_api/models/build.rb
@@ -1732,9 +1733,6 @@ files:
1732
1733
  - spaceship/lib/spaceship/ui.rb
1733
1734
  - supply/README.md
1734
1735
  - supply/lib/supply.rb
1735
- - supply/lib/supply/.client.rb.swp
1736
- - supply/lib/supply/.options.rb.swp
1737
- - supply/lib/supply/.uploader.rb.swp
1738
1736
  - supply/lib/supply/apk_listing.rb
1739
1737
  - supply/lib/supply/client.rb
1740
1738
  - supply/lib/supply/commands_generator.rb