class Escobar::GitHub::DeploymentError
Consolidate GitHub
deployment api failures for easier messaging
Attributes
repo[RW]
required_commit_contexts[RW]
response[RW]
Public Class Methods
new(repo, response, required_commit_contexts)
click to toggle source
# File lib/escobar/github/deployment_error.rb, line 7 def initialize(repo, response, required_commit_contexts) @repo = repo @response = response @required_commit_contexts = required_commit_contexts end
Public Instance Methods
default_message()
click to toggle source
# File lib/escobar/github/deployment_error.rb, line 36 def default_message "Unable to create GitHub deployments for #{repo}: #{response_message}" end
missing_contexts()
click to toggle source
# File lib/escobar/github/deployment_error.rb, line 28 def missing_contexts required_commit_contexts - succeeded_required_contexts end
missing_contexts?()
click to toggle source
# File lib/escobar/github/deployment_error.rb, line 13 def missing_contexts? missing_contexts.any? end
response_message()
click to toggle source
# File lib/escobar/github/deployment_error.rb, line 32 def response_message response["message"] end
succeeded_required_contexts()
click to toggle source
# File lib/escobar/github/deployment_error.rb, line 17 def succeeded_required_contexts error = response.fetch("errors", [])[0] return [] unless error && error["field"] == "required_contexts" contexts = error["contexts"] contexts.each_with_object([]) do |context, succeeded| success = (context["state"] == "success") required = required_commit_contexts.include?(context["context"]) succeeded << context["context"] if required && success end end