class ScoutApm::GitRevision
Attributes
Public Class Methods
Source
# File lib/scout_apm/git_revision.rb, line 7 def initialize(context) @context = context @sha = detect logger.debug "Detected Git Revision [#{@sha}]" end
Public Instance Methods
Private Instance Methods
Source
# File lib/scout_apm/git_revision.rb, line 64 def app_root context.environment.root end
Source
# File lib/scout_apm/git_revision.rb, line 19 def detect detect_from_config || detect_from_heroku || detect_from_capistrano || detect_from_mina || detect_from_git end
Source
# File lib/scout_apm/git_revision.rb, line 38 def detect_from_capistrano version = File.read(File.join(app_root, 'REVISION')).strip # Capistrano 3.0 - 3.1.x version || File.open(File.join(app_root, '..', 'revisions.log')).to_a.last.strip.sub(/.*as release ([0-9]+).*/, '\1') rescue logger.debug "Unable to detect Git Revision from Capistrano: #{$!.message}" nil end
Source
# File lib/scout_apm/git_revision.rb, line 34 def detect_from_config context.config.value('revision_sha') end
Config
will locate the value from:
ENV variable - SCOUT_REVISION_SHA YAML setting - revision_sha
Source
# File lib/scout_apm/git_revision.rb, line 55 def detect_from_git if File.directory?(".git") `git rev-parse --short HEAD`.strip end rescue logger.debug "Unable to detect Git Revision from Git: #{$!.message}" nil end
Source
# File lib/scout_apm/git_revision.rb, line 27 def detect_from_heroku ENV['HEROKU_SLUG_COMMIT'] end
Source
# File lib/scout_apm/git_revision.rb, line 48 def detect_from_mina File.read(File.join(app_root, '.mina_git_revision')).strip rescue logger.debug "Unable to detect Git Revision from Mina: #{$!.message}" nil end