class Fastlane::Actions::ValidatePlayStoreJsonKeyAction

Public Class Methods

authors() click to toggle source
# File fastlane/lib/fastlane/actions/validate_play_store_json_key.rb, line 27
def self.authors
  ["janpio"]
end
available_options() click to toggle source
# File fastlane/lib/fastlane/actions/validate_play_store_json_key.rb, line 43
def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :json_key,
                                 env_name: "SUPPLY_JSON_KEY",
                                 short_option: "-j",
                                 conflicting_options: [:json_key_data],
                                 optional: true,
                                 description: "The path to a file containing service account JSON, used to authenticate with Google",
                                 code_gen_sensitive: true,
                                 default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_file),
                                 default_value_dynamic: true,
                                 verify_block: proc do |value|
                                   UI.user_error!("Could not find service account json file at path '#{File.expand_path(value)}'") unless File.exist?(File.expand_path(value))
                                   UI.user_error!("'#{value}' doesn't seem to be a JSON file") unless FastlaneCore::Helper.json_file?(File.expand_path(value))
                                 end),
    FastlaneCore::ConfigItem.new(key: :json_key_data,
                                 env_name: "SUPPLY_JSON_KEY_DATA",
                                 short_option: "-c",
                                 conflicting_options: [:json_key],
                                 optional: true,
                                 description: "The raw service account JSON data used to authenticate with Google",
                                 code_gen_sensitive: true,
                                 default_value: CredentialsManager::AppfileConfig.try_fetch_value(:json_key_data_raw),
                                 default_value_dynamic: true,
                                 verify_block: proc do |value|
                                   begin
                                     JSON.parse(value)
                                   rescue JSON::ParserError
                                     UI.user_error!("Could not parse service account json: JSON::ParseError")
                                   end
                                 end),
    # stuff
    FastlaneCore::ConfigItem.new(key: :root_url,
                                 env_name: "SUPPLY_ROOT_URL",
                                 description: "Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/",
                                 optional: true,
                                 verify_block: proc do |value|
                                   UI.user_error!("Could not parse URL '#{value}'") unless value =~ URI.regexp
                                 end),
    FastlaneCore::ConfigItem.new(key: :timeout,
                                 env_name: "SUPPLY_TIMEOUT",
                                 optional: true,
                                 description: "Timeout for read, open, and send (in seconds)",
                                 type: Integer,
                                 default_value: 300)
  ]
end
category() click to toggle source
# File fastlane/lib/fastlane/actions/validate_play_store_json_key.rb, line 95
def self.category
  :misc
end
description() click to toggle source
# File fastlane/lib/fastlane/actions/validate_play_store_json_key.rb, line 23
def self.description
  "Validate that the Google Play Store `json_key` works"
end
details() click to toggle source
# File fastlane/lib/fastlane/actions/validate_play_store_json_key.rb, line 31
def self.details
  "Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API"
end
example_code() click to toggle source
# File fastlane/lib/fastlane/actions/validate_play_store_json_key.rb, line 35
def self.example_code
  [
    "validate_play_store_json_key(
      json_key: 'path/to/you/json/key/file'
    )"
  ]
end
is_supported?(platform) click to toggle source
# File fastlane/lib/fastlane/actions/validate_play_store_json_key.rb, line 91
def self.is_supported?(platform)
  [:android].include?(platform)
end
run(params) click to toggle source
# File fastlane/lib/fastlane/actions/validate_play_store_json_key.rb, line 6
def self.run(params)
  FastlaneCore::PrintTable.print_values(
    config: params,
    mask_keys: [:json_key_data],
    title: "Summary for validate_play_store_json_key"
  )

  begin
    client = Supply::Client.make_from_config(params: params)
    FastlaneCore::UI.success("Successfully established connection to Google Play Store.")
    FastlaneCore::UI.verbose("client: " + client.inspect)
  rescue => e
    UI.error("Could not establish a connection to Google Play Store with this json key file.")
    UI.error("#{e.message}\n#{e.backtrace.join("\n")}") if FastlaneCore::Globals.verbose?
  end
end