fastlane 2.236.1 → 2.238.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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +109 -102
  3. data/deliver/lib/deliver/options.rb +1 -1
  4. data/fastlane/lib/fastlane/actions/deploygate.rb +3 -2
  5. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +7 -3
  6. data/fastlane/lib/fastlane/actions/hockey.rb +3 -2
  7. data/fastlane/lib/fastlane/actions/installr.rb +3 -2
  8. data/fastlane/lib/fastlane/actions/mailgun.rb +1 -0
  9. data/fastlane/lib/fastlane/actions/notarize.rb +3 -18
  10. data/fastlane/lib/fastlane/actions/register_devices.rb +21 -5
  11. data/fastlane/lib/fastlane/actions/setup_ci.rb +7 -2
  12. data/fastlane/lib/fastlane/actions/spm.rb +6 -0
  13. data/fastlane/lib/fastlane/actions/swiftlint.rb +10 -1
  14. data/fastlane/lib/fastlane/actions/testfairy.rb +5 -3
  15. data/fastlane/lib/fastlane/actions/tryouts.rb +3 -2
  16. data/fastlane/lib/fastlane/actions/update_project_team.rb +17 -9
  17. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +33 -7
  18. data/fastlane/lib/fastlane/helper/sh_helper.rb +7 -3
  19. data/fastlane/lib/fastlane/lane_manager.rb +0 -1
  20. data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +0 -7
  21. data/fastlane/lib/fastlane/plugins/template/.gitignore +0 -1
  22. data/fastlane/lib/fastlane/plugins/template/.rspec +0 -2
  23. data/fastlane/lib/fastlane/plugins/template/Gemfile.erb +0 -2
  24. data/fastlane/lib/fastlane/version.rb +1 -1
  25. data/fastlane/swift/Deliverfile.swift +1 -1
  26. data/fastlane/swift/DeliverfileProtocol.swift +2 -2
  27. data/fastlane/swift/Fastlane.swift +50 -20
  28. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +1 -1
  29. data/fastlane/swift/Gymfile.swift +1 -1
  30. data/fastlane/swift/GymfileProtocol.swift +1 -1
  31. data/fastlane/swift/Matchfile.swift +1 -1
  32. data/fastlane/swift/MatchfileProtocol.swift +8 -1
  33. data/fastlane/swift/Precheckfile.swift +1 -1
  34. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  35. data/fastlane/swift/Scanfile.swift +1 -1
  36. data/fastlane/swift/ScanfileProtocol.swift +8 -1
  37. data/fastlane/swift/Screengrabfile.swift +1 -1
  38. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  39. data/fastlane/swift/Snapshotfile.swift +1 -1
  40. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  41. data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +31 -5
  42. data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +24 -12
  43. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +22 -12
  44. data/fastlane_core/lib/fastlane_core/cert_checker.rb +22 -9
  45. data/fastlane_core/lib/fastlane_core/helper.rb +4 -3
  46. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +6 -2
  47. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +3 -1
  48. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -1
  49. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +1 -1
  50. data/fastlane_core/lib/fastlane_core/print_table.rb +0 -16
  51. data/fastlane_core/lib/fastlane_core/project.rb +3 -1
  52. data/fastlane_core/lib/fastlane_core/queue_worker.rb +10 -1
  53. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_shell_error.rb +6 -0
  54. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +1 -1
  55. data/fastlane_core/lib/fastlane_core/video_utils.rb +4 -2
  56. data/gym/lib/gym/error_handler.rb +11 -1
  57. data/gym/lib/gym/generators/build_command_generator.rb +2 -0
  58. data/gym/lib/gym/module.rb +20 -2
  59. data/match/lib/match/options.rb +8 -0
  60. data/match/lib/match/runner.rb +4 -2
  61. data/match/lib/match/storage/git_storage.rb +18 -2
  62. data/pilot/lib/pilot/build_manager.rb +2 -2
  63. data/pilot/lib/pilot/options.rb +2 -2
  64. data/pilot/lib/pilot/tester_manager.rb +2 -2
  65. data/precheck/lib/precheck/rules/copyright_date_rule.rb +16 -10
  66. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +2 -2
  67. data/scan/lib/scan/options.rb +5 -0
  68. data/scan/lib/scan/runner.rb +1 -0
  69. data/scan/lib/scan/test_command_generator.rb +2 -0
  70. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +4 -1
  71. data/spaceship/lib/spaceship/client.rb +0 -1
  72. data/spaceship/lib/spaceship/connect_api/file_uploader.rb +1 -1
  73. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +6 -0
  74. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +5 -0
  75. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +7 -2
  76. data/spaceship/lib/spaceship/helper/plist_middleware.rb +37 -8
  77. data/supply/lib/supply/uploader.rb +7 -1
  78. data/trainer/lib/trainer/xcresult/test_case.rb +21 -2
  79. data/trainer/lib/trainer/xcresult/test_plan.rb +3 -3
  80. data/trainer/lib/trainer/xcresult/test_suite.rb +28 -19
  81. metadata +74 -32
@@ -177,6 +177,8 @@ module Scan
177
177
  end
178
178
 
179
179
  def pipe_xcpretty
180
+ UI.important("Using xcpretty can result in missing some build errors and is slower than the preferred xcbeautify. See https://docs.fastlane.tools/best-practices/xcodebuild-formatters/ for more information.")
181
+
180
182
  formatter = []
181
183
  if (custom_formatter = Scan.config[:xcpretty_formatter] || Scan.config[:formatter])
182
184
  if custom_formatter.end_with?(".rb")
@@ -81,7 +81,10 @@ module Snapshot
81
81
 
82
82
  unless launcher_config.headless
83
83
  simulator_path = File.join(Helper.xcode_path, 'Applications', 'Simulator.app')
84
- Helper.backticks("open -a #{simulator_path} -g", print: FastlaneCore::Globals.verbose?)
84
+ device_udid = TestCommandGenerator.device_udid(device_types.first)
85
+ command = "open -a #{simulator_path} -g"
86
+ command += " --args -CurrentDeviceUDID #{device_udid}" if device_udid
87
+ Helper.backticks(command, print: FastlaneCore::Globals.verbose?)
85
88
  end
86
89
  end
87
90
 
@@ -1,7 +1,6 @@
1
1
  require 'babosa'
2
2
  require 'faraday' # HTTP Client
3
3
  require 'faraday-cookie_jar'
4
- require 'faraday_middleware'
5
4
  require 'logger'
6
5
  require 'tmpdir'
7
6
  require 'cgi'
@@ -1,8 +1,8 @@
1
1
  require 'faraday' # HTTP Client
2
2
  require 'faraday-cookie_jar'
3
- require 'faraday_middleware'
4
3
 
5
4
  require 'spaceship/globals'
5
+ require_relative '../helper/plist_middleware'
6
6
 
7
7
  require 'openssl'
8
8
 
@@ -27,6 +27,8 @@ module Spaceship
27
27
  attr_accessor :loot_box
28
28
  attr_accessor :messaging_and_chat
29
29
  attr_accessor :parental_controls
30
+ attr_accessor :social_media
31
+ attr_accessor :social_media_age_restricted
30
32
  attr_accessor :unrestricted_web_access
31
33
  attr_accessor :user_generated_content
32
34
 
@@ -96,6 +98,8 @@ module Spaceship
96
98
  "profanityOrCrudeHumor" => "profanity_or_crude_humor",
97
99
  "sexualContentGraphicAndNudity" => "sexual_content_graphic_and_nudity",
98
100
  "sexualContentOrNudity" => "sexual_content_or_nudity",
101
+ "socialMedia" => "social_media",
102
+ "socialMediaAgeRestricted" => "social_media_age_restricted",
99
103
  "unrestrictedWebAccess" => "unrestricted_web_access",
100
104
  "userGeneratedContent" => "user_generated_content",
101
105
  "violenceCartoonOrFantasy" => "violence_cartoon_or_fantasy",
@@ -174,6 +178,8 @@ module Spaceship
174
178
  "lootBox",
175
179
  "messagingAndChat",
176
180
  "parentalControls",
181
+ "socialMedia",
182
+ "socialMediaAgeRestricted",
177
183
  "unrestrictedWebAccess",
178
184
  "userGeneratedContent"
179
185
  ]
@@ -32,6 +32,11 @@ module Spaceship
32
32
  return "betaGroups"
33
33
  end
34
34
 
35
+ # Whether this group is referenced by any of the given identifiers (its name or id)
36
+ def matches_identifiers?(identifiers)
37
+ identifiers.include?(name) || identifiers.include?(id)
38
+ end
39
+
35
40
  #
36
41
  # API
37
42
  #
@@ -717,9 +717,9 @@ module Spaceship
717
717
  type: "appInfoLocalizations",
718
718
  attributes: attributes,
719
719
  relationships: {
720
- appStoreVersion: {
720
+ appInfo: {
721
721
  data: {
722
- type: "appStoreVersions",
722
+ type: "appInfos",
723
723
  id: app_info_id
724
724
  }
725
725
  }
@@ -742,6 +742,11 @@ module Spaceship
742
742
  tunes_request_client.patch("#{Version::V1}/appInfoLocalizations/#{app_info_localization_id}", body)
743
743
  end
744
744
 
745
+ def delete_app_info_localization(app_info_localization_id: nil)
746
+ params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
747
+ tunes_request_client.delete("#{Version::V1}/appInfoLocalizations/#{app_info_localization_id}", params)
748
+ end
749
+
745
750
  #
746
751
  # appStoreReviewDetails
747
752
  #
@@ -1,16 +1,45 @@
1
- require 'faraday_middleware/response_middleware'
1
+ require 'faraday'
2
2
 
3
- module FaradayMiddleware
4
- class PlistMiddleware < ResponseMiddleware
5
- dependency do
3
+ module Spaceship
4
+ class PlistMiddleware < Faraday::Middleware
5
+ def on_complete(env)
6
+ process_response(env) if parse_response?(env)
7
+ end
8
+
9
+ private
10
+
11
+ def process_response(env)
12
+ env.body = parse(env.body)
13
+ end
14
+
15
+ def parse(body)
6
16
  require 'plist' unless Object.const_defined?("Plist")
17
+ Plist.parse_xml(body.force_encoding("UTF-8"))
18
+ rescue StandardError, SyntaxError => e
19
+ raise Faraday::ParsingError.new(e, env)
20
+ end
21
+
22
+ def parse_response?(env)
23
+ env.body.kind_of?(String) && process_response_type?(env) && env.parse_body?
24
+ end
25
+
26
+ def process_response_type?(env)
27
+ type = response_type(env)
28
+ content_types.empty? || content_types.any? do |pattern|
29
+ pattern.kind_of?(Regexp) ? type.match?(pattern) : type == pattern
30
+ end
31
+ end
32
+
33
+ def response_type(env)
34
+ type = env.response_headers['Content-Type'].to_s
35
+ type = type.split(';', 2).first if type.index(';')
36
+ type
7
37
  end
8
38
 
9
- define_parser do |body|
10
- body = body.force_encoding("UTF-8")
11
- Plist.parse_xml(body)
39
+ def content_types
40
+ @content_types ||= Array(options[:content_type])
12
41
  end
13
42
  end
14
43
  end
15
44
 
16
- Faraday::Response.register_middleware(plist: FaradayMiddleware::PlistMiddleware)
45
+ Faraday::Response.register_middleware(plist: Spaceship::PlistMiddleware)
@@ -19,9 +19,15 @@ module Supply
19
19
 
20
20
  track_to_update = Supply.config[:track]
21
21
 
22
+ # Capture whether any new binaries were actually uploaded before appending
23
+ # version_codes_to_retain. The branch below uses this flag so that retained
24
+ # codes do not cause a promote-only run to take the upload path.
25
+ # See: https://github.com/fastlane/fastlane/issues/29984
26
+ uploading_new_binaries = !apk_version_codes.empty?
27
+
22
28
  apk_version_codes.concat(Supply.config[:version_codes_to_retain]) if Supply.config[:version_codes_to_retain]
23
29
 
24
- if !apk_version_codes.empty?
30
+ if uploading_new_binaries
25
31
  # Only update tracks if we have version codes
26
32
  # update_track handle setting rollout if needed
27
33
  # Updating a track with empty version codes can completely clear out a track
@@ -115,11 +115,30 @@ module Trainer
115
115
  @retries&.count || 0
116
116
  end
117
117
 
118
- def total_tests_count
118
+ # Result of the final attempt (last repetition), or the overall result when there are no retries.
119
+ # When retry attempts are removed, counts should reflect this final outcome rather than the
120
+ # aggregate `@result`, which xcresulttool reports as `Failed` even if the test was skipped on retry.
121
+ def final_result
122
+ @retries && !@retries.empty? ? @retries.last.result : @result
123
+ end
124
+
125
+ def final_failed?
126
+ final_result == 'Failed'
127
+ end
128
+
129
+ def final_skipped?
130
+ final_result == 'Skipped'
131
+ end
132
+
133
+ def total_tests_count(output_remove_retry_attempts: false)
134
+ return 1 if output_remove_retry_attempts
135
+
119
136
  retries_count > 0 ? retries_count : 1
120
137
  end
121
138
 
122
- def total_failures_count
139
+ def total_failures_count(output_remove_retry_attempts: false)
140
+ return final_failed? ? 1 : 0 if output_remove_retry_attempts
141
+
123
142
  if retries_count > 0
124
143
  @retries.count(&:failed?)
125
144
  elsif failed?
@@ -40,7 +40,7 @@ module Trainer
40
40
  # Allows iteration over test suites. Used by TestParser to collect test results
41
41
  include Enumerable
42
42
  def each(&block)
43
- test_suites.map(&:to_hash).each(&block)
43
+ test_suites.map { |suite| suite.to_hash(output_remove_retry_attempts: output_remove_retry_attempts) }.each(&block)
44
44
  end
45
45
 
46
46
  # Generates a JUnit-compatible XML representation of the test plan
@@ -49,8 +49,8 @@ module Trainer
49
49
  # Create the root testsuites element with calculated summary attributes
50
50
  testsuites = Helper.create_xml_element('testsuites',
51
51
  tests: test_suites.sum(&:test_cases_count).to_s,
52
- failures: test_suites.sum(&:failures_count).to_s,
53
- skipped: test_suites.sum(&:skipped_count).to_s,
52
+ failures: test_suites.sum { |suite| suite.failures_count(output_remove_retry_attempts: output_remove_retry_attempts) }.to_s,
53
+ skipped: test_suites.sum { |suite| suite.skipped_count(output_remove_retry_attempts: output_remove_retry_attempts) }.to_s,
54
54
  time: test_suites.sum(&:duration).to_s)
55
55
 
56
56
  # Create <properties> node for configuration and device, to be applied to each suite node
@@ -58,38 +58,47 @@ module Trainer
58
58
  @test_cases_count ||= @test_cases.count + @sub_suites.sum(&:test_cases_count)
59
59
  end
60
60
 
61
- def failures_count
62
- @failures_count ||= @test_cases.count(&:failed?) + @sub_suites.sum(&:failures_count)
61
+ # When output_remove_retry_attempts is true, counts reflect each test case's final attempt
62
+ # only (matching the trimmed JUnit output), so a test that failed then was skipped on retry
63
+ # is no longer counted as a failure.
64
+ def failures_count(output_remove_retry_attempts: false)
65
+ predicate = output_remove_retry_attempts ? :final_failed? : :failed?
66
+ @test_cases.count(&predicate) +
67
+ @sub_suites.sum { |suite| suite.failures_count(output_remove_retry_attempts: output_remove_retry_attempts) }
63
68
  end
64
69
 
65
- def skipped_count
66
- @skipped_count ||= @test_cases.count(&:skipped?) + @sub_suites.sum(&:skipped_count)
70
+ def skipped_count(output_remove_retry_attempts: false)
71
+ predicate = output_remove_retry_attempts ? :final_skipped? : :skipped?
72
+ @test_cases.count(&predicate) +
73
+ @sub_suites.sum { |suite| suite.skipped_count(output_remove_retry_attempts: output_remove_retry_attempts) }
67
74
  end
68
75
 
69
- def total_tests_count
70
- @test_cases.sum(&:total_tests_count) +
71
- @sub_suites.sum(&:total_tests_count)
76
+ def total_tests_count(output_remove_retry_attempts: false)
77
+ @test_cases.sum { |test_case| test_case.total_tests_count(output_remove_retry_attempts: output_remove_retry_attempts) } +
78
+ @sub_suites.sum { |suite| suite.total_tests_count(output_remove_retry_attempts: output_remove_retry_attempts) }
72
79
  end
73
80
 
74
- def total_failures_count
75
- @test_cases.sum(&:total_failures_count) +
76
- @sub_suites.sum(&:total_failures_count)
81
+ def total_failures_count(output_remove_retry_attempts: false)
82
+ @test_cases.sum { |test_case| test_case.total_failures_count(output_remove_retry_attempts: output_remove_retry_attempts) } +
83
+ @sub_suites.sum { |suite| suite.total_failures_count(output_remove_retry_attempts: output_remove_retry_attempts) }
77
84
  end
78
85
 
79
- def total_retries_count
86
+ def total_retries_count(output_remove_retry_attempts: false)
87
+ return 0 if output_remove_retry_attempts
88
+
80
89
  @test_cases.sum(&:retries_count) +
81
90
  @sub_suites.sum(&:total_retries_count)
82
91
  end
83
92
 
84
93
  # Hash representation used by TestParser to collect test results
85
- def to_hash
94
+ def to_hash(output_remove_retry_attempts: false)
86
95
  {
87
- number_of_tests: total_tests_count,
88
- number_of_failures: total_failures_count,
96
+ number_of_tests: total_tests_count(output_remove_retry_attempts: output_remove_retry_attempts),
97
+ number_of_failures: total_failures_count(output_remove_retry_attempts: output_remove_retry_attempts),
89
98
  number_of_tests_excluding_retries: test_cases_count,
90
- number_of_failures_excluding_retries: failures_count,
91
- number_of_retries: total_retries_count,
92
- number_of_skipped: skipped_count
99
+ number_of_failures_excluding_retries: failures_count(output_remove_retry_attempts: output_remove_retry_attempts),
100
+ number_of_retries: total_retries_count(output_remove_retry_attempts: output_remove_retry_attempts),
101
+ number_of_skipped: skipped_count(output_remove_retry_attempts: output_remove_retry_attempts)
93
102
  }
94
103
  end
95
104
 
@@ -100,8 +109,8 @@ module Trainer
100
109
  name: @name,
101
110
  time: duration.to_s,
102
111
  tests: test_cases_count.to_s,
103
- failures: failures_count.to_s,
104
- skipped: skipped_count.to_s)
112
+ failures: failures_count(output_remove_retry_attempts: output_remove_retry_attempts).to_s,
113
+ skipped: skipped_count(output_remove_retry_attempts: output_remove_retry_attempts).to_s)
105
114
 
106
115
  # Add test cases
107
116
  @test_cases.each do |test_case|
metadata CHANGED
@@ -1,40 +1,40 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.236.1
4
+ version: 2.238.0
5
5
  platform: ruby
6
6
  authors:
7
- - Manish Rathi
8
- - Max Ott
9
- - Jan Piotrowski
10
- - Matthew Ellis
11
- - Maksym Grebenets
12
- - Felix Krause
13
- - Jimmy Dee
14
7
  - Łukasz Grabowski
15
- - Helmut Januschka
16
8
  - Jérôme Lacoste
9
+ - Felix Krause
10
+ - Joshua Liebowitz
11
+ - Roger Oba
12
+ - Olivier Halligon
13
+ - Helmut Januschka
17
14
  - Connor Tumbleson
18
- - Luka Mirosevic
15
+ - Josh Holtz
16
+ - Max Ott
19
17
  - Satoshi Namai
20
- - Roger Oba
21
18
  - Jorge Revuelta H
22
- - Andrew McBurney
23
- - Joshua Liebowitz
24
- - Daniel Jankowski
19
+ - Aaron Brager
20
+ - Luka Mirosevic
21
+ - Kohki Miki
25
22
  - Stefan Natchev
23
+ - Andrew McBurney
26
24
  - Fumiya Nakamura
27
- - Olivier Halligon
28
- - Danielle Tomlinson
29
25
  - Iulian Onofrei
26
+ - Danielle Tomlinson
30
27
  - Manu Wallner
31
- - Aaron Brager
32
- - Kohki Miki
33
- - Josh Holtz
28
+ - Daniel Jankowski
29
+ - Jan Piotrowski
30
+ - Matthew Ellis
31
+ - Jimmy Dee
32
+ - Maksym Grebenets
33
+ - Manish Rathi
34
34
  autorequire:
35
35
  bindir: bin
36
36
  cert_chain: []
37
- date: 2026-06-11 00:00:00.000000000 Z
37
+ date: 2026-08-12 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: addressable
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: '2.8'
45
+ version: 2.9.0
46
46
  - - "<"
47
47
  - !ruby/object:Gem::Version
48
48
  version: 3.0.0
@@ -52,7 +52,7 @@ dependencies:
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: '2.8'
55
+ version: 2.9.0
56
56
  - - "<"
57
57
  - !ruby/object:Gem::Version
58
58
  version: 3.0.0
@@ -221,7 +221,7 @@ dependencies:
221
221
  version: 0.71.0
222
222
  - - "<"
223
223
  - !ruby/object:Gem::Version
224
- version: 1.0.0
224
+ version: 2.0.0
225
225
  type: :runtime
226
226
  prerelease: false
227
227
  version_requirements: !ruby/object:Gem::Requirement
@@ -231,37 +231,51 @@ dependencies:
231
231
  version: 0.71.0
232
232
  - - "<"
233
233
  - !ruby/object:Gem::Version
234
- version: 1.0.0
234
+ version: 2.0.0
235
235
  - !ruby/object:Gem::Dependency
236
- name: faraday_middleware
236
+ name: faraday
237
237
  requirement: !ruby/object:Gem::Requirement
238
238
  requirements:
239
239
  - - "~>"
240
240
  - !ruby/object:Gem::Version
241
- version: '1.0'
241
+ version: '2.7'
242
242
  type: :runtime
243
243
  prerelease: false
244
244
  version_requirements: !ruby/object:Gem::Requirement
245
245
  requirements:
246
246
  - - "~>"
247
247
  - !ruby/object:Gem::Version
248
- version: '1.0'
248
+ version: '2.7'
249
249
  - !ruby/object:Gem::Dependency
250
250
  name: faraday-cookie_jar
251
251
  requirement: !ruby/object:Gem::Requirement
252
252
  requirements:
253
253
  - - "~>"
254
254
  - !ruby/object:Gem::Version
255
- version: 0.0.6
255
+ version: 0.0.8
256
256
  type: :runtime
257
257
  prerelease: false
258
258
  version_requirements: !ruby/object:Gem::Requirement
259
259
  requirements:
260
260
  - - "~>"
261
261
  - !ruby/object:Gem::Version
262
- version: 0.0.6
262
+ version: 0.0.8
263
263
  - !ruby/object:Gem::Dependency
264
- name: faraday
264
+ name: faraday-follow_redirects
265
+ requirement: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - "~>"
268
+ - !ruby/object:Gem::Version
269
+ version: '0.3'
270
+ type: :runtime
271
+ prerelease: false
272
+ version_requirements: !ruby/object:Gem::Requirement
273
+ requirements:
274
+ - - "~>"
275
+ - !ruby/object:Gem::Version
276
+ version: '0.3'
277
+ - !ruby/object:Gem::Dependency
278
+ name: faraday-multipart
265
279
  requirement: !ruby/object:Gem::Requirement
266
280
  requirements:
267
281
  - - "~>"
@@ -274,6 +288,20 @@ dependencies:
274
288
  - - "~>"
275
289
  - !ruby/object:Gem::Version
276
290
  version: '1.0'
291
+ - !ruby/object:Gem::Dependency
292
+ name: faraday-retry
293
+ requirement: !ruby/object:Gem::Requirement
294
+ requirements:
295
+ - - "~>"
296
+ - !ruby/object:Gem::Version
297
+ version: '2.0'
298
+ type: :runtime
299
+ prerelease: false
300
+ version_requirements: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - "~>"
303
+ - !ruby/object:Gem::Version
304
+ version: '2.0'
277
305
  - !ruby/object:Gem::Dependency
278
306
  name: fastimage
279
307
  requirement: !ruby/object:Gem::Requirement
@@ -634,14 +662,14 @@ dependencies:
634
662
  requirements:
635
663
  - - "~>"
636
664
  - !ruby/object:Gem::Version
637
- version: '3'
665
+ version: '4'
638
666
  type: :runtime
639
667
  prerelease: false
640
668
  version_requirements: !ruby/object:Gem::Requirement
641
669
  requirements:
642
670
  - - "~>"
643
671
  - !ruby/object:Gem::Version
644
- version: '3'
672
+ version: '4'
645
673
  - !ruby/object:Gem::Dependency
646
674
  name: tty-screen
647
675
  requirement: !ruby/object:Gem::Requirement
@@ -820,6 +848,20 @@ dependencies:
820
848
  - - "~>"
821
849
  - !ruby/object:Gem::Version
822
850
  version: '0.2'
851
+ - !ruby/object:Gem::Dependency
852
+ name: irb
853
+ requirement: !ruby/object:Gem::Requirement
854
+ requirements:
855
+ - - ">="
856
+ - !ruby/object:Gem::Version
857
+ version: '1.8'
858
+ type: :runtime
859
+ prerelease: false
860
+ version_requirements: !ruby/object:Gem::Requirement
861
+ requirements:
862
+ - - ">="
863
+ - !ruby/object:Gem::Version
864
+ version: '1.8'
823
865
  - !ruby/object:Gem::Dependency
824
866
  name: logger
825
867
  requirement: !ruby/object:Gem::Requirement