Class: Gerrit2jiracomment::ToJira
- Inherits:
-
Object
- Object
- Gerrit2jiracomment::ToJira
- Defined in:
- lib/gerrit2jiracomment.rb
Overview
React on events by sending data to jira
Instance Method Summary collapse
- #assemble_change_merged_comment(event, server, uri) ⇒ Object
- #author_line(event) ⇒ Object
- #branch_line(event) ⇒ Object
- #change_merged(log, event, server) ⇒ Object
- #changeset_line(event) ⇒ Object
- #commit_line(base_url, event) ⇒ Object
- #gitiles_url(base_url, event) ⇒ Object
- #handle_change_merged_issue_comment(issue, log, event, server) ⇒ Object
-
#initialize(logger, jira) ⇒ ToJira
constructor
A new instance of ToJira.
- #project_line(server, event) ⇒ Object
- #submitter_line(event) ⇒ Object
- #title_line(event) ⇒ Object
Constructor Details
#initialize(logger, jira) ⇒ ToJira
Returns a new instance of ToJira.
53 54 55 56 |
# File 'lib/gerrit2jiracomment.rb', line 53 def initialize(logger, jira) @logger = logger @jira = jira end |
Instance Method Details
#assemble_change_merged_comment(event, server, uri) ⇒ Object
93 94 95 96 97 98 99 |
# File 'lib/gerrit2jiracomment.rb', line 93 def assemble_change_merged_comment(event, server, uri) base_url = "#{uri.scheme}://#{uri.host}" [title_line(event), (event), submitter_line(event), changeset_line(event), branch_line(event), project_line(server, event), commit_line(base_url, event)] .join("\n") end |
#author_line(event) ⇒ Object
64 65 66 |
# File 'lib/gerrit2jiracomment.rb', line 64 def (event) "Author: #{event.patchSet..email}" end |
#branch_line(event) ⇒ Object
81 82 83 |
# File 'lib/gerrit2jiracomment.rb', line 81 def branch_line(event) "Branch: #{event.change.branch}" end |
#change_merged(log, event, server) ⇒ Object
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/gerrit2jiracomment.rb', line 113 def change_merged(log, event, server) log = LoggerWithTag.new(log, 'changeset') log.debug("Send change merged to jira #{event}") = event.change.commitMessage log.debug("Found commit: #{event.change.subject}\n#{}") found = false .scan(Gerrit2jiracomment.regexp).map(&:strip).each do |match| found ||= handle_change_merged_issue_comment(match, log, event, server) end found || log.fail(ProcessException, "No jira-issue found in #{event}") end |
#changeset_line(event) ⇒ Object
76 77 78 79 |
# File 'lib/gerrit2jiracomment.rb', line 76 def changeset_line(event) url = event.change.url "Changeset: [#{url}|#{url}]" end |
#commit_line(base_url, event) ⇒ Object
72 73 74 |
# File 'lib/gerrit2jiracomment.rb', line 72 def commit_line(base_url, event) "Commit: #{gitiles_url(base_url, event)}" end |
#gitiles_url(base_url, event) ⇒ Object
58 59 60 61 62 |
# File 'lib/gerrit2jiracomment.rb', line 58 def gitiles_url(base_url, event) gitiles = "#{base_url}/plugins/gitiles/" "[#{event.patchSet.revision}|" \ "#{gitiles}#{event.change.project}/+/#{event.patchSet.revision}]" end |
#handle_change_merged_issue_comment(issue, log, event, server) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/gerrit2jiracomment.rb', line 101 def handle_change_merged_issue_comment(issue, log, event, server) log.debug("Found jira issue comment: '#{issue}'") uri = URI.parse(event.change.url) comment_text = assemble_change_merged_comment(event, server, uri) log.debug("Adding #{comment_text} to jira #{issue}") @jira.Issue.find(issue).comments.build.save!(body: comment_text) true rescue JIRA::HTTPError => e log.error("Cannot find #{issue} in our jira", e) false end |
#project_line(server, event) ⇒ Object
85 86 87 |
# File 'lib/gerrit2jiracomment.rb', line 85 def project_line(server, event) "Project: #{server}/#{event.change.project}" end |
#submitter_line(event) ⇒ Object
68 69 70 |
# File 'lib/gerrit2jiracomment.rb', line 68 def submitter_line(event) "Submitter: #{event.submitter.email}" end |
#title_line(event) ⇒ Object
89 90 91 |
# File 'lib/gerrit2jiracomment.rb', line 89 def title_line(event) "Title: #{event.change.subject}" end |