Class: JIRA::Client
- Inherits:
-
Object
- Object
- JIRA::Client
- Extended by:
- Forwardable
- Defined in:
- lib/jira/client.rb
Overview
This class is the main access point for all JIRA::Resource instances.
The client must be initialized with an options hash containing configuration options. The available options are:
:site => 'http://localhost:2990',
:context_path => '/jira',
:signature_method => 'RSA-SHA1',
:request_token_path => "/plugins/servlet/oauth/request-token",
:authorize_path => "/plugins/servlet/oauth/authorize",
:access_token_path => "/plugins/servlet/oauth/access-token",
:private_key_file => "rsakey.pem",
:rest_base_path => "/rest/api/2",
:consumer_key => nil,
:consumer_secret => nil,
:ssl_verify_mode => OpenSSL::SSL::VERIFY_PEER,
:use_ssl => true,
:username => nil,
:password => nil,
:auth_type => :oauth,
:proxy_address => nil,
:proxy_port => nil,
:additional_cookies => nil
See the JIRA::Base class methods for all of the available methods on these accessor objects.
Constant Summary collapse
- DEFAULT_OPTIONS =
{ :site => 'http://localhost:2990', :context_path => '/jira', :rest_base_path => "/rest/api/2", :ssl_verify_mode => OpenSSL::SSL::VERIFY_PEER, :use_ssl => true, :auth_type => :oauth, :http_debug => false }
Instance Attribute Summary collapse
-
#cache ⇒ Object
The OAuth::Consumer instance returned by the OauthClient.
-
#consumer ⇒ Object
The OAuth::Consumer instance returned by the OauthClient.
-
#http_debug ⇒ Object
The OAuth::Consumer instance returned by the OauthClient.
-
#options ⇒ Object
readonly
The configuration options for this client instance.
-
#request_client ⇒ Object
The OAuth::Consumer instance returned by the OauthClient.
Instance Method Summary collapse
- #Agile ⇒ Object
- #ApplicationLink ⇒ Object
-
#Attachment ⇒ Object
:nodoc:.
-
#Comment ⇒ Object
:nodoc:.
-
#Component ⇒ Object
:nodoc:.
- #Createmeta ⇒ Object
-
#delete(path, headers = {}) ⇒ Object
HTTP methods without a body.
-
#Field ⇒ Object
:nodoc:.
-
#Filter ⇒ Object
:nodoc:.
- #get(path, headers = {}) ⇒ Object
- #head(path, headers = {}) ⇒ Object
-
#initialize(options = {}) ⇒ Client
constructor
A new instance of Client.
-
#Issue ⇒ Object
:nodoc:.
- #Issuelink ⇒ Object
- #Issuelinktype ⇒ Object
-
#Issuetype ⇒ Object
:nodoc:.
-
#post(path, body = '', headers = {}) ⇒ Object
HTTP methods with a body.
-
#Priority ⇒ Object
:nodoc:.
-
#Project ⇒ Object
:nodoc:.
- #put(path, body = '', headers = {}) ⇒ Object
- #RapidView ⇒ Object
- #Remotelink ⇒ Object
-
#request(http_method, path, body = '', headers = {}) ⇒ Object
Sends the specified HTTP request to the REST API through the appropriate method (oauth, basic).
-
#Resolution ⇒ Object
:nodoc:.
- #ServerInfo ⇒ Object
- #Sprint ⇒ Object
-
#Status ⇒ Object
:nodoc:.
-
#Transition ⇒ Object
:nodoc:.
-
#User ⇒ Object
:nodoc:.
-
#Version ⇒ Object
:nodoc:.
- #Watcher ⇒ Object
- #Webhook ⇒ Object
-
#Worklog ⇒ Object
:nodoc:.
Constructor Details
#initialize(options = {}) ⇒ Client
Returns a new instance of Client.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/jira/client.rb', line 59 def initialize(={}) = DEFAULT_OPTIONS.merge() @options = @options[:rest_base_path] = @options[:context_path] + @options[:rest_base_path] case [:auth_type] when :oauth @request_client = OauthClient.new(@options) @consumer = @request_client.consumer when :basic @request_client = HttpClient.new(@options) when :cookie raise ArgumentError, 'Options: :use_cookies must be true for :cookie authorization type' if @options.key?(:use_cookies) && !@options[:use_cookies] @options[:use_cookies] = true @request_client = HttpClient.new(@options) @request_client. @options.delete(:username) @options.delete(:password) else raise ArgumentError, 'Options: ":auth_type" must be ":oauth", ":cookie" or ":basic"' end @http_debug = @options[:http_debug] @options.freeze @cache = OpenStruct.new end |
Instance Attribute Details
#cache ⇒ Object
The OAuth::Consumer instance returned by the OauthClient
The authenticated client instance returned by the respective client type (Oauth, Basic)
42 43 44 |
# File 'lib/jira/client.rb', line 42 def cache @cache end |
#consumer ⇒ Object
The OAuth::Consumer instance returned by the OauthClient
The authenticated client instance returned by the respective client type (Oauth, Basic)
42 43 44 |
# File 'lib/jira/client.rb', line 42 def consumer @consumer end |
#http_debug ⇒ Object
The OAuth::Consumer instance returned by the OauthClient
The authenticated client instance returned by the respective client type (Oauth, Basic)
42 43 44 |
# File 'lib/jira/client.rb', line 42 def http_debug @http_debug end |
#options ⇒ Object (readonly)
The configuration options for this client instance
45 46 47 |
# File 'lib/jira/client.rb', line 45 def @options end |
#request_client ⇒ Object
The OAuth::Consumer instance returned by the OauthClient
The authenticated client instance returned by the respective client type (Oauth, Basic)
42 43 44 |
# File 'lib/jira/client.rb', line 42 def request_client @request_client end |
Instance Method Details
#Agile ⇒ Object
188 189 190 |
# File 'lib/jira/client.rb', line 188 def Agile JIRA::Resource::AgileFactory.new(self) end |
#ApplicationLink ⇒ Object
160 161 162 |
# File 'lib/jira/client.rb', line 160 def ApplicationLink JIRA::Resource::ApplicationLinkFactory.new(self) end |
#Attachment ⇒ Object
:nodoc:
128 129 130 |
# File 'lib/jira/client.rb', line 128 def Attachment # :nodoc: JIRA::Resource::AttachmentFactory.new(self) end |
#Comment ⇒ Object
:nodoc:
124 125 126 |
# File 'lib/jira/client.rb', line 124 def Comment # :nodoc: JIRA::Resource::CommentFactory.new(self) end |
#Component ⇒ Object
:nodoc:
100 101 102 |
# File 'lib/jira/client.rb', line 100 def Component # :nodoc: JIRA::Resource::ComponentFactory.new(self) end |
#Createmeta ⇒ Object
156 157 158 |
# File 'lib/jira/client.rb', line 156 def Createmeta JIRA::Resource::CreatemetaFactory.new(self) end |
#delete(path, headers = {}) ⇒ Object
HTTP methods without a body
193 194 195 |
# File 'lib/jira/client.rb', line 193 def delete(path, headers = {}) request(:delete, path, nil, merge_default_headers(headers)) end |
#Field ⇒ Object
:nodoc:
144 145 146 |
# File 'lib/jira/client.rb', line 144 def Field # :nodoc: JIRA::Resource::FieldFactory.new(self) end |
#Filter ⇒ Object
:nodoc:
96 97 98 |
# File 'lib/jira/client.rb', line 96 def Filter # :nodoc: JIRA::Resource::FilterFactory.new(self) end |
#get(path, headers = {}) ⇒ Object
197 198 199 |
# File 'lib/jira/client.rb', line 197 def get(path, headers = {}) request(:get, path, nil, merge_default_headers(headers)) end |
#head(path, headers = {}) ⇒ Object
201 202 203 |
# File 'lib/jira/client.rb', line 201 def head(path, headers = {}) request(:head, path, nil, merge_default_headers(headers)) end |
#Issue ⇒ Object
:nodoc:
92 93 94 |
# File 'lib/jira/client.rb', line 92 def Issue # :nodoc: JIRA::Resource::IssueFactory.new(self) end |
#Issuelink ⇒ Object
172 173 174 |
# File 'lib/jira/client.rb', line 172 def Issuelink JIRA::Resource::IssuelinkFactory.new(self) end |
#Issuelinktype ⇒ Object
176 177 178 |
# File 'lib/jira/client.rb', line 176 def Issuelinktype JIRA::Resource::IssuelinktypeFactory.new(self) end |
#Issuetype ⇒ Object
:nodoc:
108 109 110 |
# File 'lib/jira/client.rb', line 108 def Issuetype # :nodoc: JIRA::Resource::IssuetypeFactory.new(self) end |
#post(path, body = '', headers = {}) ⇒ Object
HTTP methods with a body
206 207 208 209 |
# File 'lib/jira/client.rb', line 206 def post(path, body = '', headers = {}) headers = {'Content-Type' => 'application/json'}.merge(headers) request(:post, path, body, merge_default_headers(headers)) end |
#Priority ⇒ Object
:nodoc:
112 113 114 |
# File 'lib/jira/client.rb', line 112 def Priority # :nodoc: JIRA::Resource::PriorityFactory.new(self) end |
#Project ⇒ Object
:nodoc:
88 89 90 |
# File 'lib/jira/client.rb', line 88 def Project # :nodoc: JIRA::Resource::ProjectFactory.new(self) end |
#put(path, body = '', headers = {}) ⇒ Object
211 212 213 214 |
# File 'lib/jira/client.rb', line 211 def put(path, body = '', headers = {}) headers = {'Content-Type' => 'application/json'}.merge(headers) request(:put, path, body, merge_default_headers(headers)) end |
#RapidView ⇒ Object
148 149 150 |
# File 'lib/jira/client.rb', line 148 def RapidView JIRA::Resource::RapidViewFactory.new(self) end |
#Remotelink ⇒ Object
180 181 182 |
# File 'lib/jira/client.rb', line 180 def Remotelink JIRA::Resource::RemotelinkFactory.new(self) end |
#request(http_method, path, body = '', headers = {}) ⇒ Object
Sends the specified HTTP request to the REST API through the appropriate method (oauth, basic).
218 219 220 221 |
# File 'lib/jira/client.rb', line 218 def request(http_method, path, body = '', headers={}) puts "#{http_method}: #{path} - [#{body}]" if @http_debug @request_client.request(http_method, path, body, headers) end |
#Resolution ⇒ Object
:nodoc:
120 121 122 |
# File 'lib/jira/client.rb', line 120 def Resolution # :nodoc: JIRA::Resource::ResolutionFactory.new(self) end |
#ServerInfo ⇒ Object
152 153 154 |
# File 'lib/jira/client.rb', line 152 def ServerInfo JIRA::Resource::ServerInfoFactory.new(self) end |
#Sprint ⇒ Object
184 185 186 |
# File 'lib/jira/client.rb', line 184 def Sprint JIRA::Resource::SprintFactory.new(self) end |
#Status ⇒ Object
:nodoc:
116 117 118 |
# File 'lib/jira/client.rb', line 116 def Status # :nodoc: JIRA::Resource::StatusFactory.new(self) end |
#Transition ⇒ Object
:nodoc:
140 141 142 |
# File 'lib/jira/client.rb', line 140 def Transition # :nodoc: JIRA::Resource::TransitionFactory.new(self) end |
#User ⇒ Object
:nodoc:
104 105 106 |
# File 'lib/jira/client.rb', line 104 def User # :nodoc: JIRA::Resource::UserFactory.new(self) end |
#Version ⇒ Object
:nodoc:
136 137 138 |
# File 'lib/jira/client.rb', line 136 def Version # :nodoc: JIRA::Resource::VersionFactory.new(self) end |
#Watcher ⇒ Object
164 165 166 |
# File 'lib/jira/client.rb', line 164 def Watcher JIRA::Resource::WatcherFactory.new(self) end |
#Webhook ⇒ Object
168 169 170 |
# File 'lib/jira/client.rb', line 168 def Webhook JIRA::Resource::WebhookFactory.new(self) end |
#Worklog ⇒ Object
:nodoc:
132 133 134 |
# File 'lib/jira/client.rb', line 132 def Worklog # :nodoc: JIRA::Resource::WorklogFactory.new(self) end |