class Fastlane::Action

def self.action_name

instead of "AddGitAction", this will return "add_git" to print it to the user
def self.action_name
  self.name.split('::').last.gsub('Action', '').fastlane_underscore
end

def self.author

def self.author
  nil
end

def self.authors

def self.authors
  nil
end

def self.available_options

def self.available_options
  # Return an array of 2-3 element arrays, like:
  # [
  #   ['app_identifier', 'This value is responsible for X', 'ENVIRONMENT_VARIABLE'],
  #   ['app_identifier', 'This value is responsible for X']
  # ]
  # Take a look at sigh.rb if you're using the config manager of fastlane
  nil
end

def self.description

Implement in subclasses
def self.description
  "No description provided".red
end

def self.details

def self.details
  nil # this is your change to provide a more detailed description of this action
end

def self.is_supported?(platform)

def self.is_supported?(platform)
  # you can do things like
  #  true
  #
  #  platform == :ios
  #
  #  [:ios, :android].include? platform
  #
  raise "Implementing `is_supported?` for all actions is mandatory. Please update #{self}".red
end

def self.output

def self.output
  # Return the keys you provide on the shared area
  # [
  #   ['IPA_OUTPUT_PATH', 'The path to the newly generated ipa file']
  # ]
  nil
end

def self.return_value

def self.return_value
  # Describes what this method returns
  nil
end

def self.run(params)

def self.run(params)
end

def self.sh(command)

to allow a simple `sh` in the custom actions
def self.sh(command)
  Fastlane::Actions.sh(command)
end

def self.step_text

Return nil if you don't want any logging in the terminal/JUnit Report
Is printed out in the Steps: output in the terminal
def self.step_text
  self.action_name
end