class Fastlane::Actions::GsRemoveFromTestflightReviewAction

Public Class Methods

authors() click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_remove_from_testflight_review.rb, line 37
def self.authors
  ["Сергей Веселовский"]
end
available_options() click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_remove_from_testflight_review.rb, line 50
def self.available_options
  require "pilot"
  require "pilot/options"
  FastlaneCore::CommanderGenerator.new.generate(Pilot::Options.available_options)
end
description() click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_remove_from_testflight_review.rb, line 33
def self.description
  "Gradoservice plugin to rule apps releases"
end
details() click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_remove_from_testflight_review.rb, line 45
def self.details
  # Optional:
  "Gradoservice plugin to rule apps releases for our scheme"
end
is_supported?(platform) click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_remove_from_testflight_review.rb, line 56
def self.is_supported?(platform)
  # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
  # See: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
  #
  # [:ios, :mac, :android].include?(platform)
  true
end
return_value() click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_remove_from_testflight_review.rb, line 41
def self.return_value
  # If your method provides a return value, you can describe here what it does
end
run(params) click to toggle source
# File lib/fastlane/plugin/gs_deliver/actions/gs_remove_from_testflight_review.rb, line 6
def self.run(params)
  build_manager = Pilot::BuildManager.new
  build_manager.start(params)
  platform = build_manager.fetch_app_platform(required: false)
  builds = build_manager.app.all_processing_builds(platform: platform) + build_manager.app.builds(platform: platform)
  # sort by upload_date
  builds.sort! { |a, b| a.upload_date <=> b.upload_date }
  build = builds.last
  if build.nil?
    UI.user_error!("No builds found.")
    return
  end
  if build.processing
    UI.user_error!("Build #{build.train_version}(#{build.build_version}) is still processing.")
    return
  end
  if build.testing_status == "External"
    UI.user_error!("Build #{build.train_version}(#{build.build_version}) has already been distributed.")
    return
  end

  build.client.remove_testflight_build_from_review!(app_id: build.apple_id,
                                                    train: build.train_version,
                                                    build_number: build.build_version,
                                                    platform: build.platform)
end