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