jira-ruby 2.1.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/example.rb +8 -0
- data/lib/jira/client.rb +23 -7
- data/lib/jira/http_client.rb +2 -2
- data/lib/jira/oauth_client.rb +2 -0
- data/lib/jira/resource/issue_picker_suggestions.rb +24 -0
- data/lib/jira/resource/issue_picker_suggestions_issue.rb +10 -0
- data/lib/jira/resource/suggested_issue.rb +9 -0
- data/lib/jira/resource/user.rb +1 -1
- data/lib/jira/version.rb +1 -1
- data/lib/jira-ruby.rb +4 -0
- data/spec/integration/user_spec.rb +3 -3
- data/spec/jira/client_spec.rb +13 -0
- data/spec/jira/http_client_spec.rb +2 -2
- data/spec/jira/resource/issue_picker_suggestions_spec.rb +79 -0
- data/spec/jira/resource/jira_picker_suggestions_issue_spec.rb +18 -0
- metadata +38 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95a9c55b6f750bc29bdb34f6af24b252bbbf04317ca31ed9e76753a4c257f465
|
4
|
+
data.tar.gz: 56e109f946831308a8a7b30c699ebd5b6b5805c5724e3ec47ba3ac252d2df0f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba00e2efe10f65d2804c2c556774abab8c94d1fa746ca6c681cc7a967809bbb6309000b183049cdb9f8117dc2c8f0f60e22cbd77e6973736c7ca621989977509
|
7
|
+
data.tar.gz: bcfad2a8bcc354211e860ef7912eaedd202f189ccbedb03679032468d85425cc134d9e69dc1f4f8f4b0b238fa761cddbe21683e256379aafe29a1ca4d9d8a743
|
data/example.rb
CHANGED
@@ -166,6 +166,14 @@ client.Issue.jql(a_normal_jql_search, max_results: 500)
|
|
166
166
|
# # --------------------------
|
167
167
|
# issue.comments.first.save({"body" => "an updated comment frome example.rb"})
|
168
168
|
|
169
|
+
|
170
|
+
# # Add attachment to Issue
|
171
|
+
# # ------------------------
|
172
|
+
# issue = client.Issue.find('PROJ-1')
|
173
|
+
# attachment = issue.attachments.build
|
174
|
+
# attachment.save('file': '/path/to/file')
|
175
|
+
#
|
176
|
+
|
169
177
|
# List all available link types
|
170
178
|
# ------------------------------
|
171
179
|
pp client.Issuelinktype.all
|
data/lib/jira/client.rb
CHANGED
@@ -6,7 +6,7 @@ module JIRA
|
|
6
6
|
# This class is the main access point for all JIRA::Resource instances.
|
7
7
|
#
|
8
8
|
# The client must be initialized with an options hash containing
|
9
|
-
# configuration options.
|
9
|
+
# configuration options. The available options are:
|
10
10
|
#
|
11
11
|
# :site => 'http://localhost:2990',
|
12
12
|
# :context_path => '/jira',
|
@@ -29,6 +29,7 @@ module JIRA
|
|
29
29
|
# :proxy_port => nil,
|
30
30
|
# :proxy_username => nil,
|
31
31
|
# :proxy_password => nil,
|
32
|
+
# :use_cookies => nil,
|
32
33
|
# :additional_cookies => nil,
|
33
34
|
# :default_headers => {},
|
34
35
|
# :use_client_cert => false,
|
@@ -36,7 +37,9 @@ module JIRA
|
|
36
37
|
# :http_debug => false,
|
37
38
|
# :shared_secret => nil,
|
38
39
|
# :cert_path => nil,
|
39
|
-
# :key_path => nil
|
40
|
+
# :key_path => nil,
|
41
|
+
# :ssl_client_cert => nil,
|
42
|
+
# :ssl_client_key => nil
|
40
43
|
#
|
41
44
|
# See the JIRA::Base class methods for all of the available methods on these accessor
|
42
45
|
# objects.
|
@@ -77,6 +80,7 @@ module JIRA
|
|
77
80
|
:proxy_port,
|
78
81
|
:proxy_username,
|
79
82
|
:proxy_password,
|
83
|
+
:use_cookies,
|
80
84
|
:additional_cookies,
|
81
85
|
:default_headers,
|
82
86
|
:use_client_cert,
|
@@ -86,7 +90,9 @@ module JIRA
|
|
86
90
|
:base_url,
|
87
91
|
:shared_secret,
|
88
92
|
:cert_path,
|
89
|
-
:key_path
|
93
|
+
:key_path,
|
94
|
+
:ssl_client_cert,
|
95
|
+
:ssl_client_key
|
90
96
|
].freeze
|
91
97
|
|
92
98
|
DEFAULT_OPTIONS = {
|
@@ -110,10 +116,11 @@ module JIRA
|
|
110
116
|
raise ArgumentError, "Unknown option(s) given: #{unknown_options}" unless unknown_options.empty?
|
111
117
|
|
112
118
|
if options[:use_client_cert]
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
119
|
+
@options[:ssl_client_cert] = OpenSSL::X509::Certificate.new(File.read(@options[:cert_path])) if @options[:cert_path]
|
120
|
+
@options[:ssl_client_key] = OpenSSL::PKey::RSA.new(File.read(@options[:key_path])) if @options[:key_path]
|
121
|
+
|
122
|
+
raise ArgumentError, 'Options: :cert_path or :ssl_client_cert must be set when :use_client_cert is true' unless @options[:ssl_client_cert]
|
123
|
+
raise ArgumentError, 'Options: :key_path or :ssl_client_key must be set when :use_client_cert is true' unless @options[:ssl_client_key]
|
117
124
|
end
|
118
125
|
|
119
126
|
case options[:auth_type]
|
@@ -250,6 +257,10 @@ module JIRA
|
|
250
257
|
JIRA::Resource::IssuelinktypeFactory.new(self)
|
251
258
|
end
|
252
259
|
|
260
|
+
def IssuePickerSuggestions
|
261
|
+
JIRA::Resource::IssuePickerSuggestionsFactory.new(self)
|
262
|
+
end
|
263
|
+
|
253
264
|
def Remotelink
|
254
265
|
JIRA::Resource::RemotelinkFactory.new(self)
|
255
266
|
end
|
@@ -294,6 +305,11 @@ module JIRA
|
|
294
305
|
@request_client.request(http_method, path, body, headers)
|
295
306
|
end
|
296
307
|
|
308
|
+
# Stops sensitive client information from being displayed in logs
|
309
|
+
def inspect
|
310
|
+
"#<JIRA::Client:#{object_id}>"
|
311
|
+
end
|
312
|
+
|
297
313
|
protected
|
298
314
|
|
299
315
|
def merge_default_headers(headers)
|
data/lib/jira/http_client.rb
CHANGED
@@ -53,8 +53,8 @@ module JIRA
|
|
53
53
|
http_conn = http_class.new(uri.host, uri.port)
|
54
54
|
http_conn.use_ssl = @options[:use_ssl]
|
55
55
|
if @options[:use_client_cert]
|
56
|
-
http_conn.cert = @options[:
|
57
|
-
http_conn.key = @options[:
|
56
|
+
http_conn.cert = @options[:ssl_client_cert]
|
57
|
+
http_conn.key = @options[:ssl_client_key]
|
58
58
|
end
|
59
59
|
http_conn.verify_mode = @options[:ssl_verify_mode]
|
60
60
|
http_conn.ssl_version = @options[:ssl_version] if @options[:ssl_version]
|
data/lib/jira/oauth_client.rb
CHANGED
@@ -38,6 +38,8 @@ module JIRA
|
|
38
38
|
@options[:request_token_path] = @options[:context_path] + @options[:request_token_path]
|
39
39
|
@options[:authorize_path] = @options[:context_path] + @options[:authorize_path]
|
40
40
|
@options[:access_token_path] = @options[:context_path] + @options[:access_token_path]
|
41
|
+
# proxy_address does not exist in oauth's gem context but proxy does
|
42
|
+
@options[:proxy] = @options[:proxy_address] if @options[:proxy_address]
|
41
43
|
OAuth::Consumer.new(@options[:consumer_key], @options[:consumer_secret], @options)
|
42
44
|
end
|
43
45
|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module JIRA
|
2
|
+
module Resource
|
3
|
+
class IssuePickerSuggestionsFactory < JIRA::BaseFactory # :nodoc:
|
4
|
+
end
|
5
|
+
|
6
|
+
class IssuePickerSuggestions < JIRA::Base
|
7
|
+
has_many :sections, class: JIRA::Resource::IssuePickerSuggestionsIssue
|
8
|
+
|
9
|
+
def self.all(client, query = '', options = { current_jql: nil, current_issue_key: nil, current_project_id: nil, show_sub_tasks: nil, show_sub_tasks_parent: nil })
|
10
|
+
url = client.options[:rest_base_path] + "/issue/picker?query=#{CGI.escape(query)}"
|
11
|
+
|
12
|
+
url << "¤tJQL=#{CGI.escape(options[:current_jql])}" if options[:current_jql]
|
13
|
+
url << "¤tIssueKey=#{CGI.escape(options[:current_issue_key])}" if options[:current_issue_key]
|
14
|
+
url << "¤tProjectId=#{CGI.escape(options[:current_project_id])}" if options[:current_project_id]
|
15
|
+
url << "&showSubTasks=#{options[:show_sub_tasks]}" if options[:show_sub_tasks]
|
16
|
+
url << "&showSubTaskParent=#{options[:show_sub_task_parent]}" if options[:show_sub_task_parent]
|
17
|
+
|
18
|
+
response = client.get(url)
|
19
|
+
json = parse_json(response.body)
|
20
|
+
client.IssuePickerSuggestions.build(json)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/jira/resource/user.rb
CHANGED
@@ -18,7 +18,7 @@ module JIRA
|
|
18
18
|
|
19
19
|
# Cannot retrieve more than 1,000 users through the api, please see: https://jira.atlassian.com/browse/JRASERVER-65089
|
20
20
|
def self.all(client)
|
21
|
-
response = client.get("/rest/api/2/
|
21
|
+
response = client.get("/rest/api/2/users/search?username=_&maxResults=#{MAX_RESULTS}")
|
22
22
|
all_users = JSON.parse(response.body)
|
23
23
|
|
24
24
|
all_users.flatten.uniq.map do |user|
|
data/lib/jira/version.rb
CHANGED
data/lib/jira-ruby.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
$LOAD_PATH << __dir__
|
2
2
|
|
3
|
+
require 'active_support'
|
3
4
|
require 'active_support/inflector'
|
4
5
|
ActiveSupport::Inflector.inflections do |inflector|
|
5
6
|
inflector.singular /status$/, 'status'
|
@@ -25,6 +26,9 @@ require 'jira/resource/worklog'
|
|
25
26
|
require 'jira/resource/applinks'
|
26
27
|
require 'jira/resource/issuelinktype'
|
27
28
|
require 'jira/resource/issuelink'
|
29
|
+
require 'jira/resource/suggested_issue'
|
30
|
+
require 'jira/resource/issue_picker_suggestions_issue'
|
31
|
+
require 'jira/resource/issue_picker_suggestions'
|
28
32
|
require 'jira/resource/remotelink'
|
29
33
|
require 'jira/resource/sprint'
|
30
34
|
require 'jira/resource/sprint_report'
|
@@ -21,18 +21,18 @@ describe JIRA::Resource::User do
|
|
21
21
|
describe '#all' do
|
22
22
|
let(:client) do
|
23
23
|
client = double(options: { rest_base_path: '/jira/rest/api/2' })
|
24
|
-
allow(client).to receive(:get).with('/rest/api/2/
|
24
|
+
allow(client).to receive(:get).with('/rest/api/2/users/search?username=_&maxResults=1000').and_return(JIRA::Resource::UserFactory.new(client))
|
25
25
|
client
|
26
26
|
end
|
27
27
|
|
28
28
|
before do
|
29
29
|
allow(client).to receive(:get)
|
30
|
-
.with('/rest/api/2/
|
30
|
+
.with('/rest/api/2/users/search?username=_&maxResults=1000') { OpenStruct.new(body: '["User1"]') }
|
31
31
|
allow(client).to receive_message_chain(:User, :build).with('users') { [] }
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'gets users with maxResults of 1000' do
|
35
|
-
expect(client).to receive(:get).with('/rest/api/2/
|
35
|
+
expect(client).to receive(:get).with('/rest/api/2/users/search?username=_&maxResults=1000')
|
36
36
|
expect(client).to receive_message_chain(:User, :build).with('User1')
|
37
37
|
JIRA::Resource::User.all(client)
|
38
38
|
end
|
data/spec/jira/client_spec.rb
CHANGED
@@ -59,6 +59,19 @@ RSpec.shared_examples 'Client Common Tests' do
|
|
59
59
|
expect(subject.Project.find('123')).to eq(find_result)
|
60
60
|
end
|
61
61
|
end
|
62
|
+
|
63
|
+
describe 'SSL client options' do
|
64
|
+
context 'without certificate and key' do
|
65
|
+
let(:options) { { use_client_cert: true } }
|
66
|
+
subject { JIRA::Client.new(options) }
|
67
|
+
|
68
|
+
it 'raises an ArgumentError' do
|
69
|
+
expect { subject }.to raise_exception(ArgumentError, 'Options: :cert_path or :ssl_client_cert must be set when :use_client_cert is true')
|
70
|
+
options[:ssl_client_cert] = '<cert></cert>'
|
71
|
+
expect { subject }.to raise_exception(ArgumentError, 'Options: :key_path or :ssl_client_key must be set when :use_client_cert is true')
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
62
75
|
end
|
63
76
|
|
64
77
|
RSpec.shared_examples 'HttpClient tests' do
|
@@ -280,8 +280,8 @@ describe JIRA::HttpClient do
|
|
280
280
|
expect(http_conn).to receive(:use_ssl=).with(basic_client.options[:use_ssl])
|
281
281
|
expect(http_conn).to receive(:verify_mode=).with(basic_client.options[:ssl_verify_mode])
|
282
282
|
expect(http_conn).to receive(:read_timeout=).with(basic_client.options[:read_timeout])
|
283
|
-
expect(http_conn).to receive(:cert=).with(basic_client_cert_client.options[:
|
284
|
-
expect(http_conn).to receive(:key=).with(basic_client_cert_client.options[:
|
283
|
+
expect(http_conn).to receive(:cert=).with(basic_client_cert_client.options[:ssl_client_cert])
|
284
|
+
expect(http_conn).to receive(:key=).with(basic_client_cert_client.options[:ssl_client_key])
|
285
285
|
expect(basic_client_cert_client.http_conn(uri)).to eq(http_conn)
|
286
286
|
end
|
287
287
|
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe JIRA::Resource::IssuePickerSuggestions do
|
4
|
+
let(:client) do
|
5
|
+
double('client', options: {
|
6
|
+
rest_base_path: '/jira/rest/api/2'
|
7
|
+
})
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'relationships' do
|
11
|
+
subject do
|
12
|
+
JIRA::Resource::IssuePickerSuggestions.new(client, attrs: {
|
13
|
+
'sections' => [{ 'id' => 'hs'}, { 'id' => 'cs' }]
|
14
|
+
})
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'has the correct relationships' do
|
18
|
+
expect(subject).to have_many(:sections, JIRA::Resource::IssuePickerSuggestionsIssue)
|
19
|
+
expect(subject.sections.length).to eq(2)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '#all' do
|
24
|
+
let(:response) { double }
|
25
|
+
let(:issue_picker_suggestions) { double }
|
26
|
+
|
27
|
+
before do
|
28
|
+
allow(response).to receive(:body).and_return('{"sections":[{"id": "cs"}]}')
|
29
|
+
allow(client).to receive(:IssuePickerSuggestions).and_return(issue_picker_suggestions)
|
30
|
+
allow(issue_picker_suggestions).to receive(:build)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should autocomplete issues' do
|
34
|
+
allow(response).to receive(:body).and_return('{"sections":[{"id": "cs"}]}')
|
35
|
+
expect(client).to receive(:get).with('/jira/rest/api/2/issue/picker?query=query')
|
36
|
+
.and_return(response)
|
37
|
+
|
38
|
+
expect(client).to receive(:IssuePickerSuggestions).and_return(issue_picker_suggestions)
|
39
|
+
expect(issue_picker_suggestions).to receive(:build).with('sections' => [{ 'id' => 'cs' }])
|
40
|
+
|
41
|
+
JIRA::Resource::IssuePickerSuggestions.all(client, 'query')
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should autocomplete issues with current jql' do
|
45
|
+
expect(client).to receive(:get).with('/jira/rest/api/2/issue/picker?query=query¤tJQL=project+%3D+PR')
|
46
|
+
.and_return(response)
|
47
|
+
|
48
|
+
JIRA::Resource::IssuePickerSuggestions.all(client, 'query', current_jql: 'project = PR')
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'should autocomplete issues with current issue jey' do
|
52
|
+
expect(client).to receive(:get).with('/jira/rest/api/2/issue/picker?query=query¤tIssueKey=PR-42')
|
53
|
+
.and_return(response)
|
54
|
+
|
55
|
+
JIRA::Resource::IssuePickerSuggestions.all(client, 'query', current_issue_key: 'PR-42')
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'should autocomplete issues with current project id' do
|
59
|
+
expect(client).to receive(:get).with('/jira/rest/api/2/issue/picker?query=query¤tProjectId=PR')
|
60
|
+
.and_return(response)
|
61
|
+
|
62
|
+
JIRA::Resource::IssuePickerSuggestions.all(client, 'query', current_project_id: 'PR')
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'should autocomplete issues with show sub tasks' do
|
66
|
+
expect(client).to receive(:get).with('/jira/rest/api/2/issue/picker?query=query&showSubTasks=true')
|
67
|
+
.and_return(response)
|
68
|
+
|
69
|
+
JIRA::Resource::IssuePickerSuggestions.all(client, 'query', show_sub_tasks: true)
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should autocomplete issues with show sub tasks parent' do
|
73
|
+
expect(client).to receive(:get).with('/jira/rest/api/2/issue/picker?query=query&showSubTaskParent=true')
|
74
|
+
.and_return(response)
|
75
|
+
|
76
|
+
JIRA::Resource::IssuePickerSuggestions.all(client, 'query', show_sub_task_parent: true)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe JIRA::Resource::IssuePickerSuggestionsIssue do
|
4
|
+
let(:client) { double('client') }
|
5
|
+
|
6
|
+
describe 'relationships' do
|
7
|
+
subject do
|
8
|
+
JIRA::Resource::IssuePickerSuggestionsIssue.new(client, attrs: {
|
9
|
+
'issues' => [{ 'id' => '1'}, { 'id' => '2' }]
|
10
|
+
})
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'has the correct relationships' do
|
14
|
+
expect(subject).to have_many(:issues, JIRA::Resource::SuggestedIssue)
|
15
|
+
expect(subject.issues.length).to eq(2)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jira-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SUMO Heavy Industries
|
8
8
|
- test IO
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-12-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -57,42 +57,42 @@ dependencies:
|
|
57
57
|
name: oauth
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 0.5.0
|
63
60
|
- - "~>"
|
64
61
|
- !ruby/object:Gem::Version
|
65
62
|
version: '0.5'
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 0.5.0
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
68
|
version_requirements: !ruby/object:Gem::Requirement
|
69
69
|
requirements:
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: 0.5.0
|
73
70
|
- - "~>"
|
74
71
|
- !ruby/object:Gem::Version
|
75
72
|
version: '0.5'
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.5.0
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: guard
|
78
78
|
requirement: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 2.13.0
|
83
80
|
- - "~>"
|
84
81
|
- !ruby/object:Gem::Version
|
85
82
|
version: '2.13'
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 2.13.0
|
86
86
|
type: :development
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- - ">="
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
version: 2.13.0
|
93
90
|
- - "~>"
|
94
91
|
- !ruby/object:Gem::Version
|
95
92
|
version: '2.13'
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: 2.13.0
|
96
96
|
- !ruby/object:Gem::Dependency
|
97
97
|
name: guard-rspec
|
98
98
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,44 +171,44 @@ dependencies:
|
|
171
171
|
name: rspec
|
172
172
|
requirement: !ruby/object:Gem::Requirement
|
173
173
|
requirements:
|
174
|
-
- - ">="
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version: 3.0.0
|
177
174
|
- - "~>"
|
178
175
|
- !ruby/object:Gem::Version
|
179
176
|
version: '3.0'
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: 3.0.0
|
180
180
|
type: :development
|
181
181
|
prerelease: false
|
182
182
|
version_requirements: !ruby/object:Gem::Requirement
|
183
183
|
requirements:
|
184
|
-
- - ">="
|
185
|
-
- !ruby/object:Gem::Version
|
186
|
-
version: 3.0.0
|
187
184
|
- - "~>"
|
188
185
|
- !ruby/object:Gem::Version
|
189
186
|
version: '3.0'
|
187
|
+
- - ">="
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: 3.0.0
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
191
|
name: webmock
|
192
192
|
requirement: !ruby/object:Gem::Requirement
|
193
193
|
requirements:
|
194
|
-
- - ">="
|
195
|
-
- !ruby/object:Gem::Version
|
196
|
-
version: 1.18.0
|
197
194
|
- - "~>"
|
198
195
|
- !ruby/object:Gem::Version
|
199
196
|
version: '1.18'
|
197
|
+
- - ">="
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: 1.18.0
|
200
200
|
type: :development
|
201
201
|
prerelease: false
|
202
202
|
version_requirements: !ruby/object:Gem::Requirement
|
203
203
|
requirements:
|
204
|
-
- - ">="
|
205
|
-
- !ruby/object:Gem::Version
|
206
|
-
version: 1.18.0
|
207
204
|
- - "~>"
|
208
205
|
- !ruby/object:Gem::Version
|
209
206
|
version: '1.18'
|
207
|
+
- - ">="
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: 1.18.0
|
210
210
|
description: API for JIRA
|
211
|
-
email:
|
211
|
+
email:
|
212
212
|
executables: []
|
213
213
|
extensions: []
|
214
214
|
extra_rdoc_files: []
|
@@ -245,6 +245,8 @@ files:
|
|
245
245
|
- lib/jira/resource/field.rb
|
246
246
|
- lib/jira/resource/filter.rb
|
247
247
|
- lib/jira/resource/issue.rb
|
248
|
+
- lib/jira/resource/issue_picker_suggestions.rb
|
249
|
+
- lib/jira/resource/issue_picker_suggestions_issue.rb
|
248
250
|
- lib/jira/resource/issuelink.rb
|
249
251
|
- lib/jira/resource/issuelinktype.rb
|
250
252
|
- lib/jira/resource/issuetype.rb
|
@@ -257,6 +259,7 @@ files:
|
|
257
259
|
- lib/jira/resource/sprint.rb
|
258
260
|
- lib/jira/resource/sprint_report.rb
|
259
261
|
- lib/jira/resource/status.rb
|
262
|
+
- lib/jira/resource/suggested_issue.rb
|
260
263
|
- lib/jira/resource/transition.rb
|
261
264
|
- lib/jira/resource/user.rb
|
262
265
|
- lib/jira/resource/version.rb
|
@@ -299,8 +302,10 @@ files:
|
|
299
302
|
- spec/jira/resource/createmeta_spec.rb
|
300
303
|
- spec/jira/resource/field_spec.rb
|
301
304
|
- spec/jira/resource/filter_spec.rb
|
305
|
+
- spec/jira/resource/issue_picker_suggestions_spec.rb
|
302
306
|
- spec/jira/resource/issue_spec.rb
|
303
307
|
- spec/jira/resource/issuelink_spec.rb
|
308
|
+
- spec/jira/resource/jira_picker_suggestions_issue_spec.rb
|
304
309
|
- spec/jira/resource/project_factory_spec.rb
|
305
310
|
- spec/jira/resource/project_spec.rb
|
306
311
|
- spec/jira/resource/sprint_spec.rb
|
@@ -370,7 +375,7 @@ licenses:
|
|
370
375
|
- MIT
|
371
376
|
metadata:
|
372
377
|
source_code_uri: https://github.com/sumoheavy/jira-ruby
|
373
|
-
post_install_message:
|
378
|
+
post_install_message:
|
374
379
|
rdoc_options: []
|
375
380
|
require_paths:
|
376
381
|
- lib
|
@@ -385,8 +390,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
385
390
|
- !ruby/object:Gem::Version
|
386
391
|
version: '0'
|
387
392
|
requirements: []
|
388
|
-
rubygems_version: 3.
|
389
|
-
signing_key:
|
393
|
+
rubygems_version: 3.1.6
|
394
|
+
signing_key:
|
390
395
|
specification_version: 4
|
391
396
|
summary: Ruby Gem for use with the Atlassian JIRA REST API
|
392
397
|
test_files:
|
@@ -423,8 +428,10 @@ test_files:
|
|
423
428
|
- spec/jira/resource/createmeta_spec.rb
|
424
429
|
- spec/jira/resource/field_spec.rb
|
425
430
|
- spec/jira/resource/filter_spec.rb
|
431
|
+
- spec/jira/resource/issue_picker_suggestions_spec.rb
|
426
432
|
- spec/jira/resource/issue_spec.rb
|
427
433
|
- spec/jira/resource/issuelink_spec.rb
|
434
|
+
- spec/jira/resource/jira_picker_suggestions_issue_spec.rb
|
428
435
|
- spec/jira/resource/project_factory_spec.rb
|
429
436
|
- spec/jira/resource/project_spec.rb
|
430
437
|
- spec/jira/resource/sprint_spec.rb
|