Class: Danger::DangerGithubExt
- Inherits:
-
DangerfileGitHubPlugin
- Object
- DangerfileGitHubPlugin
- Danger::DangerGithubExt
- Defined in:
- lib/github_ext/plugin.rb
Overview
This is Danger Plugin for GitHub extension. When installing this plugin, you can additional methods on github instance
Instance Method Summary collapse
-
#add_labels(labels) ⇒ void
add labels to pull request.
-
#initialize(dangerfile) ⇒ DangerGithubExt
constructor
A new instance of DangerGithubExt.
-
#labels ⇒ [String]
Get labels.
-
#mergeable? ⇒ boolean
Whether mergeable and mergeable status is clean.
-
#remove_labels(labels) ⇒ void
remove labels from pull request.
-
#statuses ⇒ [Hash]
get current commit statuses.
Constructor Details
#initialize(dangerfile) ⇒ DangerGithubExt
Returns a new instance of DangerGithubExt.
30 31 32 33 34 |
# File 'lib/github_ext/plugin.rb', line 30 def initialize(dangerfile) super(dangerfile) self.api.auto_paginate = true end |
Instance Method Details
#add_labels(labels) ⇒ void
This method returns an undefined value.
add labels to pull request
58 59 60 61 62 |
# File 'lib/github_ext/plugin.rb', line 58 def add_labels(labels) @repo ||= self.pr_json.base.repo.full_name @number ||= self.pr_json.number self.api.add_labels_to_an_issue(@repo, @number, Array(labels)) end |
#labels ⇒ [String]
Get labels
46 47 48 49 50 51 52 |
# File 'lib/github_ext/plugin.rb', line 46 def labels @repo ||= self.pr_json.base.repo.full_name @number ||= self.pr_json.number self.api.labels_for_issue(@repo, @number).map { |issue| issue.name } end |
#mergeable? ⇒ boolean
Whether mergeable and mergeable status is clean
39 40 41 |
# File 'lib/github_ext/plugin.rb', line 39 def mergeable? self.pr_json.attrs[:mergeable_state] == 'clean' && github.pr_json.attrs[:mergeable] end |
#remove_labels(labels) ⇒ void
This method returns an undefined value.
remove labels from pull request
68 69 70 71 72 73 74 |
# File 'lib/github_ext/plugin.rb', line 68 def remove_labels(labels) @repo ||= self.pr_json.base.repo.full_name @number ||= self.pr_json.number Array(labels).each do |label| self.api.remove_label(@repo, @number, label) end end |
#statuses ⇒ [Hash]
get current commit statuses
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/github_ext/plugin.rb', line 79 def statuses @repo ||= self.pr_json.base.repo.full_name @sha ||= self.head_commit statuses = {} self.api.statuses(@repo, @sha).each do |status| statuses[status.context] ||= [] statuses[status.context].push({ context: status.context, state: status.state, date: status.updated_at }) end statuses.map {|_, val| val.sort{|a, b| b[:date] <=> a[:date] }[0] } end |