class GithubStatusNotifier::Notifier
Constants
- ALLOWED_STATUS
- CONTEXT
- ERROR
- FAILURE
- PENDING
- SUCCESS
Public Instance Methods
build_circle_target_url()
click to toggle source
# File lib/github_status_notifier/notifier.rb, line 43 def build_circle_target_url host = ENV['CIRCLE_HOST'] || 'circleci.com' link = ENV['CIRCLE_LINK'] || 'gh' slug = ENV['CIRCLE_PROJECT_USERNAME'] + '/' + ENV['CIRCLE_PROJECT_REPONAME'] job_id = ENV['CIRCLE_BUILD_NUM'] "https://#{host}/#{link}/#{slug}/#{job_id}" end
build_travis_target_url()
click to toggle source
# File lib/github_status_notifier/notifier.rb, line 51 def build_travis_target_url host = ENV['TRAVIS_HOST'] || 'travis-ci.org' slug = ENV['TRAVIS_REPO_SLUG'] job_id = ENV['TRAVIS_JOB_ID'] "https://#{host}/#{slug}/jobs/#{job_id}" end
decide_context(text)
click to toggle source
# File lib/github_status_notifier/notifier.rb, line 58 def decide_context(text) text || CONTEXT end
decide_state(state, exit_status)
click to toggle source
# File lib/github_status_notifier/notifier.rb, line 62 def decide_state(state, exit_status) if state return state.downcase if ALLOWED_STATUS.include?(state.downcase) fail InvalidStateError, "state: #{state} is invalid. allowed #{ALLOWED_STATUS}" elsif exit_status return SUCCESS if exit_status.to_i == 0 return FAILURE else fail ArgumentError, 'require state or exit-state' end end
decide_target_url(url)
click to toggle source
# File lib/github_status_notifier/notifier.rb, line 29 def decide_target_url(url) url || env_target_url end
env_target_url()
click to toggle source
# File lib/github_status_notifier/notifier.rb, line 33 def env_target_url if ENV['TARGET_URL'] ENV['TARGET_URL'] elsif ENV['TRAVIS'] build_travis_target_url elsif ENV['CIRCLECI'] build_circle_target_url end end
logger()
click to toggle source
# File lib/github_status_notifier/notifier.rb, line 74 def logger ::GithubStatusNotifier.logger end
notify(params = {})
click to toggle source
# File lib/github_status_notifier/notifier.rb, line 10 def notify(params = {}) state = decide_state(params[:state], params[:exit_status]) repo_path = '.' repo = Repository.new(repo_path) client = Client.new(repo) pass_params = { target_url: decide_target_url(params[:target_url]), description: params[:description], context: decide_context(params[:context]) } client.create_status(state, pass_params) rescue StandardError => e logger.error 'state:' logger.error state logger.error 'pass_params:' logger.error pass_params raise e end