jira-ruby 0.1.17 → 1.0.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/.travis.yml +2 -1
- data/Gemfile +3 -1
- data/Guardfile +14 -0
- data/README.rdoc +29 -12
- data/Rakefile +5 -1
- data/example.rb +24 -2
- data/http-basic-example.rb +1 -1
- data/jira-ruby.gemspec +20 -14
- data/lib/{jira.rb → jira-ruby.rb} +6 -2
- data/lib/jira/base.rb +5 -4
- data/lib/jira/base_factory.rb +3 -3
- data/lib/jira/client.rb +31 -2
- data/lib/jira/resource/agile.rb +54 -0
- data/lib/jira/resource/createmeta.rb +52 -0
- data/lib/jira/resource/field.rb +74 -1
- data/lib/jira/resource/issue.rb +22 -5
- data/lib/jira/resource/resolution.rb +10 -0
- data/lib/jira/resource/sprint.rb +36 -0
- data/lib/jira/resource/user.rb +6 -0
- data/lib/jira/resource/webhook.rb +40 -0
- data/lib/jira/version.rb +1 -1
- data/spec/integration/resolution_spec.rb +29 -0
- data/spec/integration/webhook.rb +34 -0
- data/spec/jira/base_spec.rb +5 -2
- data/spec/jira/resource/createmeta_spec.rb +253 -0
- data/spec/jira/resource/field_spec.rb +132 -0
- data/spec/jira/resource/issue_spec.rb +21 -1
- data/spec/jira/resource/user_factory_spec.rb +33 -0
- data/spec/mock_responses/jira/rest/webhooks/1.0/webhook.json +11 -0
- data/spec/mock_responses/jira/rest/webhooks/1.0/webhook/2.json +11 -0
- data/spec/mock_responses/resolution.json +15 -0
- data/spec/mock_responses/resolution/1.json +7 -0
- data/spec/mock_responses/webhook.json +11 -0
- data/spec/mock_responses/webhook/webhook.json +11 -0
- data/spec/spec_helper.rb +1 -1
- metadata +139 -15
@@ -0,0 +1,132 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe JIRA::Resource::Field do
|
4
|
+
|
5
|
+
let(:cache) { OpenStruct.new }
|
6
|
+
|
7
|
+
let(:client) do
|
8
|
+
client = double(options: {rest_base_path: '/jira/rest/api/2'} )
|
9
|
+
field = JIRA::Resource::FieldFactory.new(client)
|
10
|
+
allow(client).to receive(:Field).and_return(field)
|
11
|
+
allow(client).to receive(:cache).and_return(cache)
|
12
|
+
# info about all fields on the client
|
13
|
+
allow(client.Field).to receive(:all).and_return([
|
14
|
+
JIRA::Resource::Field.new(client, :attrs => {'id' =>"customfield_10666", "name" => "Priority", "custom" => true, "orderable" => true, "navigable" => true, "searchable" => true, "clauseNames" => ["cf[10666]","Priority"], "schema" =>{"type" => "string", "custom" => "com.atlassian.jira.plugin.system.customfieldtypes:select","customId" => 10666}}),
|
15
|
+
JIRA::Resource::Field.new(client, :attrs => {'id' =>"issuekey", "name" => "Key", "custom" => false, "orderable" => false, "navigable" => true, "searchable" => false, "clauseNames" => ["id","issue","issuekey","key"]}),
|
16
|
+
JIRA::Resource::Field.new(client, :attrs => {"id" =>"priority", "name" => "Priority", "custom" => false, "orderable" => true, "navigable" => true, "searchable" => true, "clauseNames" => ["priority"], "schema" =>{"type" => "priority", "system" => "priority"}}),
|
17
|
+
JIRA::Resource::Field.new(client, :attrs => {'id' =>"summary", "name" => "Summary", "custom" => false, "orderable" => true, "navigable" => true, "searchable" => true, "clauseNames" => ["summary"], "schema" =>{"type" => "string", "system" => "summary"}}),
|
18
|
+
JIRA::Resource::Field.new(client, :attrs => {'id' =>"issuetype", "name" => "Issue Type", "custom" => false, "orderable" => true, "navigable" => true, "searchable" => true, "clauseNames" => ["issuetype","type"], "schema" =>{"type" => "issuetype", "system" => "issuetype"}}),
|
19
|
+
JIRA::Resource::Field.new(client, :attrs => {'id' =>"customfield_10111", "name" => "SingleWord", "custom" => true, "orderable" => true, "navigable" => true, "searchable" => true, "clauseNames" => ["cf[10111]","SingleWord"], "schema" =>{"type" => "string", "custom" => "com.atlassian.jira.plugin.system.customfieldtypes:select","customId" => 10111}}),
|
20
|
+
JIRA::Resource::Field.new(client, :attrs => {'id' =>"customfield_10222", "name" => "Multi Word", "custom" => true, "orderable" => true, "navigable" => true, "searchable" => true, "clauseNames" => ["cf[10222]","Multi Word"], "schema" =>{"type" => "string", "custom" => "com.atlassian.jira.plugin.system.customfieldtypes:select","customId" => 10222}}),
|
21
|
+
JIRA::Resource::Field.new(client, :attrs => {'id' =>"customfield_10333", "name" => "Why/N@t", "custom" => true, "orderable" => true, "navigable" => true, "searchable" => true, "clauseNames" => ["cf[10333]","Why/N@t"], "schema" =>{"type" => "string", "custom" => "com.atlassian.jira.plugin.system.customfieldtypes:select","customId" => 10333}}),
|
22
|
+
JIRA::Resource::Field.new(client, :attrs => {'id' =>"customfield_10444", "name" => "SingleWord", "custom" => true, "orderable" => true, "navigable" => true, "searchable" => true, "clauseNames" => ["cf[10444]","SingleWord"], "schema" =>{"type" => "string", "custom" => "com.atlassian.jira.plugin.system.customfieldtypes:select","customId" => 10444}})
|
23
|
+
])
|
24
|
+
client
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "field_mappings" do
|
28
|
+
|
29
|
+
shared_context "mapped or not" do
|
30
|
+
|
31
|
+
subject {
|
32
|
+
JIRA::Resource::Field.new(client, :attrs => {
|
33
|
+
'priority' => 1,
|
34
|
+
'customfield_10111' => 'data_in_custom_field',
|
35
|
+
'customfield_10222' => 'multi word custom name',
|
36
|
+
'customfield_10333' => 'complex custom name',
|
37
|
+
'customfield_10444' => 'duplicated custom name',
|
38
|
+
'customfield_10666' => 'duplicate of a system name',
|
39
|
+
})
|
40
|
+
}
|
41
|
+
|
42
|
+
it "can find a standard field by id" do
|
43
|
+
expect(subject.priority).to eq(1)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "can find a custom field by customfield_##### name" do
|
47
|
+
expect(subject.customfield_10111).to eq('data_in_custom_field')
|
48
|
+
end
|
49
|
+
|
50
|
+
it "is not confused by common attribute keys" do
|
51
|
+
expect{subject.name}.to raise_error(NoMethodError)
|
52
|
+
expect{subject.custom}.to raise_error(NoMethodError)
|
53
|
+
expect(subject.id).to eq(nil) # picks up ID from the parent -
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context "before fields are mapped" do
|
58
|
+
|
59
|
+
include_context "mapped or not"
|
60
|
+
|
61
|
+
it "can find a standard field by id" do
|
62
|
+
expect(subject.priority).to eq(1)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "cannot find a standard field by name before mapping" do
|
66
|
+
expect{subject.Priority}.to raise_error(NoMethodError)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "can find a custom field by customfield_##### name" do
|
70
|
+
expect(subject.customfield_10111).to eq('data_in_custom_field')
|
71
|
+
end
|
72
|
+
|
73
|
+
it "cannot find a mapped field before mapping and raises error" do
|
74
|
+
expect{subject.SingleWork}.to raise_error(NoMethodError)
|
75
|
+
end
|
76
|
+
|
77
|
+
it "is not confused by common attribute keys and raises error" do
|
78
|
+
expect{subject.name}.to raise_error(NoMethodError)
|
79
|
+
expect{subject.custom}.to raise_error(NoMethodError)
|
80
|
+
expect(subject.id).to eq(nil) # picks up ID from the parent -
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
context "after fields are mapped" do
|
85
|
+
|
86
|
+
before do
|
87
|
+
silence_stream(STDERR) do
|
88
|
+
expect(client.Field.map_fields.class).to eq(Hash)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
include_context "mapped or not"
|
93
|
+
|
94
|
+
it "warns of duplicate fields" do
|
95
|
+
expect{client.Field.map_fields}.to output(/renaming as Priority_10666/).to_stderr
|
96
|
+
expect{client.Field.map_fields}.to output(/renaming as SingleWord_10444/).to_stderr
|
97
|
+
end
|
98
|
+
|
99
|
+
it "can find a mapped field after mapping and returns results" do
|
100
|
+
expect{subject.SingleWord}.to_not raise_error
|
101
|
+
expect(subject.SingleWord).to eq subject.customfield_10111
|
102
|
+
end
|
103
|
+
|
104
|
+
it "handles duplicate names in a safe fashion" do
|
105
|
+
expect{subject.Multi_Word}.to_not raise_error
|
106
|
+
expect(subject.Multi_Word).to eq subject.customfield_10222
|
107
|
+
end
|
108
|
+
|
109
|
+
it "handles special characters in a safe fashion" do
|
110
|
+
expect{subject.Why_N_t}.to_not raise_error
|
111
|
+
expect(subject.Why_N_t).to eq subject.customfield_10333
|
112
|
+
end
|
113
|
+
|
114
|
+
it "handles duplicates in custom names" do
|
115
|
+
expect{subject.SingleWord_10444}.to_not raise_error
|
116
|
+
expect(subject.SingleWord_10444).to eq subject.customfield_10444
|
117
|
+
end
|
118
|
+
|
119
|
+
it "keeps custom names from overwriting system names" do
|
120
|
+
#expect(client.Field.map_fields.class).to eq(Hash)
|
121
|
+
expect{subject.Priority_10666}.to_not raise_error
|
122
|
+
expect(subject.Priority_10666).to eq subject.customfield_10666
|
123
|
+
end
|
124
|
+
|
125
|
+
it "can find a standard field by an expanded name" do
|
126
|
+
#expect(client.Field.map_fields.class).to eq(Hash)
|
127
|
+
expect(subject.priority).to eq(1)
|
128
|
+
expect(subject.Priority).to eq(1)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
@@ -5,7 +5,12 @@ describe JIRA::Resource::Issue do
|
|
5
5
|
class JIRAResourceDelegation < SimpleDelegator # :nodoc:
|
6
6
|
end
|
7
7
|
|
8
|
-
let(:client)
|
8
|
+
let(:client) do
|
9
|
+
client = double(options: {rest_base_path: '/jira/rest/api/2'} )
|
10
|
+
allow(client).to receive(:Field).and_return(JIRA::Resource::FieldFactory.new(client))
|
11
|
+
allow(client).to receive(:cache).and_return(OpenStruct.new)
|
12
|
+
client
|
13
|
+
end
|
9
14
|
|
10
15
|
describe "#respond_to?" do
|
11
16
|
describe "when decorated by SimpleDelegator" do
|
@@ -128,6 +133,21 @@ describe JIRA::Resource::Issue do
|
|
128
133
|
expect(JIRA::Resource::Issue.jql(client,'foo bar', expand: %w(transitions))).to eq([''])
|
129
134
|
end
|
130
135
|
|
136
|
+
it 'should return meta data available for editing an issue' do
|
137
|
+
subject = JIRA::Resource::Issue.new(client, :attrs => {'fields' => {'key' =>'TST=123'}})
|
138
|
+
response = double()
|
139
|
+
|
140
|
+
allow(response).to receive(:body).and_return(
|
141
|
+
'{"fields":{"summary":{"required":true,"name":"Summary","operations":["set"]}}}'
|
142
|
+
)
|
143
|
+
expect(client).to receive(:get)
|
144
|
+
.with('/jira/rest/api/2/issue/TST=123/editmeta')
|
145
|
+
.and_return(response)
|
146
|
+
|
147
|
+
expect(subject.editmeta).to eq({'summary' => {'required' => true, 'name' => 'Summary', 'operations' => ['set']}})
|
148
|
+
end
|
149
|
+
|
150
|
+
|
131
151
|
it "provides direct accessors to the fields" do
|
132
152
|
subject = JIRA::Resource::Issue.new(client, :attrs => {'fields' => {'foo' =>'bar'}})
|
133
153
|
expect(subject).to respond_to(:foo)
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe JIRA::Resource::UserFactory do
|
4
|
+
|
5
|
+
let(:client) {
|
6
|
+
instance_double('Client', options: { rest_base_path: '/jira/rest/api/2' })
|
7
|
+
}
|
8
|
+
|
9
|
+
subject { JIRA::Resource::UserFactory.new(client) }
|
10
|
+
|
11
|
+
describe "#myself" do
|
12
|
+
let(:response) {
|
13
|
+
instance_double(
|
14
|
+
'Response', body: get_mock_response('user_username=admin.json')
|
15
|
+
)
|
16
|
+
}
|
17
|
+
|
18
|
+
let(:user) { subject.myself }
|
19
|
+
|
20
|
+
before(:each) do
|
21
|
+
allow(client).to receive(:get).with(
|
22
|
+
'/jira/rest/api/2/myself'
|
23
|
+
).and_return(response)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns a JIRA::Resource::User with correct attrs" do
|
27
|
+
expect(user).to be_a(JIRA::Resource::User)
|
28
|
+
expect(user.name).to eq('admin')
|
29
|
+
expect(user.emailAddress).to eq('admin@example.com')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
[{"name":"from API",
|
2
|
+
"url":"http://localhost:3000/webhooks/1",
|
3
|
+
"excludeBody":false,
|
4
|
+
"filters":{"issue-related-events-section":""},
|
5
|
+
"events":[],
|
6
|
+
"enabled":true,
|
7
|
+
"self":"http://localhost:2990/jira/rest/webhooks/1.0/webhook/2",
|
8
|
+
"lastUpdatedUser":"admin",
|
9
|
+
"lastUpdatedDisplayName":"admin",
|
10
|
+
"lastUpdated":1453306520188
|
11
|
+
}]
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{"name":"from API",
|
2
|
+
"url":"http://localhost:3000/webhooks/1",
|
3
|
+
"excludeBody":false,
|
4
|
+
"filters":{"issue-related-events-section":""},
|
5
|
+
"events":[],
|
6
|
+
"enabled":true,
|
7
|
+
"self":"http://localhost:2990/jira/rest/webhooks/1.0/webhook/2",
|
8
|
+
"lastUpdatedUser":"admin",
|
9
|
+
"lastUpdatedDisplayName":"admin",
|
10
|
+
"lastUpdated":1453306520188
|
11
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"self": "http://www.example.com/jira/rest/api/2/resolution/1",
|
4
|
+
"description": "A fix for this issue is checked into the tree and tested.",
|
5
|
+
"iconUrl": "http://www.example.com/jira/images/icons/status_resolved.gif",
|
6
|
+
"name": "Fixed",
|
7
|
+
"id": "1"
|
8
|
+
},
|
9
|
+
{
|
10
|
+
"self": "http://www.example.com/jira/rest/api/2/resolution/3",
|
11
|
+
"description": "This is what it is supposed to do.",
|
12
|
+
"name": "Works as designed",
|
13
|
+
"id": "3"
|
14
|
+
}
|
15
|
+
]
|
@@ -0,0 +1,11 @@
|
|
1
|
+
[{"name":"from API",
|
2
|
+
"url":"http://localhost:3000/webhooks/1",
|
3
|
+
"excludeBody":false,
|
4
|
+
"filters":{"issue-related-events-section":""},
|
5
|
+
"events":[],
|
6
|
+
"enabled":true,
|
7
|
+
"self":"http://localhost:2990/jira/rest/webhooks/1.0/webhook/2",
|
8
|
+
"lastUpdatedUser":"admin",
|
9
|
+
"lastUpdatedDisplayName":"admin",
|
10
|
+
"lastUpdated":1453306520188}
|
11
|
+
]
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{"name":"from API",
|
2
|
+
"url":"http://localhost:3000/webhooks/1",
|
3
|
+
"excludeBody":false,
|
4
|
+
"filters":{"issue-related-events-section":""},
|
5
|
+
"events":[],
|
6
|
+
"enabled":true,
|
7
|
+
"self":"http://localhost:2990/jira/rest/webhooks/1.0/webhook/2",
|
8
|
+
"lastUpdatedUser":"admin",
|
9
|
+
"lastUpdatedDisplayName":"admin",
|
10
|
+
"lastUpdated":1453306520188
|
11
|
+
}
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,62 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jira-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SUMO Heavy Industries
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: oauth
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.5'
|
17
20
|
- - ">="
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
type: :
|
22
|
+
version: 0.5.0
|
23
|
+
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.5'
|
24
30
|
- - ">="
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: 0.5.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
34
|
+
name: activesupport
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - "~>"
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
39
|
+
version: '4.2'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 4.2.0
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
47
|
- - "~>"
|
39
48
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
49
|
+
version: '4.2'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 4.2.0
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
54
|
+
name: railties
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
44
56
|
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '4.2'
|
45
60
|
- - ">="
|
46
61
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
type: :
|
62
|
+
version: 4.2.0
|
63
|
+
type: :development
|
49
64
|
prerelease: false
|
50
65
|
version_requirements: !ruby/object:Gem::Requirement
|
51
66
|
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '4.2'
|
52
70
|
- - ">="
|
53
71
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
72
|
+
version: 4.2.0
|
55
73
|
- !ruby/object:Gem::Dependency
|
56
74
|
name: webmock
|
57
75
|
requirement: !ruby/object:Gem::Requirement
|
58
76
|
requirements:
|
59
77
|
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '1.18'
|
80
|
+
- - ">="
|
60
81
|
- !ruby/object:Gem::Version
|
61
82
|
version: 1.18.0
|
62
83
|
type: :development
|
@@ -64,6 +85,9 @@ dependencies:
|
|
64
85
|
version_requirements: !ruby/object:Gem::Requirement
|
65
86
|
requirements:
|
66
87
|
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.18'
|
90
|
+
- - ">="
|
67
91
|
- !ruby/object:Gem::Version
|
68
92
|
version: 1.18.0
|
69
93
|
- !ruby/object:Gem::Dependency
|
@@ -71,6 +95,9 @@ dependencies:
|
|
71
95
|
requirement: !ruby/object:Gem::Requirement
|
72
96
|
requirements:
|
73
97
|
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '3.0'
|
100
|
+
- - ">="
|
74
101
|
- !ruby/object:Gem::Version
|
75
102
|
version: 3.0.0
|
76
103
|
type: :development
|
@@ -78,6 +105,9 @@ dependencies:
|
|
78
105
|
version_requirements: !ruby/object:Gem::Requirement
|
79
106
|
requirements:
|
80
107
|
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '3.0'
|
110
|
+
- - ">="
|
81
111
|
- !ruby/object:Gem::Version
|
82
112
|
version: 3.0.0
|
83
113
|
- !ruby/object:Gem::Dependency
|
@@ -85,6 +115,9 @@ dependencies:
|
|
85
115
|
requirement: !ruby/object:Gem::Requirement
|
86
116
|
requirements:
|
87
117
|
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '10.3'
|
120
|
+
- - ">="
|
88
121
|
- !ruby/object:Gem::Version
|
89
122
|
version: 10.3.2
|
90
123
|
type: :development
|
@@ -92,8 +125,71 @@ dependencies:
|
|
92
125
|
version_requirements: !ruby/object:Gem::Requirement
|
93
126
|
requirements:
|
94
127
|
- - "~>"
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '10.3'
|
130
|
+
- - ">="
|
95
131
|
- !ruby/object:Gem::Version
|
96
132
|
version: 10.3.2
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
name: guard
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '2.13'
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 2.13.0
|
143
|
+
type: :development
|
144
|
+
prerelease: false
|
145
|
+
version_requirements: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - "~>"
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '2.13'
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 2.13.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: guard-rspec
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '4.6'
|
160
|
+
- - ">="
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: 4.6.5
|
163
|
+
type: :development
|
164
|
+
prerelease: false
|
165
|
+
version_requirements: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - "~>"
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '4.6'
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: 4.6.5
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: pry
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - "~>"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0.10'
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: 0.10.3
|
183
|
+
type: :development
|
184
|
+
prerelease: false
|
185
|
+
version_requirements: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - "~>"
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0.10'
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 0.10.3
|
97
193
|
description: API for JIRA
|
98
194
|
email:
|
99
195
|
executables: []
|
@@ -103,13 +199,14 @@ files:
|
|
103
199
|
- ".gitignore"
|
104
200
|
- ".travis.yml"
|
105
201
|
- Gemfile
|
202
|
+
- Guardfile
|
106
203
|
- LICENSE.txt
|
107
204
|
- README.rdoc
|
108
205
|
- Rakefile
|
109
206
|
- example.rb
|
110
207
|
- http-basic-example.rb
|
111
208
|
- jira-ruby.gemspec
|
112
|
-
- lib/jira.rb
|
209
|
+
- lib/jira-ruby.rb
|
113
210
|
- lib/jira/base.rb
|
114
211
|
- lib/jira/base_factory.rb
|
115
212
|
- lib/jira/client.rb
|
@@ -119,10 +216,12 @@ files:
|
|
119
216
|
- lib/jira/oauth_client.rb
|
120
217
|
- lib/jira/railtie.rb
|
121
218
|
- lib/jira/request_client.rb
|
219
|
+
- lib/jira/resource/agile.rb
|
122
220
|
- lib/jira/resource/applinks.rb
|
123
221
|
- lib/jira/resource/attachment.rb
|
124
222
|
- lib/jira/resource/comment.rb
|
125
223
|
- lib/jira/resource/component.rb
|
224
|
+
- lib/jira/resource/createmeta.rb
|
126
225
|
- lib/jira/resource/field.rb
|
127
226
|
- lib/jira/resource/filter.rb
|
128
227
|
- lib/jira/resource/issue.rb
|
@@ -133,11 +232,14 @@ files:
|
|
133
232
|
- lib/jira/resource/project.rb
|
134
233
|
- lib/jira/resource/rapidview.rb
|
135
234
|
- lib/jira/resource/remotelink.rb
|
235
|
+
- lib/jira/resource/resolution.rb
|
136
236
|
- lib/jira/resource/serverinfo.rb
|
237
|
+
- lib/jira/resource/sprint.rb
|
137
238
|
- lib/jira/resource/status.rb
|
138
239
|
- lib/jira/resource/transition.rb
|
139
240
|
- lib/jira/resource/user.rb
|
140
241
|
- lib/jira/resource/version.rb
|
242
|
+
- lib/jira/resource/webhook.rb
|
141
243
|
- lib/jira/resource/worklog.rb
|
142
244
|
- lib/jira/tasks.rb
|
143
245
|
- lib/jira/version.rb
|
@@ -152,10 +254,12 @@ files:
|
|
152
254
|
- spec/integration/priority_spec.rb
|
153
255
|
- spec/integration/project_spec.rb
|
154
256
|
- spec/integration/rapidview_spec.rb
|
257
|
+
- spec/integration/resolution_spec.rb
|
155
258
|
- spec/integration/status_spec.rb
|
156
259
|
- spec/integration/transition_spec.rb
|
157
260
|
- spec/integration/user_spec.rb
|
158
261
|
- spec/integration/version_spec.rb
|
262
|
+
- spec/integration/webhook.rb
|
159
263
|
- spec/integration/worklog_spec.rb
|
160
264
|
- spec/jira/base_factory_spec.rb
|
161
265
|
- spec/jira/base_spec.rb
|
@@ -166,11 +270,14 @@ files:
|
|
166
270
|
- spec/jira/oauth_client_spec.rb
|
167
271
|
- spec/jira/request_client_spec.rb
|
168
272
|
- spec/jira/resource/attachment_spec.rb
|
273
|
+
- spec/jira/resource/createmeta_spec.rb
|
274
|
+
- spec/jira/resource/field_spec.rb
|
169
275
|
- spec/jira/resource/filter_spec.rb
|
170
276
|
- spec/jira/resource/issue_spec.rb
|
171
277
|
- spec/jira/resource/issuelink_spec.rb
|
172
278
|
- spec/jira/resource/project_factory_spec.rb
|
173
279
|
- spec/jira/resource/project_spec.rb
|
280
|
+
- spec/jira/resource/user_factory_spec.rb
|
174
281
|
- spec/jira/resource/worklog_spec.rb
|
175
282
|
- spec/mock_responses/attachment/10000.json
|
176
283
|
- spec/mock_responses/component.post.json
|
@@ -198,6 +305,8 @@ files:
|
|
198
305
|
- spec/mock_responses/issueLinkType/10000.json
|
199
306
|
- spec/mock_responses/issuetype.json
|
200
307
|
- spec/mock_responses/issuetype/5.json
|
308
|
+
- spec/mock_responses/jira/rest/webhooks/1.0/webhook.json
|
309
|
+
- spec/mock_responses/jira/rest/webhooks/1.0/webhook/2.json
|
201
310
|
- spec/mock_responses/priority.json
|
202
311
|
- spec/mock_responses/priority/1.json
|
203
312
|
- spec/mock_responses/project.json
|
@@ -207,6 +316,8 @@ files:
|
|
207
316
|
- spec/mock_responses/rapidview/SAMPLEPROJECT.issues.full.json
|
208
317
|
- spec/mock_responses/rapidview/SAMPLEPROJECT.issues.json
|
209
318
|
- spec/mock_responses/rapidview/SAMPLEPROJECT.json
|
319
|
+
- spec/mock_responses/resolution.json
|
320
|
+
- spec/mock_responses/resolution/1.json
|
210
321
|
- spec/mock_responses/status.json
|
211
322
|
- spec/mock_responses/status/1.json
|
212
323
|
- spec/mock_responses/user_username=admin.json
|
@@ -214,6 +325,8 @@ files:
|
|
214
325
|
- spec/mock_responses/version/10000.invalid.put.json
|
215
326
|
- spec/mock_responses/version/10000.json
|
216
327
|
- spec/mock_responses/version/10000.put.json
|
328
|
+
- spec/mock_responses/webhook.json
|
329
|
+
- spec/mock_responses/webhook/webhook.json
|
217
330
|
- spec/spec_helper.rb
|
218
331
|
- spec/support/clients_helper.rb
|
219
332
|
- spec/support/matchers/have_attributes.rb
|
@@ -240,7 +353,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
353
|
version: '0'
|
241
354
|
requirements: []
|
242
355
|
rubyforge_project: jira-ruby
|
243
|
-
rubygems_version: 2.
|
356
|
+
rubygems_version: 2.5.1
|
244
357
|
signing_key:
|
245
358
|
specification_version: 4
|
246
359
|
summary: Ruby Gem for use with the Atlassian JIRA REST API
|
@@ -255,10 +368,12 @@ test_files:
|
|
255
368
|
- spec/integration/priority_spec.rb
|
256
369
|
- spec/integration/project_spec.rb
|
257
370
|
- spec/integration/rapidview_spec.rb
|
371
|
+
- spec/integration/resolution_spec.rb
|
258
372
|
- spec/integration/status_spec.rb
|
259
373
|
- spec/integration/transition_spec.rb
|
260
374
|
- spec/integration/user_spec.rb
|
261
375
|
- spec/integration/version_spec.rb
|
376
|
+
- spec/integration/webhook.rb
|
262
377
|
- spec/integration/worklog_spec.rb
|
263
378
|
- spec/jira/base_factory_spec.rb
|
264
379
|
- spec/jira/base_spec.rb
|
@@ -269,11 +384,14 @@ test_files:
|
|
269
384
|
- spec/jira/oauth_client_spec.rb
|
270
385
|
- spec/jira/request_client_spec.rb
|
271
386
|
- spec/jira/resource/attachment_spec.rb
|
387
|
+
- spec/jira/resource/createmeta_spec.rb
|
388
|
+
- spec/jira/resource/field_spec.rb
|
272
389
|
- spec/jira/resource/filter_spec.rb
|
273
390
|
- spec/jira/resource/issue_spec.rb
|
274
391
|
- spec/jira/resource/issuelink_spec.rb
|
275
392
|
- spec/jira/resource/project_factory_spec.rb
|
276
393
|
- spec/jira/resource/project_spec.rb
|
394
|
+
- spec/jira/resource/user_factory_spec.rb
|
277
395
|
- spec/jira/resource/worklog_spec.rb
|
278
396
|
- spec/mock_responses/attachment/10000.json
|
279
397
|
- spec/mock_responses/component.post.json
|
@@ -301,6 +419,8 @@ test_files:
|
|
301
419
|
- spec/mock_responses/issueLinkType/10000.json
|
302
420
|
- spec/mock_responses/issuetype.json
|
303
421
|
- spec/mock_responses/issuetype/5.json
|
422
|
+
- spec/mock_responses/jira/rest/webhooks/1.0/webhook.json
|
423
|
+
- spec/mock_responses/jira/rest/webhooks/1.0/webhook/2.json
|
304
424
|
- spec/mock_responses/priority.json
|
305
425
|
- spec/mock_responses/priority/1.json
|
306
426
|
- spec/mock_responses/project.json
|
@@ -310,6 +430,8 @@ test_files:
|
|
310
430
|
- spec/mock_responses/rapidview/SAMPLEPROJECT.issues.full.json
|
311
431
|
- spec/mock_responses/rapidview/SAMPLEPROJECT.issues.json
|
312
432
|
- spec/mock_responses/rapidview/SAMPLEPROJECT.json
|
433
|
+
- spec/mock_responses/resolution.json
|
434
|
+
- spec/mock_responses/resolution/1.json
|
313
435
|
- spec/mock_responses/status.json
|
314
436
|
- spec/mock_responses/status/1.json
|
315
437
|
- spec/mock_responses/user_username=admin.json
|
@@ -317,6 +439,8 @@ test_files:
|
|
317
439
|
- spec/mock_responses/version/10000.invalid.put.json
|
318
440
|
- spec/mock_responses/version/10000.json
|
319
441
|
- spec/mock_responses/version/10000.put.json
|
442
|
+
- spec/mock_responses/webhook.json
|
443
|
+
- spec/mock_responses/webhook/webhook.json
|
320
444
|
- spec/spec_helper.rb
|
321
445
|
- spec/support/clients_helper.rb
|
322
446
|
- spec/support/matchers/have_attributes.rb
|