jira-ruby 3.0.0.beta1 → 3.0.0.beta2
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/.github/workflows/CI.yml +1 -0
- data/.github/workflows/codeql.yml +0 -4
- data/.gitignore +3 -1
- data/.rubocop.yml +1 -69
- data/.yardopts +4 -0
- data/lib/jira/base.rb +5 -13
- data/lib/jira/client.rb +59 -4
- data/lib/jira/has_many_proxy.rb +30 -28
- data/lib/jira/http_client.rb +64 -1
- data/lib/jira/oauth_client.rb +62 -0
- data/lib/jira/request_client.rb +26 -1
- data/lib/jira/resource/attachment.rb +88 -3
- data/lib/jira/resource/field.rb +4 -8
- data/lib/jira/resource/issue.rb +64 -4
- data/lib/jira/resource/issue_picker_suggestions.rb +1 -1
- data/lib/jira/resource/issuelink.rb +4 -3
- data/lib/jira/resource/watcher.rb +1 -1
- data/lib/jira/resource/webhook.rb +5 -1
- data/lib/jira/version.rb +1 -1
- data/lib/tasks/generate.rake +1 -1
- data/spec/integration/project_spec.rb +1 -1
- data/spec/integration/rapidview_spec.rb +1 -1
- data/spec/integration/user_spec.rb +12 -3
- data/spec/integration/watcher_spec.rb +6 -2
- data/spec/integration/{webhook.rb → webhook_spec.rb} +8 -1
- data/spec/jira/base_factory_spec.rb +11 -2
- data/spec/jira/base_spec.rb +80 -57
- data/spec/jira/client_spec.rb +20 -18
- data/spec/jira/http_client_spec.rb +2 -2
- data/spec/jira/oauth_client_spec.rb +8 -4
- data/spec/jira/resource/agile_spec.rb +2 -2
- data/spec/jira/resource/attachment_spec.rb +36 -13
- data/spec/jira/resource/board_spec.rb +5 -5
- data/spec/jira/resource/field_spec.rb +23 -24
- data/spec/jira/resource/issue_spec.rb +18 -18
- data/spec/jira/resource/project_spec.rb +6 -6
- data/spec/jira/resource/sprint_spec.rb +20 -8
- data/spec/jira/resource/status_spec.rb +1 -1
- data/spec/jira/resource/user_factory_spec.rb +2 -2
- data/spec/jira/resource/worklog_spec.rb +1 -1
- data/spec/support/clients_helper.rb +2 -2
- data/spec/support/mock_client.rb +9 -0
- data/spec/support/mock_response.rb +8 -0
- metadata +9 -10
@@ -1,56 +1,55 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe JIRA::Resource::Field do
|
4
|
-
let(:cache) { OpenStruct.new }
|
5
|
-
|
6
4
|
let(:client) do
|
7
5
|
client = double(options: { rest_base_path: '/jira/rest/api/2' })
|
8
6
|
field = JIRA::Resource::FieldFactory.new(client)
|
9
7
|
allow(client).to receive(:Field).and_return(field)
|
10
|
-
allow(client).to receive(:
|
8
|
+
allow(client).to receive(:field_map_cache).and_return(nil)
|
9
|
+
allow(client).to receive(:field_map_cache=)
|
11
10
|
# info about all fields on the client
|
12
11
|
allow(client.Field).to receive(:all).and_return([
|
13
12
|
described_class.new(client,
|
14
13
|
attrs: { 'id' => 'customfield_10666', 'name' => 'Priority', 'custom' => true, 'orderable' => true, 'navigable' => true,
|
15
|
-
|
14
|
+
'searchable' => true, 'clauseNames' => ['cf[10666]', 'Priority'], 'schema' => { 'type' => 'string', 'custom' => 'com.atlassian.jira.plugin.system.customfieldtypes:select', 'customId' => 10_666 } }),
|
16
15
|
described_class.new(client,
|
17
16
|
attrs: { 'id' => 'issuekey', 'name' => 'Key', 'custom' => false, 'orderable' => false,
|
18
|
-
|
17
|
+
'navigable' => true, 'searchable' => false, 'clauseNames' => %w[id issue issuekey key] }),
|
19
18
|
described_class.new(client,
|
20
19
|
attrs: { 'id' => 'priority', 'name' => 'Priority', 'custom' => false, 'orderable' => true,
|
21
|
-
|
20
|
+
'navigable' => true, 'searchable' => true, 'clauseNames' => ['priority'], 'schema' => { 'type' => 'priority', 'system' => 'priority' } }),
|
22
21
|
described_class.new(client,
|
23
22
|
attrs: { 'id' => 'summary', 'name' => 'Summary', 'custom' => false, 'orderable' => true,
|
24
|
-
|
23
|
+
'navigable' => true, 'searchable' => true, 'clauseNames' => ['summary'], 'schema' => { 'type' => 'string', 'system' => 'summary' } }),
|
25
24
|
described_class.new(client,
|
26
25
|
attrs: { 'id' => 'issuetype', 'name' => 'Issue Type', 'custom' => false, 'orderable' => true,
|
27
|
-
|
26
|
+
'navigable' => true, 'searchable' => true, 'clauseNames' => %w[issuetype type], 'schema' => { 'type' => 'issuetype', 'system' => 'issuetype' } }),
|
28
27
|
described_class.new(client,
|
29
28
|
attrs: { 'id' => 'customfield_10111', 'name' => 'SingleWord', 'custom' => true, 'orderable' => true,
|
30
|
-
|
29
|
+
'navigable' => true, 'searchable' => true, 'clauseNames' => ['cf[10111]', 'SingleWord'], 'schema' => { 'type' => 'string', 'custom' => 'com.atlassian.jira.plugin.system.customfieldtypes:select', 'customId' => 10_111 } }),
|
31
30
|
described_class.new(client,
|
32
31
|
attrs: { 'id' => 'customfield_10222', 'name' => 'Multi Word', 'custom' => true, 'orderable' => true,
|
33
|
-
|
32
|
+
'navigable' => true, 'searchable' => true, 'clauseNames' => ['cf[10222]', 'Multi Word'], 'schema' => { 'type' => 'string', 'custom' => 'com.atlassian.jira.plugin.system.customfieldtypes:select', 'customId' => 10_222 } }),
|
34
33
|
described_class.new(client,
|
35
34
|
attrs: { 'id' => 'customfield_10333', 'name' => 'Why/N@t', 'custom' => true, 'orderable' => true,
|
36
|
-
|
35
|
+
'navigable' => true, 'searchable' => true, 'clauseNames' => ['cf[10333]', 'Why/N@t'], 'schema' => { 'type' => 'string', 'custom' => 'com.atlassian.jira.plugin.system.customfieldtypes:select', 'customId' => 10_333 } }),
|
37
36
|
described_class.new(client,
|
38
37
|
attrs: { 'id' => 'customfield_10444', 'name' => 'SingleWord', 'custom' => true, 'orderable' => true,
|
39
|
-
|
38
|
+
'navigable' => true, 'searchable' => true, 'clauseNames' => ['cf[10444]', 'SingleWord'], 'schema' => { 'type' => 'string', 'custom' => 'com.atlassian.jira.plugin.system.customfieldtypes:select', 'customId' => 10_444 } })
|
40
39
|
])
|
41
40
|
client
|
42
41
|
end
|
43
42
|
|
44
43
|
describe 'field_mappings' do
|
45
|
-
shared_context '
|
44
|
+
shared_context 'with or without mapping' do
|
46
45
|
subject do
|
47
46
|
described_class.new(client, attrs: {
|
48
47
|
'priority' => 1,
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
48
|
+
'customfield_10111' => 'data_in_custom_field',
|
49
|
+
'customfield_10222' => 'multi word custom name',
|
50
|
+
'customfield_10333' => 'complex custom name',
|
51
|
+
'customfield_10444' => 'duplicated custom name',
|
52
|
+
'customfield_10666' => 'duplicate of a system name'
|
54
53
|
})
|
55
54
|
end
|
56
55
|
|
@@ -65,12 +64,12 @@ describe JIRA::Resource::Field do
|
|
65
64
|
it 'is not confused by common attribute keys' do
|
66
65
|
expect { subject.name }.to raise_error(NoMethodError)
|
67
66
|
expect { subject.custom }.to raise_error(NoMethodError)
|
68
|
-
expect(subject.id).to
|
67
|
+
expect(subject.id).to be_nil # picks up ID from the parent -
|
69
68
|
end
|
70
69
|
end
|
71
70
|
|
72
|
-
context '
|
73
|
-
include_context '
|
71
|
+
context 'when fields are not yet mapped' do
|
72
|
+
include_context 'with or without mapping'
|
74
73
|
|
75
74
|
it 'can find a standard field by id' do
|
76
75
|
expect(subject.priority).to eq(1)
|
@@ -87,12 +86,12 @@ describe JIRA::Resource::Field do
|
|
87
86
|
it 'is not confused by common attribute keys and raises error' do
|
88
87
|
expect { subject.name }.to raise_error(NoMethodError)
|
89
88
|
expect { subject.custom }.to raise_error(NoMethodError)
|
90
|
-
expect(subject.id).to
|
89
|
+
expect(subject.id).to be_nil # picks up ID from the parent -
|
91
90
|
end
|
92
91
|
end
|
93
92
|
|
94
|
-
context '
|
95
|
-
include_context '
|
93
|
+
context 'when fields have been mapped' do
|
94
|
+
include_context 'with or without mapping'
|
96
95
|
|
97
96
|
it 'warns of duplicate fields' do
|
98
97
|
expect { client.Field.map_fields }.to output(/renaming as Priority_10666/).to_stderr
|
@@ -7,7 +7,7 @@ describe JIRA::Resource::Issue do
|
|
7
7
|
let(:client) do
|
8
8
|
client = double(options: { rest_base_path: '/jira/rest/api/2' })
|
9
9
|
allow(client).to receive(:Field).and_return(JIRA::Resource::FieldFactory.new(client))
|
10
|
-
allow(client).to receive(:
|
10
|
+
allow(client).to receive(:field_map_cache).and_return(nil)
|
11
11
|
client
|
12
12
|
end
|
13
13
|
|
@@ -25,7 +25,7 @@ describe JIRA::Resource::Issue do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'responds to key' do
|
28
|
-
expect(@decorated.respond_to?(:key)).to
|
28
|
+
expect(@decorated.respond_to?(:key)).to be(true)
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'does not raise an error' do
|
@@ -51,7 +51,7 @@ describe JIRA::Resource::Issue do
|
|
51
51
|
expect(client).to receive(:Issue).and_return(issue)
|
52
52
|
expect(issue).to receive(:build).with({ 'id' => '1', 'summary' => 'Bugs Everywhere' })
|
53
53
|
|
54
|
-
|
54
|
+
described_class.all(client)
|
55
55
|
end
|
56
56
|
|
57
57
|
it 'finds an issue by key or id' do
|
@@ -113,7 +113,7 @@ describe JIRA::Resource::Issue do
|
|
113
113
|
|
114
114
|
it 'searches an issue with a jql query string and maxResults equals zero and should return the count of tickets' do
|
115
115
|
response = double
|
116
|
-
|
116
|
+
double
|
117
117
|
|
118
118
|
allow(response).to receive(:body).and_return('{"total": 1, "issues": []}')
|
119
119
|
expect(client).to receive(:get)
|
@@ -175,20 +175,20 @@ describe JIRA::Resource::Issue do
|
|
175
175
|
subject do
|
176
176
|
described_class.new(client, attrs: {
|
177
177
|
'id' => '123',
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
178
|
+
'fields' => {
|
179
|
+
'reporter' => { 'foo' => 'bar' },
|
180
|
+
'assignee' => { 'foo' => 'bar' },
|
181
|
+
'project' => { 'foo' => 'bar' },
|
182
|
+
'priority' => { 'foo' => 'bar' },
|
183
|
+
'issuetype' => { 'foo' => 'bar' },
|
184
|
+
'status' => { 'foo' => 'bar' },
|
185
|
+
'resolution' => { 'foo' => 'bar' },
|
186
|
+
'components' => [{ 'foo' => 'bar' }, { 'baz' => 'flum' }],
|
187
|
+
'versions' => [{ 'foo' => 'bar' }, { 'baz' => 'flum' }],
|
188
|
+
'comment' => { 'comments' => [{ 'foo' => 'bar' }, { 'baz' => 'flum' }] },
|
189
|
+
'attachment' => [{ 'foo' => 'bar' }, { 'baz' => 'flum' }],
|
190
|
+
'worklog' => { 'worklogs' => [{ 'foo' => 'bar' }, { 'baz' => 'flum' }] }
|
191
|
+
}
|
192
192
|
})
|
193
193
|
end
|
194
194
|
|
@@ -11,8 +11,8 @@ describe JIRA::Resource::Project do
|
|
11
11
|
subject do
|
12
12
|
described_class.new(client, attrs: {
|
13
13
|
'lead' => { 'foo' => 'bar' },
|
14
|
-
|
15
|
-
|
14
|
+
'issueTypes' => [{ 'foo' => 'bar' }, { 'baz' => 'flum' }],
|
15
|
+
'versions' => [{ 'foo' => 'bar' }, { 'baz' => 'flum' }]
|
16
16
|
})
|
17
17
|
end
|
18
18
|
|
@@ -36,7 +36,7 @@ describe JIRA::Resource::Project do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'returns issues' do
|
39
|
-
response_body = '{"expand":"schema,names","startAt":0,"maxResults":1,"total":1,"issues":[{"expand":"editmeta,renderedFields,transitions,changelog,operations","id":"53062","self":"/rest/api/2/issue/53062","key":"test key","fields":{"summary":"test summary"}}]}'
|
39
|
+
response_body = '{"expand":"schema,names","startAt":0,"maxResults":1,"total":1,"issues":[{"expand":"editmeta,renderedFields,transitions,changelog,operations","id":"53062","self":"/rest/api/2/issue/53062","key":"test key","fields":{"summary":"test summary"}}]}'
|
40
40
|
response = double('response',
|
41
41
|
body: response_body)
|
42
42
|
issue_factory = double('issue factory')
|
@@ -52,7 +52,7 @@ describe JIRA::Resource::Project do
|
|
52
52
|
|
53
53
|
context 'with changelog' do
|
54
54
|
it 'returns issues' do
|
55
|
-
response_body = '{"expand":"schema,names","startAt":0,"maxResults":1,"total":1,"issues":[{"expand":"editmeta,renderedFields,transitions,changelog,operations","id":"53062","self":"/rest/api/2/issue/53062","key":"test key","fields":{"summary":"test summary"},"changelog":{}}]}'
|
55
|
+
response_body = '{"expand":"schema,names","startAt":0,"maxResults":1,"total":1,"issues":[{"expand":"editmeta,renderedFields,transitions,changelog,operations","id":"53062","self":"/rest/api/2/issue/53062","key":"test key","fields":{"summary":"test summary"},"changelog":{}}]}'
|
56
56
|
response = double('response',
|
57
57
|
body: response_body)
|
58
58
|
issue_factory = double('issue factory')
|
@@ -73,7 +73,7 @@ describe JIRA::Resource::Project do
|
|
73
73
|
let(:project_key) { SecureRandom.hex }
|
74
74
|
let(:response) { double('response', body: '[{}]') }
|
75
75
|
|
76
|
-
context 'pagination' do
|
76
|
+
context 'with pagination' do
|
77
77
|
before do
|
78
78
|
user_factory = double('user factory')
|
79
79
|
expect(client).to receive(:User).and_return(user_factory)
|
@@ -113,7 +113,7 @@ describe JIRA::Resource::Project do
|
|
113
113
|
max_results = rand(1000)
|
114
114
|
|
115
115
|
expect(client).to receive(:get)
|
116
|
-
.with("/jira/rest/api/2/user/assignable/search?project=#{project_key}&startAt=#{start_at}&maxResults=#{max_results}")
|
116
|
+
.with("/jira/rest/api/2/user/assignable/search?project=#{project_key}&startAt=#{start_at}&maxResults=#{max_results}")
|
117
117
|
.and_return(response)
|
118
118
|
|
119
119
|
project.users(start_at:, max_results:)
|
@@ -43,7 +43,9 @@ describe JIRA::Resource::Sprint do
|
|
43
43
|
let(:given_attrs) { { start_date: '2016-06-10' } }
|
44
44
|
|
45
45
|
it 'calls save on the super class with the given attributes & agile url' do
|
46
|
-
|
46
|
+
mock_response = double('response', body: '{"id":"123"}')
|
47
|
+
|
48
|
+
expect(client).to receive(:post).with(agile_sprint_path, given_attrs.to_json).and_return(mock_response)
|
47
49
|
|
48
50
|
sprint.save(given_attrs)
|
49
51
|
end
|
@@ -51,7 +53,9 @@ describe JIRA::Resource::Sprint do
|
|
51
53
|
|
52
54
|
context 'when attributes are not specified' do
|
53
55
|
it 'calls save on the super class with the instance attributes & agile url' do
|
54
|
-
|
56
|
+
mock_response = double('response', body: '{"id":"123"}')
|
57
|
+
|
58
|
+
expect(client).to receive(:post).with(agile_sprint_path, instance_attrs.to_json).and_return(mock_response)
|
55
59
|
|
56
60
|
sprint.save
|
57
61
|
end
|
@@ -59,7 +63,9 @@ describe JIRA::Resource::Sprint do
|
|
59
63
|
|
60
64
|
context 'when providing the path argument' do
|
61
65
|
it 'ignores it' do
|
62
|
-
|
66
|
+
mock_response = double('response', body: '{"id":"123"}')
|
67
|
+
|
68
|
+
expect(client).to receive(:post).with(agile_sprint_path, instance_attrs.to_json).and_return(mock_response)
|
63
69
|
|
64
70
|
sprint.save({}, 'mavenlink.com')
|
65
71
|
end
|
@@ -77,7 +83,9 @@ describe JIRA::Resource::Sprint do
|
|
77
83
|
let(:given_attrs) { { start_date: '2016-06-10' } }
|
78
84
|
|
79
85
|
it 'calls save! on the super class with the given attributes & agile url' do
|
80
|
-
|
86
|
+
mock_response = double('response', body: '{"id":"123"}')
|
87
|
+
|
88
|
+
expect(client).to receive(:post).with(agile_sprint_path, given_attrs.to_json).and_return(mock_response)
|
81
89
|
|
82
90
|
sprint.save!(given_attrs)
|
83
91
|
end
|
@@ -85,7 +93,9 @@ describe JIRA::Resource::Sprint do
|
|
85
93
|
|
86
94
|
context 'when attributes are not specified' do
|
87
95
|
it 'calls save! on the super class with the instance attributes & agile url' do
|
88
|
-
|
96
|
+
mock_response = double('response', body: '{"id":"123"}')
|
97
|
+
|
98
|
+
expect(client).to receive(:post).with(agile_sprint_path, instance_attrs.to_json).and_return(mock_response)
|
89
99
|
|
90
100
|
sprint.save!
|
91
101
|
end
|
@@ -93,14 +103,16 @@ describe JIRA::Resource::Sprint do
|
|
93
103
|
|
94
104
|
context 'when providing the path argument' do
|
95
105
|
it 'ignores it' do
|
96
|
-
|
106
|
+
mock_response = double('response', body: '{"id":"123"}')
|
107
|
+
|
108
|
+
expect(client).to receive(:post).with(agile_sprint_path, instance_attrs.to_json).and_return(mock_response)
|
97
109
|
|
98
110
|
sprint.save!({}, 'mavenlink.com')
|
99
111
|
end
|
100
112
|
end
|
101
113
|
end
|
102
114
|
|
103
|
-
context 'an issue exists' do
|
115
|
+
context 'when an issue exists' do
|
104
116
|
let(:issue_id) { 1001 }
|
105
117
|
let(:post_issue_path) do
|
106
118
|
described_class.agile_path(client, sprint.id)
|
@@ -126,7 +138,7 @@ describe JIRA::Resource::Sprint do
|
|
126
138
|
end
|
127
139
|
end
|
128
140
|
|
129
|
-
context 'multiple issues
|
141
|
+
context 'when multiple issues exist' do
|
130
142
|
let(:issue_ids) { [1001, 1012] }
|
131
143
|
let(:post_issue_path) do
|
132
144
|
described_class.agile_path(client, sprint.id)
|
@@ -4,7 +4,7 @@ describe JIRA::Resource::Status do
|
|
4
4
|
let(:client) do
|
5
5
|
client = double(options: { rest_base_path: '/jira/rest/api/2' })
|
6
6
|
allow(client).to receive(:Field).and_return(JIRA::Resource::FieldFactory.new(client))
|
7
|
-
allow(client).to receive(:
|
7
|
+
allow(client).to receive(:field_map_cache).and_return(nil)
|
8
8
|
client
|
9
9
|
end
|
10
10
|
|
@@ -4,13 +4,13 @@ describe JIRA::Resource::UserFactory do
|
|
4
4
|
subject { described_class.new(client) }
|
5
5
|
|
6
6
|
let(:client) do
|
7
|
-
instance_double(
|
7
|
+
instance_double(Client, options: { rest_base_path: '/jira/rest/api/2' })
|
8
8
|
end
|
9
9
|
|
10
10
|
describe '#myself' do
|
11
11
|
let(:response) do
|
12
12
|
instance_double(
|
13
|
-
|
13
|
+
Response, body: get_mock_response('user_accountId=1234567890abcdef01234567.json')
|
14
14
|
)
|
15
15
|
end
|
16
16
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module ClientsHelper
|
2
|
-
def with_each_client(&
|
2
|
+
def with_each_client(&)
|
3
3
|
clients = {}
|
4
4
|
|
5
5
|
oauth_client = JIRA::Client.new(consumer_key: 'foo', consumer_secret: 'bar')
|
@@ -9,6 +9,6 @@ module ClientsHelper
|
|
9
9
|
basic_client = JIRA::Client.new(username: 'foo', password: 'bar', auth_type: :basic, use_ssl: false)
|
10
10
|
clients['http://localhost:2990'] = basic_client
|
11
11
|
|
12
|
-
clients.each(&
|
12
|
+
clients.each(&)
|
13
13
|
end
|
14
14
|
end
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jira-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0.
|
4
|
+
version: 3.0.0.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SUMO Heavy Industries
|
8
8
|
- test IO
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2025-03-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activesupport
|
@@ -68,7 +67,6 @@ dependencies:
|
|
68
67
|
- !ruby/object:Gem::Version
|
69
68
|
version: '1.0'
|
70
69
|
description: API for JIRA
|
71
|
-
email:
|
72
70
|
executables: []
|
73
71
|
extensions: []
|
74
72
|
extra_rdoc_files: []
|
@@ -81,6 +79,7 @@ files:
|
|
81
79
|
- ".github/workflows/rubocop.yml"
|
82
80
|
- ".gitignore"
|
83
81
|
- ".rubocop.yml"
|
82
|
+
- ".yardopts"
|
84
83
|
- Gemfile
|
85
84
|
- Guardfile
|
86
85
|
- LICENSE
|
@@ -150,7 +149,7 @@ files:
|
|
150
149
|
- spec/integration/user_spec.rb
|
151
150
|
- spec/integration/version_spec.rb
|
152
151
|
- spec/integration/watcher_spec.rb
|
153
|
-
- spec/integration/
|
152
|
+
- spec/integration/webhook_spec.rb
|
154
153
|
- spec/integration/worklog_spec.rb
|
155
154
|
- spec/jira/base_factory_spec.rb
|
156
155
|
- spec/jira/base_spec.rb
|
@@ -237,6 +236,8 @@ files:
|
|
237
236
|
- spec/support/matchers/have_attributes.rb
|
238
237
|
- spec/support/matchers/have_many.rb
|
239
238
|
- spec/support/matchers/have_one.rb
|
239
|
+
- spec/support/mock_client.rb
|
240
|
+
- spec/support/mock_response.rb
|
240
241
|
- spec/support/shared_examples/integration.rb
|
241
242
|
homepage: http://www.sumoheavy.com
|
242
243
|
licenses:
|
@@ -244,7 +245,6 @@ licenses:
|
|
244
245
|
metadata:
|
245
246
|
source_code_uri: https://github.com/sumoheavy/jira-ruby
|
246
247
|
rubygems_mfa_required: 'true'
|
247
|
-
post_install_message:
|
248
248
|
rdoc_options: []
|
249
249
|
require_paths:
|
250
250
|
- lib
|
@@ -255,12 +255,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
255
255
|
version: 3.1.0
|
256
256
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
257
257
|
requirements:
|
258
|
-
- - "
|
258
|
+
- - ">="
|
259
259
|
- !ruby/object:Gem::Version
|
260
|
-
version:
|
260
|
+
version: '0'
|
261
261
|
requirements: []
|
262
|
-
rubygems_version: 3.
|
263
|
-
signing_key:
|
262
|
+
rubygems_version: 3.6.2
|
264
263
|
specification_version: 4
|
265
264
|
summary: Ruby Gem for use with the Atlassian JIRA REST API
|
266
265
|
test_files: []
|