class Jigit::JiraAPIClient
Public Class Methods
new(config, jira_client = nil)
click to toggle source
# File lib/jigit/jira/jira_api_client.rb, line 9 def initialize(config, jira_client = nil) raise "Config must not be nil to use JiraHelper" unless config @config = config @jira_client = jira_client end
Public Instance Methods
fetch_issue_transitions(issue)
click to toggle source
# File lib/jigit/jira/jira_api_client.rb, line 36 def fetch_issue_transitions(issue) raise "Can not fetch a JIRA issue's transitions without issue name" unless issue.jira_ruby_issue begin transitions = jira_client.Transition.all(issue: issue.jira_ruby_issue) return nil unless transitions transitions.map do |transition| Jigit::JiraTransition.new(transition) end rescue SocketError => exception raise Jigit::NetworkError, "Can not fetch JIRA issue transitions: #{exception.message}" rescue JIRA::HTTPError => exception raise Jigit::JiraAPIClientError, "Can not fetch JIRA issue transitions: #{exception.response.body}" end end
fetch_jira_issue(issue_name)
click to toggle source
# File lib/jigit/jira/jira_api_client.rb, line 51 def fetch_jira_issue(issue_name) raise "Can not fetch a JIRA issue without issue name" unless issue_name begin issue = jira_client.Issue.jql("key = #{issue_name}").first return nil unless issue Jigit::JiraIssue.new(issue) rescue SocketError => exception raise Jigit::NetworkError, "Can not fetch a JIRA issue: #{exception.message}" rescue JIRA::HTTPError => exception error = case exception.response.code when "400" then Jigit::JiraInvalidIssueKeyError else Jigit::JiraAPIClientError end raise error, "Can not fetch a JIRA issue: #{exception.response.body}" end end
fetch_jira_statuses()
click to toggle source
# File lib/jigit/jira/jira_api_client.rb, line 68 def fetch_jira_statuses statuses = jira_client.Status.all return nil unless statuses statuses.map do |status| Jigit::JiraStatus.new(status) end rescue SocketError => exception raise Jigit::NetworkError, "Can not fetch a JIRA statuses: #{exception.message}" rescue JIRA::HTTPError => exception raise Jigit::JiraAPIClientError, "Can not fetch a JIRA statuses: #{exception.response.body}" end
jira_client()
click to toggle source
# File lib/jigit/jira/jira_api_client.rb, line 15 def jira_client return @jira_client if @jira_client options = { username: @config.user, password: @config.password, site: "https://#{@config.host}", context_path: "", auth_type: :basic } @jira_client ||= JIRA::Client.new(options) end
validate_api?()
click to toggle source
# File lib/jigit/jira/jira_api_client.rb, line 27 def validate_api? serverinfo = jira_client.ServerInfo.all return !serverinfo.nil? rescue SocketError => exception raise Jigit::NetworkError, "Can not fetch Jira server info: #{exception.message}" rescue JIRA::HTTPError => exception raise Jigit::JiraAPIClientError, "Can not fetch Jira server info: #{exception.message}" end