fastlane 2.135.0 → 2.138.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 +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