Class: Danger::RequestSources::RequestSource

Inherits:
Object
  • Object
show all
Defined in:
lib/danger/request_sources/request_source.rb

Direct Known Subclasses

BitbucketCloud, BitbucketServer, GitHub, GitLab, LocalOnly, VSTS

Constant Summary collapse

DANGER_REPO_NAME =
"danger".freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_ci_source, _environment) ⇒ RequestSource

Returns a new instance of RequestSource.



35
36
37
# File 'lib/danger/request_sources/request_source.rb', line 35

def initialize(_ci_source, _environment)
  raise "Subclass and overwrite initialize"
end

Instance Attribute Details

#ci_sourceObject

Returns the value of attribute ci_source.



6
7
8
# File 'lib/danger/request_sources/request_source.rb', line 6

def ci_source
  @ci_source
end

#environmentObject

Returns the value of attribute environment.



6
7
8
# File 'lib/danger/request_sources/request_source.rb', line 6

def environment
  @environment
end

#hostObject

Returns the value of attribute host.



6
7
8
# File 'lib/danger/request_sources/request_source.rb', line 6

def host
  @host
end

#ignored_violationsObject

Returns the value of attribute ignored_violations.



6
7
8
# File 'lib/danger/request_sources/request_source.rb', line 6

def ignored_violations
  @ignored_violations
end

#scmObject

Returns the value of attribute scm.



6
7
8
# File 'lib/danger/request_sources/request_source.rb', line 6

def scm
  @scm
end

Class Method Details

.available_request_sourcesObject



21
22
23
# File 'lib/danger/request_sources/request_source.rb', line 21

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

.available_source_names_and_envsObject



29
30
31
32
33
# File 'lib/danger/request_sources/request_source.rb', line 29

def self.available_source_names_and_envs
  available_request_sources.map do |klass|
    " - #{klass.source_name}: #{klass.env_vars.join(', '.freeze).yellow}"
  end
end

.env_varsObject



8
9
10
# File 'lib/danger/request_sources/request_source.rb', line 8

def self.env_vars
  raise "Subclass and overwrite self.env_vars"
end

.inherited(child_class) ⇒ Object



16
17
18
19
# File 'lib/danger/request_sources/request_source.rb', line 16

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

.optional_env_varsObject



12
13
14
# File 'lib/danger/request_sources/request_source.rb', line 12

def self.optional_env_vars
  []
end

.source_nameObject



25
26
27
# File 'lib/danger/request_sources/request_source.rb', line 25

def self.source_name
  to_s.sub("Danger::RequestSources::".freeze, "".freeze)
end

Instance Method Details

#fetch_detailsObject



68
69
70
# File 'lib/danger/request_sources/request_source.rb', line 68

def fetch_details
  raise "Subclass and overwrite initialize"
end

#file_url(_organisation: nil, _repository: nil, _branch: "master", _path: nil) ⇒ Object



76
77
78
# File 'lib/danger/request_sources/request_source.rb', line 76

def file_url(_organisation: nil, _repository: nil, _branch: "master", _path: nil)
  raise "Subclass and overwrite file_url"
end

#organisationObject



72
73
74
# File 'lib/danger/request_sources/request_source.rb', line 72

def organisation
  raise "Subclass and overwrite organisation"
end

#setup_danger_branchesObject



64
65
66
# File 'lib/danger/request_sources/request_source.rb', line 64

def setup_danger_branches
  raise "Subclass and overwrite setup_danger_branches"
end

#update_build_status(status) ⇒ Object



80
81
82
# File 'lib/danger/request_sources/request_source.rb', line 80

def update_build_status(status)
    raise "Subclass and overwrite update_build_status"
end

#update_pull_request!(_warnings: [], _errors: [], _messages: [], _markdowns: []) ⇒ Object



60
61
62
# File 'lib/danger/request_sources/request_source.rb', line 60

def update_pull_request!(_warnings: [], _errors: [], _messages: [], _markdowns: [])
  raise "Subclass and overwrite update_pull_request!"
end

#validates_as_api_source?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/danger/request_sources/request_source.rb', line 44

def validates_as_api_source?
  raise "Subclass and overwrite validates_as_api_source?"
end

#validates_as_ci?Boolean

Returns whether scm.origins is a valid git repository or not.

Returns:

  • (Boolean)

    whether scm.origins is a valid git repository or not



40
41
42
# File 'lib/danger/request_sources/request_source.rb', line 40

def validates_as_ci?
  !!self.scm.origins.match(%r{#{Regexp.escape self.host}(:|/)(.+/.+?)(?:\.git)?$})
end