module Licensed::Git
Public Class Methods
available?()
click to toggle source
Returns whether git commands are available
# File lib/licensed/git.rb, line 6 def available? @git ||= Licensed::Shell.tool_available?("git") end
commit_date(sha)
click to toggle source
Returns the commit date for the provided SHA as a timestamp
sha - commit sha to retrieve date
# File lib/licensed/git.rb, line 36 def commit_date(sha) return unless git_repo? && sha Licensed::Shell.execute("git", "show", "-s", "-1", "--format=%ct", sha) end
files()
click to toggle source
Returns the files in the git repository from ‘git ls-files –recurse-submodules`
# File lib/licensed/git.rb, line 42 def files return unless git_repo? output = Licensed::Shell.execute("git", "ls-files", "--full-name", "--recurse-submodules") output.lines.map(&:strip) end
git_repo?()
click to toggle source
Returns true if a git repository is found, false otherwise
# File lib/licensed/git.rb, line 20 def git_repo? !repository_root.to_s.empty? end
repository_root()
click to toggle source
Returns the root of the current git repository or nil if not in a git repository.
# File lib/licensed/git.rb, line 12 def repository_root return unless available? root = Licensed::Shell.execute("git", "rev-parse", "--show-toplevel", allow_failure: true) return nil if root.empty? root end
version(descriptor)
click to toggle source
Returns the most recent git SHA for a file or directory or nil if SHA is not available
descriptor - file or directory to retrieve latest SHA for
# File lib/licensed/git.rb, line 28 def version(descriptor) return unless git_repo? && descriptor Licensed::Shell.execute("git", "rev-list", "-1", "HEAD", "--", descriptor, allow_failure: true) end