fastlane 2.155.3 → 2.157.2

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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +78 -78
  3. data/deliver/lib/deliver.rb +1 -0
  4. data/deliver/lib/deliver/app_screenshot_iterator.rb +95 -0
  5. data/deliver/lib/deliver/detect_values.rb +4 -1
  6. data/deliver/lib/deliver/languages.rb +7 -0
  7. data/deliver/lib/deliver/loader.rb +4 -5
  8. data/deliver/lib/deliver/queue_worker.rb +64 -0
  9. data/deliver/lib/deliver/runner.rb +7 -5
  10. data/deliver/lib/deliver/upload_screenshots.rb +143 -128
  11. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +120 -0
  12. data/fastlane/lib/fastlane/actions/commit_version_bump.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +2 -0
  14. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +17 -1
  15. data/fastlane/lib/fastlane/actions/set_changelog.rb +2 -2
  16. data/fastlane/lib/fastlane/actions/sonar.rb +5 -0
  17. data/fastlane/lib/fastlane/actions/spaceship_stats.rb +73 -0
  18. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +4 -0
  19. data/fastlane/lib/fastlane/version.rb +1 -1
  20. data/fastlane/swift/Deliverfile.swift +1 -1
  21. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  22. data/fastlane/swift/Fastlane.swift +67 -7
  23. data/fastlane/swift/Gymfile.swift +1 -1
  24. data/fastlane/swift/GymfileProtocol.swift +1 -1
  25. data/fastlane/swift/Matchfile.swift +1 -1
  26. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  27. data/fastlane/swift/Precheckfile.swift +1 -1
  28. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  29. data/fastlane/swift/Scanfile.swift +1 -1
  30. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  31. data/fastlane/swift/Screengrabfile.swift +1 -1
  32. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  33. data/fastlane/swift/Snapshotfile.swift +1 -1
  34. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  35. data/fastlane_core/lib/fastlane_core/command_executor.rb +1 -0
  36. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +71 -42
  37. data/fastlane_core/lib/fastlane_core/project.rb +1 -0
  38. data/gym/lib/gym/error_handler.rb +1 -1
  39. data/gym/lib/gym/generators/build_command_generator.rb +0 -1
  40. data/pilot/lib/pilot/build_manager.rb +18 -4
  41. data/pilot/lib/pilot/manager.rb +16 -5
  42. data/pilot/lib/pilot/options.rb +16 -0
  43. data/produce/lib/produce/itunes_connect.rb +2 -2
  44. data/scan/lib/scan/test_command_generator.rb +3 -1
  45. data/screengrab/lib/screengrab/runner.rb +36 -17
  46. data/sigh/lib/sigh/runner.rb +4 -4
  47. data/snapshot/lib/snapshot/test_command_generator_base.rb +3 -1
  48. data/spaceship/lib/spaceship.rb +4 -0
  49. data/spaceship/lib/spaceship/client.rb +2 -0
  50. data/spaceship/lib/spaceship/connect_api.rb +0 -15
  51. data/spaceship/lib/spaceship/connect_api/api_client.rb +270 -0
  52. data/spaceship/lib/spaceship/connect_api/client.rb +144 -213
  53. data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +8 -17
  54. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +75 -64
  55. data/spaceship/lib/spaceship/connect_api/spaceship.rb +98 -0
  56. data/spaceship/lib/spaceship/connect_api/testflight/client.rb +8 -17
  57. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +288 -277
  58. data/spaceship/lib/spaceship/connect_api/token.rb +46 -5
  59. data/spaceship/lib/spaceship/connect_api/token_refresh_middleware.rb +24 -0
  60. data/spaceship/lib/spaceship/connect_api/tunes/client.rb +8 -17
  61. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +717 -706
  62. data/spaceship/lib/spaceship/connect_api/users/client.rb +8 -17
  63. data/spaceship/lib/spaceship/connect_api/users/users.rb +28 -17
  64. data/spaceship/lib/spaceship/stats_middleware.rb +65 -0
  65. metadata +26 -23
  66. data/match/lib/match/.options.rb.swp +0 -0
  67. data/match/lib/match/.runner.rb.swp +0 -0
  68. data/sigh/lib/sigh/.options.rb.swp +0 -0
  69. data/sigh/lib/sigh/.runner.rb.swp +0 -0
  70. data/spaceship/lib/spaceship/connect_api/models/.profile.rb.swp +0 -0
  71. data/spaceship/lib/spaceship/connect_api/provisioning/.provisioning.rb.swp +0 -0
@@ -1,27 +1,18 @@
1
- require_relative '../client'
1
+ require_relative '../api_client'
2
+ require_relative './users'
2
3
  require_relative '../../tunes/tunes_client'
3
4
 
4
5
  module Spaceship
5
6
  class ConnectAPI
6
7
  module Users
7
- class Client < Spaceship::ConnectAPI::Client
8
- def self.instance
9
- # Verify there is a token or a client that can be used
10
- if Spaceship::ConnectAPI.token
11
- if @client.nil? || @client.token != Spaceship::ConnectAPI.token
12
- @client = Client.new(token: Spaceship::ConnectAPI.token)
13
- end
14
- elsif Spaceship::Tunes.client
15
- # Initialize new client if new or if team changed
16
- if @client.nil? || @client.team_id != Spaceship::Tunes.client.team_id
17
- @client = Client.client_with_authorization_from(Spaceship::Tunes.client)
18
- end
19
- end
8
+ class Client < Spaceship::ConnectAPI::APIClient
9
+ def initialize(cookie: nil, current_team_id: nil, token: nil, another_client: nil)
10
+ another_client ||= Spaceship::Tunes.client if cookie.nil? && token.nil?
20
11
 
21
- # Need to handle not having a client but this shouldn't ever happen
22
- raise "Please login using `Spaceship::Tunes.login('user', 'password')`" unless @client
12
+ super(cookie: cookie, current_team_id: current_team_id, token: token, another_client: another_client)
23
13
 
24
- @client
14
+ self.extend(Spaceship::ConnectAPI::Users::API)
15
+ self.users_request_client = self
25
16
  end
26
17
 
27
18
  def self.hostname
@@ -3,26 +3,37 @@ require 'spaceship/connect_api/users/client'
3
3
  module Spaceship
4
4
  class ConnectAPI
5
5
  module Users
6
- #
7
- # users
8
- #
6
+ module API
7
+ def users_request_client=(users_request_client)
8
+ @users_request_client = users_request_client
9
+ end
9
10
 
10
- def get_users(filter: {}, includes: nil, limit: nil, sort: nil)
11
- params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
12
- Client.instance.get("users", params)
13
- end
11
+ def users_request_client
12
+ return @users_request_client if @users_request_client
13
+ raise TypeError, "You need to instantiate this module with users_request_client"
14
+ end
15
+
16
+ #
17
+ # users
18
+ #
19
+
20
+ def get_users(filter: {}, includes: nil, limit: nil, sort: nil)
21
+ params = users_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
22
+ users_request_client.get("users", params)
23
+ end
14
24
 
15
- def add_user_visible_apps(user_id: nil, app_ids: nil)
16
- body = {
17
- data: app_ids.map do |app_id|
18
- {
19
- type: "apps",
20
- id: app_id
21
- }
22
- end
23
- }
25
+ def add_user_visible_apps(user_id: nil, app_ids: nil)
26
+ body = {
27
+ data: app_ids.map do |app_id|
28
+ {
29
+ type: "apps",
30
+ id: app_id
31
+ }
32
+ end
33
+ }
24
34
 
25
- Client.instance.post("users/#{user_id}/relationships/visibleApps", body)
35
+ users_request_client.post("users/#{user_id}/relationships/visibleApps", body)
36
+ end
26
37
  end
27
38
  end
28
39
  end
@@ -0,0 +1,65 @@
1
+ require 'faraday'
2
+
3
+ require_relative 'globals'
4
+
5
+ module Spaceship
6
+ class StatsMiddleware < Faraday::Middleware
7
+ ServiceOption = Struct.new(:name, :url, :auth_type)
8
+ URLLog = Struct.new(:url, :auth_type)
9
+ class << self
10
+ def services
11
+ return @services if @services
12
+
13
+ require_relative 'tunes/tunes_client'
14
+ require_relative 'portal/portal_client'
15
+ require_relative 'connect_api/testflight/client'
16
+ require_relative 'connect_api/provisioning/client'
17
+
18
+ @services ||= [
19
+ ServiceOption.new("App Store Connect API (official)", "api.appstoreconnect.apple.com", "JWT"),
20
+ ServiceOption.new("App Store Connect API (web session)", Spaceship::ConnectAPI::TestFlight::Client.hostname.gsub("https://", ""), "Web session"),
21
+ ServiceOption.new("App Store Connect API (web session)", Spaceship::ConnectAPI::Provisioning::Client.hostname.gsub("https://", ""), "Web session"),
22
+ ServiceOption.new("Legacy iTunesConnect Auth", "idmsa.apple.com", "Web session"),
23
+ ServiceOption.new("Legacy iTunesConnect Auth", "appstoreconnect.apple.com/olympus/v1/", "Web session"),
24
+ ServiceOption.new("Legacy iTunesConnect", Spaceship::TunesClient.hostname.gsub("https://", ""), "Web session"),
25
+ ServiceOption.new("Legacy iTunesConnect Developer Portal", Spaceship::PortalClient.hostname.gsub("https://", ""), "Web session")
26
+ ]
27
+ end
28
+
29
+ def service_stats
30
+ @service_stats ||= Hash.new(0)
31
+ end
32
+
33
+ def request_logs
34
+ @request_logs ||= []
35
+ @request_logs
36
+ end
37
+ end
38
+
39
+ def initialize(app)
40
+ super(app)
41
+ end
42
+
43
+ def call(env)
44
+ log(env)
45
+ @app.call(env)
46
+ end
47
+
48
+ def log(env)
49
+ return false unless env && env.url && (uri = URI.parse(env.url.to_s))
50
+ service = StatsMiddleware.services.find do |s|
51
+ uri.to_s.include?(s.url)
52
+ end
53
+
54
+ service = ServiceOption.new("Unknown", uri.host, "Unknown") if service.nil?
55
+ StatsMiddleware.service_stats[service] += 1
56
+
57
+ StatsMiddleware.request_logs << URLLog.new(uri.to_s, service.auth_type)
58
+
59
+ return true
60
+ rescue => e
61
+ puts("Failed to log spaceship stats - #{e.message}") if Spaceship::Globals.verbose?
62
+ return false
63
+ end
64
+ end
65
+ end
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.155.3
4
+ version: 2.157.2
5
5
  platform: ruby
6
6
  authors:
7
+ - Danielle Tomlinson
8
+ - Daniel Jankowski
9
+ - Maksym Grebenets
7
10
  - Jimmy Dee
11
+ - Matthew Ellis
12
+ - Andrew McBurney
8
13
  - Helmut Januschka
14
+ - Aaron Brager
9
15
  - Felix Krause
10
- - Stefan Natchev
11
- - Daniel Jankowski
12
- - Fumiya Nakamura
13
- - Kohki Miki
14
- - Josh Holtz
15
- - Jorge Revuelta H
16
- - Matthew Ellis
17
- - Max Ott
18
- - Maksym Grebenets
19
- - Luka Mirosevic
20
16
  - Manu Wallner
21
- - Aaron Brager
22
- - Andrew McBurney
23
- - Danielle Tomlinson
24
- - Jan Piotrowski
25
17
  - Iulian Onofrei
26
- - Joshua Liebowitz
18
+ - Stefan Natchev
19
+ - Luka Mirosevic
27
20
  - Jérôme Lacoste
21
+ - Max Ott
28
22
  - Olivier Halligon
23
+ - Kohki Miki
24
+ - Fumiya Nakamura
25
+ - Jan Piotrowski
26
+ - Jorge Revuelta H
27
+ - Josh Holtz
28
+ - Joshua Liebowitz
29
29
  autorequire:
30
30
  bindir: bin
31
31
  cert_chain: []
32
- date: 2020-08-07 00:00:00.000000000 Z
32
+ date: 2020-08-28 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: slack-notifier
@@ -944,14 +944,17 @@ files:
944
944
  - deliver/lib/assets/summary.html.erb
945
945
  - deliver/lib/deliver.rb
946
946
  - deliver/lib/deliver/app_screenshot.rb
947
+ - deliver/lib/deliver/app_screenshot_iterator.rb
947
948
  - deliver/lib/deliver/commands_generator.rb
948
949
  - deliver/lib/deliver/detect_values.rb
949
950
  - deliver/lib/deliver/download_screenshots.rb
950
951
  - deliver/lib/deliver/generate_summary.rb
951
952
  - deliver/lib/deliver/html_generator.rb
953
+ - deliver/lib/deliver/languages.rb
952
954
  - deliver/lib/deliver/loader.rb
953
955
  - deliver/lib/deliver/module.rb
954
956
  - deliver/lib/deliver/options.rb
957
+ - deliver/lib/deliver/queue_worker.rb
955
958
  - deliver/lib/deliver/runner.rb
956
959
  - deliver/lib/deliver/setup.rb
957
960
  - deliver/lib/deliver/submit_for_review.rb
@@ -988,6 +991,7 @@ files:
988
991
  - fastlane/lib/fastlane/actions/add_extra_platforms.rb
989
992
  - fastlane/lib/fastlane/actions/add_git_tag.rb
990
993
  - fastlane/lib/fastlane/actions/app_store_build_number.rb
994
+ - fastlane/lib/fastlane/actions/app_store_connect_api_key.rb
991
995
  - fastlane/lib/fastlane/actions/appaloosa.rb
992
996
  - fastlane/lib/fastlane/actions/appetize.rb
993
997
  - fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb
@@ -1174,6 +1178,7 @@ files:
1174
1178
  - fastlane/lib/fastlane/actions/snapshot.rb
1175
1179
  - fastlane/lib/fastlane/actions/sonar.rb
1176
1180
  - fastlane/lib/fastlane/actions/spaceship_logs.rb
1181
+ - fastlane/lib/fastlane/actions/spaceship_stats.rb
1177
1182
  - fastlane/lib/fastlane/actions/splunkmint.rb
1178
1183
  - fastlane/lib/fastlane/actions/spm.rb
1179
1184
  - fastlane/lib/fastlane/actions/ssh.rb
@@ -1447,8 +1452,6 @@ files:
1447
1452
  - match/lib/assets/MatchfileTemplate.swift
1448
1453
  - match/lib/assets/READMETemplate.md
1449
1454
  - match/lib/match.rb
1450
- - match/lib/match/.options.rb.swp
1451
- - match/lib/match/.runner.rb.swp
1452
1455
  - match/lib/match/change_password.rb
1453
1456
  - match/lib/match/commands_generator.rb
1454
1457
  - match/lib/match/encryption.rb
@@ -1558,8 +1561,6 @@ files:
1558
1561
  - sigh/README.md
1559
1562
  - sigh/lib/assets/resign.sh
1560
1563
  - sigh/lib/sigh.rb
1561
- - sigh/lib/sigh/.options.rb.swp
1562
- - sigh/lib/sigh/.runner.rb.swp
1563
1564
  - sigh/lib/sigh/commands_generator.rb
1564
1565
  - sigh/lib/sigh/download_all.rb
1565
1566
  - sigh/lib/sigh/local_manage.rb
@@ -1612,10 +1613,10 @@ files:
1612
1613
  - spaceship/lib/spaceship/client.rb
1613
1614
  - spaceship/lib/spaceship/commands_generator.rb
1614
1615
  - spaceship/lib/spaceship/connect_api.rb
1616
+ - spaceship/lib/spaceship/connect_api/api_client.rb
1615
1617
  - spaceship/lib/spaceship/connect_api/client.rb
1616
1618
  - spaceship/lib/spaceship/connect_api/file_uploader.rb
1617
1619
  - spaceship/lib/spaceship/connect_api/model.rb
1618
- - spaceship/lib/spaceship/connect_api/models/.profile.rb.swp
1619
1620
  - spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb
1620
1621
  - spaceship/lib/spaceship/connect_api/models/app.rb
1621
1622
  - spaceship/lib/spaceship/connect_api/models/app_category.rb
@@ -1658,13 +1659,14 @@ files:
1658
1659
  - spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb
1659
1660
  - spaceship/lib/spaceship/connect_api/models/territory.rb
1660
1661
  - spaceship/lib/spaceship/connect_api/models/user.rb
1661
- - spaceship/lib/spaceship/connect_api/provisioning/.provisioning.rb.swp
1662
1662
  - spaceship/lib/spaceship/connect_api/provisioning/client.rb
1663
1663
  - spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb
1664
1664
  - spaceship/lib/spaceship/connect_api/response.rb
1665
+ - spaceship/lib/spaceship/connect_api/spaceship.rb
1665
1666
  - spaceship/lib/spaceship/connect_api/testflight/client.rb
1666
1667
  - spaceship/lib/spaceship/connect_api/testflight/testflight.rb
1667
1668
  - spaceship/lib/spaceship/connect_api/token.rb
1669
+ - spaceship/lib/spaceship/connect_api/token_refresh_middleware.rb
1668
1670
  - spaceship/lib/spaceship/connect_api/tunes/client.rb
1669
1671
  - spaceship/lib/spaceship/connect_api/tunes/tunes.rb
1670
1672
  - spaceship/lib/spaceship/connect_api/users/client.rb
@@ -1703,6 +1705,7 @@ files:
1703
1705
  - spaceship/lib/spaceship/portal/website_push.rb
1704
1706
  - spaceship/lib/spaceship/provider.rb
1705
1707
  - spaceship/lib/spaceship/spaceauth_runner.rb
1708
+ - spaceship/lib/spaceship/stats_middleware.rb
1706
1709
  - spaceship/lib/spaceship/test_flight.rb
1707
1710
  - spaceship/lib/spaceship/test_flight/app_test_info.rb
1708
1711
  - spaceship/lib/spaceship/test_flight/base.rb
Binary file