coyote-sync/jira_client.rb

42 lines
1.0 KiB
Ruby
Raw Normal View History

2018-02-08 11:44:04 +01:00
require 'jira-ruby'
class JiraClient
def initialize(config)
@label_name = config['labelName']
@jira_filter = sprintf(config['jql'], @label_name)
@options = {
:username => config['user'],
:password => config['pass'],
:site => config['url'],
:context_path => '',
:auth_type => :basic,
:use_ssl => true
}
@max_results = config['maxResults']
end
def query_new_epics
jira = JIRA::Client.new(@options)
result = []
jira.Issue.jql(@jira_filter,
fields: %w(summary description),
max_results: @max_results
).each do |epic|
next unless epic.summary.downcase.start_with?("integrate")
wp_name = epic.summary.match /^integrate\s+(?:wp)?(.*?)\s*$/i
result.push ["wp" + wp_name[1].downcase, epic.key]
end
result
end
def set_epic_completed(key)
jira = JIRA::Client.new(@options)
issue = jira.Issue.find(key)
labels = issue.labels
labels.push(@label_name)
issue.save({:fields => {:labels => labels}})
end
end