Class: Danger::DangerfileMessagingPlugin
- Defined in:
- lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb
Overview
Provides the feedback mechanism for Danger. Danger can keep track of messages, warnings, failure and post arbitrary markdown into a comment.
The message within which Danger communicates back is amended on each run in a session.
Each of ‘message`, `warn` and `fail` have a `sticky` flag, `true` by default, which means that the message will be crossed out instead of being removed. If it’s not use on subsequent runs.
By default, using ‘fail` would fail the corresponding build. Either via an API call, or via the return value for the danger command.
It is possible to have Danger ignore specific warnings or errors by writing ‘Danger: Ignore “[warning/error text]`.
Sidenote: Messaging is the only plugin which adds functions to the root of the Dangerfile.
Core collapse
-
#fail(message, sticky: true, file: nil, line: nil) ⇒ void
Declares a CI blocking error.
-
#markdown(message, file: nil, line: nil) ⇒ void
Print markdown to below the table.
-
#message(message, sticky: true, file: nil, line: nil) ⇒ void
Print out a generate message on the PR.
-
#warn(message, sticky: true, file: nil, line: nil) ⇒ void
Specifies a problem, but not critical.
Reporting collapse
-
#status_report ⇒ Hash
A list of all messages passed to Danger, including the markdowns.
-
#violation_report ⇒ Hash
A list of all violations passed to Danger, we don’t anticipate users of Danger needing to use this.
Class Method Summary collapse
-
.instance_name ⇒ String
The instance name used in the Dangerfile.
Instance Method Summary collapse
-
#initialize(dangerfile) ⇒ DangerfileMessagingPlugin
constructor
A new instance of DangerfileMessagingPlugin.
Methods inherited from Plugin
all_plugins, clear_external_plugins, inherited, #method_missing
Constructor Details
#initialize(dangerfile) ⇒ DangerfileMessagingPlugin
Returns a new instance of DangerfileMessagingPlugin.
52 53 54 55 56 57 58 59 |
# File 'lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb', line 52 def initialize(dangerfile) super(dangerfile) @warnings = [] @errors = [] @messages = [] @markdowns = [] end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Danger::Plugin
Class Method Details
.instance_name ⇒ String
The instance name used in the Dangerfile
64 65 66 |
# File 'lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb', line 64 def self.instance_name "messaging" end |
Instance Method Details
#fail(message, sticky: true, file: nil, line: nil) ⇒ void
This method returns an undefined value.
Declares a CI blocking error
134 135 136 137 |
# File 'lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb', line 134 def fail(, sticky: true, file: nil, line: nil) return if should_ignore_violation() @errors << Violation.new(, sticky, file, line) end |
#markdown(message, file: nil, line: nil) ⇒ void
This method returns an undefined value.
Print markdown to below the table
79 80 81 |
# File 'lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb', line 79 def markdown(, file: nil, line: nil) @markdowns << Markdown.new(, file, line) end |
#message(message, sticky: true, file: nil, line: nil) ⇒ void
This method returns an undefined value.
Print out a generate message on the PR
97 98 99 |
# File 'lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb', line 97 def (, sticky: true, file: nil, line: nil) @messages << Violation.new(, sticky, file, line) end |
#status_report ⇒ Hash
A list of all messages passed to Danger, including the markdowns.
145 146 147 148 149 150 151 152 |
# File 'lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb', line 145 def status_report { errors: @errors.map(&:message).clone.freeze, warnings: @warnings.map(&:message).clone.freeze, messages: @messages.map(&:message).clone.freeze, markdowns: @markdowns.clone.freeze } end |
#violation_report ⇒ Hash
A list of all violations passed to Danger, we don’t anticipate users of Danger needing to use this.
160 161 162 163 164 165 166 |
# File 'lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb', line 160 def violation_report { errors: @errors.clone.freeze, warnings: @warnings.clone.freeze, messages: @messages.clone.freeze } end |
#warn(message, sticky: true, file: nil, line: nil) ⇒ void
This method returns an undefined value.
Specifies a problem, but not critical
115 116 117 118 |
# File 'lib/danger/danger_core/plugins/dangerfile_messaging_plugin.rb', line 115 def warn(, sticky: true, file: nil, line: nil) return if should_ignore_violation() @warnings << Violation.new(, sticky, file, line) end |