module Fastlane
module Actions
def self.git_log_between(pretty_format, from, to)
Actions.sh("git log --pretty=\"#{pretty_format}\" #{from.shellescape}...#{to.shellescape}", log: false).chomp
rescue
nil
end
def self.last_git_tag_name(match_lightweight = true)
command = ['git describe']
command << '--tags' if match_lightweight
command << '--abbrev=0'
Actions.sh(command.join(' '), log: false).chomp
rescue
nil
end
def self.last_git_commit_dict
return nil if last_git_commit_formatted_with('%an').nil?
{
author: last_git_commit_formatted_with('%an'),
message: last_git_commit_formatted_with('%B')
}
end
# Gets the last git commit information formatted into a String by the provided
# pretty format String. See the git-log documentation for valid format placeholders
def self.last_git_commit_formatted_with(pretty_format)
Actions.sh("git log -1 --pretty=#{pretty_format}", log: false).chomp
rescue
nil
end
# Get the author email of the last git commit
# DEPRECATED: Use git_author_email instead.
def self.git_author
Helper.log.warn '`git_author` is deprecated. Please use `git_author_email` instead.'.red
git_author_email
end
# Get the author email of the last git commit
def self.git_author_email
s = last_git_commit_formatted_with('%ae')
return s if s.to_s.length > 0
return nil
end
# Returns the unwrapped subject and body of the last commit
# DEPRECATED: Use last_git_commit_message instead.
def self.last_git_commit
Helper.log.warn '`last_git_commit` is deprecated. Please use `last_git_commit_message` instead.'.red
last_git_commit_message
end
# Returns the unwrapped subject and body of the last commit
def self.last_git_commit_message
s = (last_git_commit_formatted_with('%B') || "").strip
return s if s.to_s.length > 0
nil
end
# Returns the current git branch - can be replaced using the environment variable `GIT_BRANCH`
def self.git_branch
return ENV['GIT_BRANCH'] if ENV['GIT_BRANCH'].to_s.length > 0 # set by Jenkins
s = Actions.sh("git rev-parse --abbrev-ref HEAD", log: false).chomp
return s.to_s.strip if s.to_s.length > 0
nil
rescue
nil
end
end
end