jira-ruby 1.5.0 → 1.6.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.
Files changed (88) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +7 -1
  3. data/Guardfile +1 -1
  4. data/Rakefile +4 -5
  5. data/http-basic-example.rb +13 -12
  6. data/jira-ruby.gemspec +9 -10
  7. data/lib/jira-ruby.rb +5 -2
  8. data/lib/jira/base.rb +49 -48
  9. data/lib/jira/base_factory.rb +1 -4
  10. data/lib/jira/client.rb +29 -20
  11. data/lib/jira/has_many_proxy.rb +0 -1
  12. data/lib/jira/http_client.rb +9 -10
  13. data/lib/jira/http_error.rb +3 -5
  14. data/lib/jira/oauth_client.rb +19 -20
  15. data/lib/jira/request_client.rb +3 -4
  16. data/lib/jira/resource/agile.rb +10 -8
  17. data/lib/jira/resource/applinks.rb +5 -8
  18. data/lib/jira/resource/attachment.rb +1 -2
  19. data/lib/jira/resource/board.rb +84 -0
  20. data/lib/jira/resource/comment.rb +0 -2
  21. data/lib/jira/resource/component.rb +1 -3
  22. data/lib/jira/resource/createmeta.rb +12 -14
  23. data/lib/jira/resource/field.rb +22 -22
  24. data/lib/jira/resource/filter.rb +2 -2
  25. data/lib/jira/resource/issue.rb +41 -39
  26. data/lib/jira/resource/issuelink.rb +3 -5
  27. data/lib/jira/resource/issuelinktype.rb +0 -1
  28. data/lib/jira/resource/issuetype.rb +1 -3
  29. data/lib/jira/resource/priority.rb +1 -3
  30. data/lib/jira/resource/project.rb +5 -7
  31. data/lib/jira/resource/rapidview.rb +28 -7
  32. data/lib/jira/resource/remotelink.rb +1 -4
  33. data/lib/jira/resource/resolution.rb +2 -4
  34. data/lib/jira/resource/serverinfo.rb +1 -2
  35. data/lib/jira/resource/sprint.rb +82 -18
  36. data/lib/jira/resource/sprint_report.rb +8 -0
  37. data/lib/jira/resource/status.rb +1 -3
  38. data/lib/jira/resource/transition.rb +2 -6
  39. data/lib/jira/resource/user.rb +12 -2
  40. data/lib/jira/resource/version.rb +1 -3
  41. data/lib/jira/resource/watcher.rb +1 -5
  42. data/lib/jira/resource/webhook.rb +3 -6
  43. data/lib/jira/resource/worklog.rb +3 -5
  44. data/lib/jira/version.rb +1 -1
  45. data/lib/tasks/generate.rake +4 -4
  46. data/spec/integration/attachment_spec.rb +15 -16
  47. data/spec/integration/comment_spec.rb +31 -34
  48. data/spec/integration/component_spec.rb +21 -24
  49. data/spec/integration/field_spec.rb +15 -18
  50. data/spec/integration/issue_spec.rb +44 -48
  51. data/spec/integration/issuelinktype_spec.rb +8 -11
  52. data/spec/integration/issuetype_spec.rb +5 -7
  53. data/spec/integration/priority_spec.rb +5 -8
  54. data/spec/integration/project_spec.rb +13 -20
  55. data/spec/integration/rapidview_spec.rb +17 -10
  56. data/spec/integration/resolution_spec.rb +7 -10
  57. data/spec/integration/status_spec.rb +5 -8
  58. data/spec/integration/transition_spec.rb +17 -20
  59. data/spec/integration/user_spec.rb +24 -8
  60. data/spec/integration/version_spec.rb +21 -25
  61. data/spec/integration/watcher_spec.rb +28 -34
  62. data/spec/integration/webhook.rb +8 -17
  63. data/spec/integration/worklog_spec.rb +30 -34
  64. data/spec/jira/base_factory_spec.rb +11 -12
  65. data/spec/jira/base_spec.rb +204 -228
  66. data/spec/jira/client_spec.rb +26 -28
  67. data/spec/jira/has_many_proxy_spec.rb +11 -12
  68. data/spec/jira/http_client_spec.rb +51 -52
  69. data/spec/jira/http_error_spec.rb +7 -9
  70. data/spec/jira/oauth_client_spec.rb +44 -46
  71. data/spec/jira/request_client_spec.rb +5 -5
  72. data/spec/jira/resource/agile_spec.rb +5 -7
  73. data/spec/jira/resource/attachment_spec.rb +25 -26
  74. data/spec/jira/resource/board_spec.rb +175 -0
  75. data/spec/jira/resource/createmeta_spec.rb +29 -32
  76. data/spec/jira/resource/field_spec.rb +42 -48
  77. data/spec/jira/resource/filter_spec.rb +40 -40
  78. data/spec/jira/resource/issue_spec.rb +87 -89
  79. data/spec/jira/resource/issuelink_spec.rb +1 -1
  80. data/spec/jira/resource/project_factory_spec.rb +2 -4
  81. data/spec/jira/resource/project_spec.rb +33 -33
  82. data/spec/jira/resource/sprint_spec.rb +78 -0
  83. data/spec/jira/resource/user_factory_spec.rb +6 -8
  84. data/spec/jira/resource/worklog_spec.rb +9 -11
  85. data/spec/spec_helper.rb +8 -9
  86. data/spec/support/clients_helper.rb +4 -4
  87. data/spec/support/shared_examples/integration.rb +60 -77
  88. metadata +59 -53
@@ -1,19 +1,18 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe JIRA::Resource::UserFactory do
4
-
5
- let(:client) {
4
+ let(:client) do
6
5
  instance_double('Client', options: { rest_base_path: '/jira/rest/api/2' })
7
- }
6
+ end
8
7
 
9
8
  subject { JIRA::Resource::UserFactory.new(client) }
10
9
 
11
- describe "#myself" do
12
- let(:response) {
10
+ describe '#myself' do
11
+ let(:response) do
13
12
  instance_double(
14
13
  'Response', body: get_mock_response('user_username=admin.json')
15
14
  )
16
- }
15
+ end
17
16
 
18
17
  let(:user) { subject.myself }
19
18
 
@@ -23,11 +22,10 @@ describe JIRA::Resource::UserFactory do
23
22
  ).and_return(response)
24
23
  end
25
24
 
26
- it "returns a JIRA::Resource::User with correct attrs" do
25
+ it 'returns a JIRA::Resource::User with correct attrs' do
27
26
  expect(user).to be_a(JIRA::Resource::User)
28
27
  expect(user.name).to eq('admin')
29
28
  expect(user.emailAddress).to eq('admin@example.com')
30
29
  end
31
30
  end
32
-
33
31
  end
@@ -1,18 +1,17 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe JIRA::Resource::Worklog do
4
+ let(:client) { double }
4
5
 
5
- let(:client) { double() }
6
-
7
- describe "relationships" do
8
- subject {
9
- JIRA::Resource::Worklog.new(client, :issue_id => '99999', :attrs => {
10
- 'author' => {'foo' => 'bar'},
11
- 'updateAuthor' => {'foo' => 'bar'}
12
- })
13
- }
6
+ describe 'relationships' do
7
+ subject do
8
+ JIRA::Resource::Worklog.new(client, issue_id: '99999', attrs: {
9
+ 'author' => { 'foo' => 'bar' },
10
+ 'updateAuthor' => { 'foo' => 'bar' }
11
+ })
12
+ end
14
13
 
15
- it "has the correct relationships" do
14
+ it 'has the correct relationships' do
16
15
  expect(subject).to have_one(:author, JIRA::Resource::User)
17
16
  expect(subject.author.foo).to eq('bar')
18
17
 
@@ -20,5 +19,4 @@ describe JIRA::Resource::Worklog do
20
19
  expect(subject.update_author.foo).to eq('bar')
21
20
  end
22
21
  end
23
-
24
22
  end
@@ -2,7 +2,9 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  require 'rubygems'
3
3
  require 'bundler/setup'
4
4
  require 'webmock/rspec'
5
- Dir["./spec/support/**/*.rb"].each {|f| require f}
5
+ require 'pry'
6
+
7
+ Dir['./spec/support/**/*.rb'].each { |f| require f }
6
8
 
7
9
  require 'jira-ruby'
8
10
 
@@ -10,13 +12,10 @@ RSpec.configure do |config|
10
12
  config.extend ClientsHelper
11
13
  end
12
14
 
13
-
14
15
  def get_mock_response(file, value_if_file_not_found = false)
15
- begin
16
- file.sub!('?', '_') # we have to replace this character on Windows machine
17
- File.read(File.join(File.dirname(__FILE__), 'mock_responses/', file))
18
- rescue Errno::ENOENT => e
19
- raise e if value_if_file_not_found == false
20
- value_if_file_not_found
21
- end
16
+ file.sub!('?', '_') # we have to replace this character on Windows machine
17
+ File.read(File.join(File.dirname(__FILE__), 'mock_responses/', file))
18
+ rescue Errno::ENOENT => e
19
+ raise e if value_if_file_not_found == false
20
+ value_if_file_not_found
22
21
  end
@@ -2,12 +2,12 @@ module ClientsHelper
2
2
  def with_each_client
3
3
  clients = {}
4
4
 
5
- oauth_client = JIRA::Client.new({ :consumer_key => 'foo', :consumer_secret => 'bar' })
5
+ oauth_client = JIRA::Client.new(consumer_key: 'foo', consumer_secret: 'bar')
6
6
  oauth_client.set_access_token('abc', '123')
7
- clients["http://localhost:2990"] = oauth_client
7
+ clients['http://localhost:2990'] = oauth_client
8
8
 
9
- basic_client = JIRA::Client.new({ :username => 'foo', :password => 'bar', :auth_type => :basic, :use_ssl => false })
10
- clients["http://foo:bar@localhost:2990"] = basic_client
9
+ basic_client = JIRA::Client.new(username: 'foo', password: 'bar', auth_type: :basic, use_ssl: false)
10
+ clients['http://foo:bar@localhost:2990'] = basic_client
11
11
 
12
12
  clients.each do |site_url, client|
13
13
  yield site_url, client
@@ -1,43 +1,39 @@
1
1
  require 'cgi'
2
2
 
3
3
  def get_mock_from_path(method, options = {})
4
- if defined? belongs_to
5
- prefix = belongs_to.path_component + '/'
6
- else
7
- prefix = ''
8
- end
9
-
10
- if options[:url]
11
- url = options[:url]
12
- elsif options[:key]
13
- url = described_class.singular_path(client, options[:key], prefix)
14
- else
15
- url = described_class.collection_path(client, prefix)
16
- end
4
+ prefix = if defined? belongs_to
5
+ belongs_to.path_component + '/'
6
+ else
7
+ ''
8
+ end
9
+
10
+ url = if options[:url]
11
+ options[:url]
12
+ elsif options[:key]
13
+ described_class.singular_path(client, options[:key], prefix)
14
+ else
15
+ described_class.collection_path(client, prefix)
16
+ end
17
17
  file_path = url.sub(client.options[:rest_base_path], '')
18
18
  file_path = file_path + '.' + options[:suffix] if options[:suffix]
19
19
  file_path = file_path + '.' + method.to_s unless method == :get
20
- value_if_not_found = options.keys.include?(:value_if_not_found) ? options[:value_if_not_found] : false
20
+ value_if_not_found = options.key?(:value_if_not_found) ? options[:value_if_not_found] : false
21
21
  get_mock_response("#{file_path}.json", value_if_not_found)
22
22
  end
23
23
 
24
24
  def class_basename
25
- described_class.name.split('::').last
25
+ described_class.name.split('::').last
26
26
  end
27
27
 
28
28
  def options
29
29
  options = {}
30
- if defined? belongs_to
31
- options[belongs_to.to_sym] = belongs_to
32
- end
30
+ options[belongs_to.to_sym] = belongs_to if defined? belongs_to
33
31
  options
34
32
  end
35
33
 
36
34
  def prefix
37
35
  prefix = '/'
38
- if defined? belongs_to
39
- prefix = belongs_to.path_component + '/'
40
- end
36
+ prefix = belongs_to.path_component + '/' if defined? belongs_to
41
37
  prefix
42
38
  end
43
39
 
@@ -49,73 +45,66 @@ def build_receiver
49
45
  end
50
46
  end
51
47
 
52
- shared_examples "a resource" do
53
-
54
- it "gracefully handles non-json responses" do
48
+ shared_examples 'a resource' do
49
+ it 'gracefully handles non-json responses' do
55
50
  if defined? target
56
51
  subject = target
57
52
  else
58
53
  subject = client.send(class_basename).build(described_class.key_attribute.to_s => '99999')
59
54
  end
60
- stub_request(:put, site_url + subject.url).
61
- to_return(:status => 405, :body => "<html><body>Some HTML</body></html>")
55
+ stub_request(:put, site_url + subject.url)
56
+ .to_return(status: 405, body: '<html><body>Some HTML</body></html>')
62
57
  expect(subject.save('foo' => 'bar')).to be_falsey
63
58
  expect(lambda do
64
59
  expect(subject.save!('foo' => 'bar')).to be_falsey
65
60
  end).to raise_error(JIRA::HTTPError)
66
61
  end
67
-
68
62
  end
69
63
 
70
- shared_examples "a resource with a collection GET endpoint" do
71
-
72
- it "should get the collection" do
73
- stub_request(:get, site_url + described_class.collection_path(client)).
74
- to_return(:status => 200, :body => get_mock_from_path(:get))
64
+ shared_examples 'a resource with a collection GET endpoint' do
65
+ it 'should get the collection' do
66
+ stub_request(:get, site_url + described_class.collection_path(client))
67
+ .to_return(status: 200, body: get_mock_from_path(:get))
75
68
  collection = build_receiver.all
76
69
 
77
70
  expect(collection.length).to eq(expected_collection_length)
78
71
  expect(collection.first).to have_attributes(expected_attributes)
79
72
  end
80
-
81
73
  end
82
74
 
83
- shared_examples "a resource with JQL inputs and a collection GET endpoint" do
84
-
85
- it "should get the collection" do
75
+ shared_examples 'a resource with JQL inputs and a collection GET endpoint' do
76
+ it 'should get the collection' do
86
77
  stub_request(
87
78
  :get,
88
79
  site_url +
89
80
  client.options[:rest_base_path] +
90
81
  '/search?jql=' +
91
82
  CGI.escape(jql_query_string)
92
- ).to_return(:status => 200, :body => get_mock_response('issue.json'))
83
+ ).to_return(status: 200, body: get_mock_response('issue.json'))
93
84
 
94
85
  collection = build_receiver.jql(jql_query_string)
95
86
 
96
87
  expect(collection.length).to eq(expected_collection_length)
97
88
  expect(collection.first).to have_attributes(expected_attributes)
98
89
  end
99
-
100
90
  end
101
91
 
102
- shared_examples "a resource with a singular GET endpoint" do
103
-
104
- it "GETs a single resource" do
92
+ shared_examples 'a resource with a singular GET endpoint' do
93
+ it 'GETs a single resource' do
105
94
  # E.g., for JIRA::Resource::Project, we need to call
106
95
  # client.Project.find()
107
- stub_request(:get, site_url + described_class.singular_path(client, key, prefix)).
108
- to_return(:status => 200, :body => get_mock_from_path(:get, :key => key))
96
+ stub_request(:get, site_url + described_class.singular_path(client, key, prefix))
97
+ .to_return(status: 200, body: get_mock_from_path(:get, key: key))
109
98
  subject = client.send(class_basename).find(key, options)
110
99
 
111
100
  expect(subject).to have_attributes(expected_attributes)
112
101
  end
113
102
 
114
- it "builds and fetches a single resource" do
103
+ it 'builds and fetches a single resource' do
115
104
  # E.g., for JIRA::Resource::Project, we need to call
116
105
  # client.Project.build('key' => 'ABC123')
117
- stub_request(:get, site_url + described_class.singular_path(client, key, prefix)).
118
- to_return(:status => 200, :body => get_mock_from_path(:get, :key => key))
106
+ stub_request(:get, site_url + described_class.singular_path(client, key, prefix))
107
+ .to_return(status: 200, body: get_mock_from_path(:get, key: key))
119
108
 
120
109
  subject = build_receiver.build(described_class.key_attribute.to_s => key)
121
110
  subject.fetch
@@ -123,48 +112,45 @@ shared_examples "a resource with a singular GET endpoint" do
123
112
  expect(subject).to have_attributes(expected_attributes)
124
113
  end
125
114
 
126
- it "handles a 404" do
127
- stub_request(:get, site_url + described_class.singular_path(client, '99999', prefix)).
128
- to_return(:status => 404, :body => '{"errorMessages":["'+class_basename+' Does Not Exist"],"errors": {}}')
129
- expect( lambda do
115
+ it 'handles a 404' do
116
+ stub_request(:get, site_url + described_class.singular_path(client, '99999', prefix))
117
+ .to_return(status: 404, body: '{"errorMessages":["' + class_basename + ' Does Not Exist"],"errors": {}}')
118
+ expect(lambda do
130
119
  client.send(class_basename).find('99999', options)
131
120
  end).to raise_exception(JIRA::HTTPError)
132
121
  end
133
122
  end
134
123
 
135
- shared_examples "a resource with a DELETE endpoint" do
136
- it "deletes a resource" do
124
+ shared_examples 'a resource with a DELETE endpoint' do
125
+ it 'deletes a resource' do
137
126
  # E.g., for JIRA::Resource::Project, we need to call
138
127
  # client.Project.delete()
139
- stub_request(:delete, site_url + described_class.singular_path(client, key, prefix)).
140
- to_return(:status => 204, :body => nil)
128
+ stub_request(:delete, site_url + described_class.singular_path(client, key, prefix))
129
+ .to_return(status: 204, body: nil)
141
130
 
142
131
  subject = build_receiver.build(described_class.key_attribute.to_s => key)
143
132
  expect(subject.delete).to be_truthy
144
133
  end
145
134
  end
146
135
 
147
- shared_examples "a resource with a POST endpoint" do
148
-
149
- it "saves a new resource" do
150
- stub_request(:post, site_url + described_class.collection_path(client, prefix)).
151
- to_return(:status => 201, :body => get_mock_from_path(:post))
136
+ shared_examples 'a resource with a POST endpoint' do
137
+ it 'saves a new resource' do
138
+ stub_request(:post, site_url + described_class.collection_path(client, prefix))
139
+ .to_return(status: 201, body: get_mock_from_path(:post))
152
140
  subject = build_receiver.build
153
141
  expect(subject.save(attributes_for_post)).to be_truthy
154
142
  expected_attributes_from_post.each do |method_name, value|
155
143
  expect(subject.send(method_name)).to eq(value)
156
144
  end
157
145
  end
158
-
159
146
  end
160
147
 
161
- shared_examples "a resource with a PUT endpoint" do
162
-
163
- it "saves an existing component" do
164
- stub_request(:get, site_url + described_class.singular_path(client, key, prefix)).
165
- to_return(:status => 200, :body => get_mock_from_path(:get, :key =>key))
166
- stub_request(:put, site_url + described_class.singular_path(client, key, prefix)).
167
- to_return(:status => 200, :body => get_mock_from_path(:put, :key => key, :value_if_not_found => nil))
148
+ shared_examples 'a resource with a PUT endpoint' do
149
+ it 'saves an existing component' do
150
+ stub_request(:get, site_url + described_class.singular_path(client, key, prefix))
151
+ .to_return(status: 200, body: get_mock_from_path(:get, key: key))
152
+ stub_request(:put, site_url + described_class.singular_path(client, key, prefix))
153
+ .to_return(status: 200, body: get_mock_from_path(:put, key: key, value_if_not_found: nil))
168
154
  subject = build_receiver.build(described_class.key_attribute.to_s => key)
169
155
  subject.fetch
170
156
  expect(subject.save(attributes_for_put)).to be_truthy
@@ -172,23 +158,20 @@ shared_examples "a resource with a PUT endpoint" do
172
158
  expect(subject.send(method_name)).to eq(value)
173
159
  end
174
160
  end
175
-
176
161
  end
177
162
 
178
163
  shared_examples 'a resource with a PUT endpoint that rejects invalid fields' do
179
-
180
- it "fails to save with an invalid field" do
181
- stub_request(:get, site_url + described_class.singular_path(client, key)).
182
- to_return(:status => 200, :body => get_mock_from_path(:get, :key => key))
183
- stub_request(:put, site_url + described_class.singular_path(client, key)).
184
- to_return(:status => 400, :body => get_mock_from_path(:put, :key => key, :suffix => "invalid"))
164
+ it 'fails to save with an invalid field' do
165
+ stub_request(:get, site_url + described_class.singular_path(client, key))
166
+ .to_return(status: 200, body: get_mock_from_path(:get, key: key))
167
+ stub_request(:put, site_url + described_class.singular_path(client, key))
168
+ .to_return(status: 400, body: get_mock_from_path(:put, key: key, suffix: 'invalid'))
185
169
  subject = client.send(class_basename).build(described_class.key_attribute.to_s => key)
186
170
  subject.fetch
187
171
 
188
- expect(subject.save('fields'=> {'invalid' => 'field'})).to be_falsey
172
+ expect(subject.save('fields' => { 'invalid' => 'field' })).to be_falsey
189
173
  expect(lambda do
190
- subject.save!('fields'=> {'invalid' => 'field'})
174
+ subject.save!('fields' => { 'invalid' => 'field' })
191
175
  end).to raise_error(JIRA::HTTPError)
192
176
  end
193
-
194
177
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jira-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - SUMO Heavy Industries
@@ -9,30 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-01-19 00:00:00.000000000 Z
12
+ date: 2018-09-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: oauth
15
+ name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '0.5'
21
18
  - - ">="
22
19
  - !ruby/object:Gem::Version
23
- version: 0.5.0
20
+ version: '0'
24
21
  type: :runtime
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
27
24
  requirements:
28
- - - "~>"
29
- - !ruby/object:Gem::Version
30
- version: '0.5'
31
25
  - - ">="
32
26
  - !ruby/object:Gem::Version
33
- version: 0.5.0
27
+ version: '0'
34
28
  - !ruby/object:Gem::Dependency
35
- name: activesupport
29
+ name: multipart-post
36
30
  requirement: !ruby/object:Gem::Requirement
37
31
  requirements:
38
32
  - - ">="
@@ -46,153 +40,159 @@ dependencies:
46
40
  - !ruby/object:Gem::Version
47
41
  version: '0'
48
42
  - !ruby/object:Gem::Dependency
49
- name: multipart-post
43
+ name: oauth
50
44
  requirement: !ruby/object:Gem::Requirement
51
45
  requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '0.5'
52
49
  - - ">="
53
50
  - !ruby/object:Gem::Version
54
- version: '0'
51
+ version: 0.5.0
55
52
  type: :runtime
56
53
  prerelease: false
57
54
  version_requirements: !ruby/object:Gem::Requirement
58
55
  requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: '0.5'
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.5.0
62
62
  - !ruby/object:Gem::Dependency
63
- name: railties
63
+ name: guard
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.13'
66
69
  - - ">="
67
70
  - !ruby/object:Gem::Version
68
- version: '0'
71
+ version: 2.13.0
69
72
  type: :development
70
73
  prerelease: false
71
74
  version_requirements: !ruby/object:Gem::Requirement
72
75
  requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: '2.13'
73
79
  - - ">="
74
80
  - !ruby/object:Gem::Version
75
- version: '0'
81
+ version: 2.13.0
76
82
  - !ruby/object:Gem::Dependency
77
- name: webmock
83
+ name: guard-rspec
78
84
  requirement: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '1.18'
88
+ version: '4.6'
83
89
  - - ">="
84
90
  - !ruby/object:Gem::Version
85
- version: 1.18.0
91
+ version: 4.6.5
86
92
  type: :development
87
93
  prerelease: false
88
94
  version_requirements: !ruby/object:Gem::Requirement
89
95
  requirements:
90
96
  - - "~>"
91
97
  - !ruby/object:Gem::Version
92
- version: '1.18'
98
+ version: '4.6'
93
99
  - - ">="
94
100
  - !ruby/object:Gem::Version
95
- version: 1.18.0
101
+ version: 4.6.5
96
102
  - !ruby/object:Gem::Dependency
97
- name: rspec
103
+ name: pry
98
104
  requirement: !ruby/object:Gem::Requirement
99
105
  requirements:
100
106
  - - "~>"
101
107
  - !ruby/object:Gem::Version
102
- version: '3.0'
108
+ version: '0.10'
103
109
  - - ">="
104
110
  - !ruby/object:Gem::Version
105
- version: 3.0.0
111
+ version: 0.10.3
106
112
  type: :development
107
113
  prerelease: false
108
114
  version_requirements: !ruby/object:Gem::Requirement
109
115
  requirements:
110
116
  - - "~>"
111
117
  - !ruby/object:Gem::Version
112
- version: '3.0'
118
+ version: '0.10'
113
119
  - - ">="
114
120
  - !ruby/object:Gem::Version
115
- version: 3.0.0
121
+ version: 0.10.3
116
122
  - !ruby/object:Gem::Dependency
117
- name: rake
123
+ name: railties
118
124
  requirement: !ruby/object:Gem::Requirement
119
125
  requirements:
120
- - - "~>"
121
- - !ruby/object:Gem::Version
122
- version: '10.3'
123
126
  - - ">="
124
127
  - !ruby/object:Gem::Version
125
- version: 10.3.2
128
+ version: '0'
126
129
  type: :development
127
130
  prerelease: false
128
131
  version_requirements: !ruby/object:Gem::Requirement
129
132
  requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: '10.3'
133
133
  - - ">="
134
134
  - !ruby/object:Gem::Version
135
- version: 10.3.2
135
+ version: '0'
136
136
  - !ruby/object:Gem::Dependency
137
- name: guard
137
+ name: rake
138
138
  requirement: !ruby/object:Gem::Requirement
139
139
  requirements:
140
140
  - - "~>"
141
141
  - !ruby/object:Gem::Version
142
- version: '2.13'
142
+ version: '10.3'
143
143
  - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 2.13.0
145
+ version: 10.3.2
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '2.13'
152
+ version: '10.3'
153
153
  - - ">="
154
154
  - !ruby/object:Gem::Version
155
- version: 2.13.0
155
+ version: 10.3.2
156
156
  - !ruby/object:Gem::Dependency
157
- name: guard-rspec
157
+ name: rspec
158
158
  requirement: !ruby/object:Gem::Requirement
159
159
  requirements:
160
160
  - - "~>"
161
161
  - !ruby/object:Gem::Version
162
- version: '4.6'
162
+ version: '3.0'
163
163
  - - ">="
164
164
  - !ruby/object:Gem::Version
165
- version: 4.6.5
165
+ version: 3.0.0
166
166
  type: :development
167
167
  prerelease: false
168
168
  version_requirements: !ruby/object:Gem::Requirement
169
169
  requirements:
170
170
  - - "~>"
171
171
  - !ruby/object:Gem::Version
172
- version: '4.6'
172
+ version: '3.0'
173
173
  - - ">="
174
174
  - !ruby/object:Gem::Version
175
- version: 4.6.5
175
+ version: 3.0.0
176
176
  - !ruby/object:Gem::Dependency
177
- name: pry
177
+ name: webmock
178
178
  requirement: !ruby/object:Gem::Requirement
179
179
  requirements:
180
180
  - - "~>"
181
181
  - !ruby/object:Gem::Version
182
- version: '0.10'
182
+ version: '1.18'
183
183
  - - ">="
184
184
  - !ruby/object:Gem::Version
185
- version: 0.10.3
185
+ version: 1.18.0
186
186
  type: :development
187
187
  prerelease: false
188
188
  version_requirements: !ruby/object:Gem::Requirement
189
189
  requirements:
190
190
  - - "~>"
191
191
  - !ruby/object:Gem::Version
192
- version: '0.10'
192
+ version: '1.18'
193
193
  - - ">="
194
194
  - !ruby/object:Gem::Version
195
- version: 0.10.3
195
+ version: 1.18.0
196
196
  description: API for JIRA
197
197
  email:
198
198
  executables: []
@@ -222,6 +222,7 @@ files:
222
222
  - lib/jira/resource/agile.rb
223
223
  - lib/jira/resource/applinks.rb
224
224
  - lib/jira/resource/attachment.rb
225
+ - lib/jira/resource/board.rb
225
226
  - lib/jira/resource/comment.rb
226
227
  - lib/jira/resource/component.rb
227
228
  - lib/jira/resource/createmeta.rb
@@ -238,6 +239,7 @@ files:
238
239
  - lib/jira/resource/resolution.rb
239
240
  - lib/jira/resource/serverinfo.rb
240
241
  - lib/jira/resource/sprint.rb
242
+ - lib/jira/resource/sprint_report.rb
241
243
  - lib/jira/resource/status.rb
242
244
  - lib/jira/resource/transition.rb
243
245
  - lib/jira/resource/user.rb
@@ -276,6 +278,7 @@ files:
276
278
  - spec/jira/request_client_spec.rb
277
279
  - spec/jira/resource/agile_spec.rb
278
280
  - spec/jira/resource/attachment_spec.rb
281
+ - spec/jira/resource/board_spec.rb
279
282
  - spec/jira/resource/createmeta_spec.rb
280
283
  - spec/jira/resource/field_spec.rb
281
284
  - spec/jira/resource/filter_spec.rb
@@ -283,6 +286,7 @@ files:
283
286
  - spec/jira/resource/issuelink_spec.rb
284
287
  - spec/jira/resource/project_factory_spec.rb
285
288
  - spec/jira/resource/project_spec.rb
289
+ - spec/jira/resource/sprint_spec.rb
286
290
  - spec/jira/resource/user_factory_spec.rb
287
291
  - spec/jira/resource/worklog_spec.rb
288
292
  - spec/mock_responses/board/1.json
@@ -365,7 +369,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
365
369
  version: '0'
366
370
  requirements: []
367
371
  rubyforge_project: jira-ruby
368
- rubygems_version: 2.6.14
372
+ rubygems_version: 2.7.4
369
373
  signing_key:
370
374
  specification_version: 4
371
375
  summary: Ruby Gem for use with the Atlassian JIRA REST API
@@ -398,6 +402,7 @@ test_files:
398
402
  - spec/jira/request_client_spec.rb
399
403
  - spec/jira/resource/agile_spec.rb
400
404
  - spec/jira/resource/attachment_spec.rb
405
+ - spec/jira/resource/board_spec.rb
401
406
  - spec/jira/resource/createmeta_spec.rb
402
407
  - spec/jira/resource/field_spec.rb
403
408
  - spec/jira/resource/filter_spec.rb
@@ -405,6 +410,7 @@ test_files:
405
410
  - spec/jira/resource/issuelink_spec.rb
406
411
  - spec/jira/resource/project_factory_spec.rb
407
412
  - spec/jira/resource/project_spec.rb
413
+ - spec/jira/resource/sprint_spec.rb
408
414
  - spec/jira/resource/user_factory_spec.rb
409
415
  - spec/jira/resource/worklog_spec.rb
410
416
  - spec/mock_responses/board/1.json