class Fastlane::Actions::DeletePreviousVersionsAction
Public Class Methods
available_options()
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/delete_previous_versions_action.rb, line 104 def self.available_options [ FastlaneCore::ConfigItem.new(key: :host_url, env_name: "AIRWATCH_HOST_API_URL", description: "Host API URL of the AirWatch/Workspace ONE instance without /API/ at the end", optional: false, type: String, verify_block: proc do |value| UI.user_error!("No AirWatch/Workspace ONE Host API URl given, pass using `host_url: 'https://yourhost.com'`") unless value and !value.empty? end), FastlaneCore::ConfigItem.new(key: :aw_tenant_code, env_name: "AIRWATCH_API_KEY", description: "API key or the tenant code to access AirWatch/Workspace ONE Rest APIs", optional: false, type: String, verify_block: proc do |value| UI.user_error!("Api tenant code header is missing, pass using `aw_tenant_code: 'yourapikey'`") unless value and !value.empty? end), FastlaneCore::ConfigItem.new(key: :b64_encoded_auth, env_name: "AIRWATCH_BASE64_ENCODED_BASIC_AUTH_STRING", description: "The base64 encoded Basic Auth string generated by authorizing username and password to the AirWatch/Workspace ONE instance", optional: false, type: String, verify_block: proc do |value| UI.user_error!("The authorization header is empty or the scheme is not basic, pass using `b64_encoded_auth: 'yourb64encodedauthstring'`") unless value and !value.empty? end), FastlaneCore::ConfigItem.new(key: :org_group_id, env_name: "AIRWATCH_ORGANIZATION_GROUP_ID", description: "Organization Group ID integer identifying the customer or container", optional: false, type: String, verify_block: proc do |value| UI.user_error!("No Organization Group ID integer given, pass using `org_group_id: 'yourorggrpintid'`") unless value and !value.empty? end), FastlaneCore::ConfigItem.new(key: :app_identifier, env_name: "APP_IDENTIFIER", description: "Bundle identifier of your app", optional: false, type: String, verify_block: proc do |value| UI.user_error!("No app identifier given, pass using `app_identifier: 'com.example.app'`") unless value and !value.empty? end), FastlaneCore::ConfigItem.new(key: :keep_latest_versions_count, env_name: "AIRWATCH_KEEP_LATEST_VERSIONS_COUNT", description: "Name of the application. default: 0", optional: true, type: String, default_value: "0", verify_block: proc do |value| UI.user_error!("The number of latest versions to keep can not be negative, pass using `keep_latest_versions_count: 'count'`") unless value.to_i >= 0 end), FastlaneCore::ConfigItem.new(key: :debug, env_name: "AIRWATCH_DEBUG", description: "Debug flag, set to true to show extended output. default: false", optional: true, is_string: false, default_value: false) ] end
debug()
click to toggle source
helpers
# File lib/fastlane/plugin/airwatch_workspaceone/actions/delete_previous_versions_action.rb, line 180 def self.debug $is_debug end
description()
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/delete_previous_versions_action.rb, line 87 def self.description "The main purpose of this action is to delete versions of an application. This action takes a string parameter where you can specify the number of latest versions to keep if you do not want to delete all the versions." end
details()
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/delete_previous_versions_action.rb, line 99 def self.details # Optional: "delete_previous_versions - To delete versions of an application on the AirWatch/Workspace ONE console." end
find_app_versions(app_identifier)
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/delete_previous_versions_action.rb, line 63 def self.find_app_versions(app_identifier) # get the list of apps apps = Helper::AirwatchWorkspaceoneHelper.list_app_versions(app_identifier, $host_url, $aw_tenant_code, $b64_encoded_auth, $org_group_id, debug) app_versions = Array.new active_app_versions = Array.new retired_app_versions = Array.new apps['Application'].each do |app| if app['Status'] == "Active" active_app_version = Helper::AirwatchWorkspaceoneHelper.construct_app_version(app) active_app_versions << active_app_version elsif app["Status"] == "Retired" retired_app_version = Helper::AirwatchWorkspaceoneHelper.construct_app_version(app) retired_app_versions << retired_app_version end end retired_app_versions.sort_by! { |app_version| app_version["Id"] } active_app_versions.sort_by! { |app_version| app_version["Id"] } app_versions.push(*retired_app_versions) app_versions.push(*active_app_versions) return app_versions end
is_supported?(platform)
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/delete_previous_versions_action.rb, line 170 def self.is_supported?(platform) # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example) # See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform [:ios, :android].include?(platform) true end
return_value()
click to toggle source
# File lib/fastlane/plugin/airwatch_workspaceone/actions/delete_previous_versions_action.rb, line 95 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/airwatch_workspaceone/actions/delete_previous_versions_action.rb, line 10 def self.run(params) UI.message("The airwatch_workspaceone plugin is working!") # check if debug is enabled $is_debug = params[:debug] if debug UI.message("----------------------------------------------") UI.message("DeletePreviousVersionsAction debug information") UI.message("----------------------------------------------") UI.message(" host_url: #{params[:host_url]}") UI.message(" aw_tenant_code: #{params[:aw_tenant_code]}") UI.message(" b64_encoded_auth: #{params[:b64_encoded_auth]}") UI.message(" organization_group_id: #{params[:org_group_id]}") UI.message(" app_identifier: #{params[:app_identifier]}") UI.message(" keep_latest_versions_count: #{params[:keep_latest_versions_count]}") end $host_url = params[:host_url] $aw_tenant_code = params[:aw_tenant_code] $b64_encoded_auth = params[:b64_encoded_auth] $org_group_id = params[:org_group_id] app_identifier = params[:app_identifier] keep_latest_versions_count = params[:keep_latest_versions_count] # step 1: find app UI.message("-----------------------") UI.message("1. Finding app versions") UI.message("-----------------------") app_versions = find_app_versions(app_identifier) UI.success("Found %d app version(s)" % [app_versions.count]) UI.success("Version number(s): %s" % [app_versions.map {|app_version| app_version.values[1]}]) # step 2: delete versions UI.message("------------------------") UI.message("2. Deleting app versions") UI.message("------------------------") keep_latest_versions_count_int = keep_latest_versions_count.to_i if app_versions.count < keep_latest_versions_count_int UI.important("Given number of latest versions to keep is greater than available number of versions on the store.") UI.important("Will not delete any version.") else app_versions.pop(keep_latest_versions_count_int) UI.important("Version number(s) to delete: %s" % [app_versions.map {|app_version| app_version.values[1]}]) app_versions.each do |app_version| Helper::AirwatchWorkspaceoneHelper.delete_app(app_version, $host_url, $aw_tenant_code, $b64_encoded_auth, debug) end UI.success("Version(s) %s successfully deleted." % [app_versions.map {|app_version| app_version.values[1]}]) end end