class Danger::CI

“abstract” CI class

def self.available_ci_sources

def self.available_ci_sources
  @available_ci_sources ||= Set.new
end

def self.inherited(child_class)

def self.inherited(child_class)
  available_ci_sources.add child_class
  super
end

def self.validates_as_ci?(_env)

def self.validates_as_ci?(_env)
  abort "You need to include a function for #{self} for validates_as_ci?"
end

def self.validates_as_pr?(_env)

def self.validates_as_pr?(_env)
  abort "You need to include a function for #{self} for validates_as_pr?"
end

def initialize(_env)

def initialize(_env)
  raise "Subclass and overwrite initialize" if method(__method__).owner == Danger::CI
end

def supported_request_sources

def supported_request_sources
  raise "CISource subclass must specify the supported request sources"
end

def supports?(request_source)

def supports?(request_source)
  supported_request_sources.include?(request_source)
end