jira-ruby 0.1.8 → 0.1.9
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 +1 -1
- data/http-basic-example.rb +1 -1
- data/jira-ruby.gemspec +2 -6
- data/lib/jira.rb +1 -0
- data/lib/jira/base.rb +1 -1
- data/lib/jira/client.rb +6 -2
- data/lib/jira/http_client.rb +1 -1
- data/lib/jira/resource/field.rb +10 -0
- data/lib/jira/resource/issue.rb +2 -1
- data/lib/jira/version.rb +1 -1
- data/spec/integration/field_spec.rb +35 -0
- data/spec/jira/resource/issue_spec.rb +25 -1
- data/spec/mock_responses/field.json +32 -0
- data/spec/mock_responses/field/1.json +15 -0
- metadata +14 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a91329011e2ccf157d07936d501a70beb8ce35e2
|
4
|
+
data.tar.gz: d1dbd212719b220640475549e59e78a5d861d048
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1eb6f1379630c0899d7ea4cc60ed8c2ddf1addef20ee8efc0d2a9d0d9881d5a746634e4e4774cab7fdbe9d13a8426b4530a2111dde82dedc8d1e308474b5437
|
7
|
+
data.tar.gz: 5a3f281268b3203d4cb7480b78523b65d2aa381d9b21c9f3882eb7f255d8dff59936bd752e50c5084463cdc76497049ed6e52bd163394a289f1c2efef95a6d14
|
data/example.rb
CHANGED
@@ -58,7 +58,7 @@ pp issue
|
|
58
58
|
#
|
59
59
|
# # List issues by JQL query
|
60
60
|
# # ------------------------
|
61
|
-
# client.Issue.jql('PROJECT = "SAMPLEPROJECT"').each do |issue|
|
61
|
+
# client.Issue.jql('PROJECT = "SAMPLEPROJECT"', [comments, summary]).each do |issue|
|
62
62
|
# puts "#{issue.id} - #{issue.fields['summary']}"
|
63
63
|
# end
|
64
64
|
#
|
data/http-basic-example.rb
CHANGED
@@ -51,7 +51,7 @@ end
|
|
51
51
|
#
|
52
52
|
# # List issues by JQL query
|
53
53
|
# # ------------------------
|
54
|
-
# client.Issue.jql('PROJECT = "SAMPLEPROJECT"').each do |issue|
|
54
|
+
# client.Issue.jql('PROJECT = "SAMPLEPROJECT"', [comments, summary]).each do |issue|
|
55
55
|
# puts "#{issue.id} - #{issue.fields['summary']}"
|
56
56
|
# end
|
57
57
|
#
|
data/jira-ruby.gemspec
CHANGED
@@ -9,6 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.homepage = "http://www.sumoheavy.com"
|
10
10
|
s.summary = %q{Ruby Gem for use with the Atlassian JIRA REST API}
|
11
11
|
s.description = %q{API for JIRA}
|
12
|
+
s.licenses = ["OSL-3.0"]
|
12
13
|
|
13
14
|
s.rubyforge_project = "jira-ruby"
|
14
15
|
|
@@ -17,14 +18,9 @@ Gem::Specification.new do |s|
|
|
17
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
19
|
s.require_paths = ["lib"]
|
19
20
|
|
20
|
-
# specify any dependencies here; for example:
|
21
|
-
# s.add_development_dependency "rspec"
|
22
|
-
# s.add_runtime_dependency "rest-client"
|
23
|
-
s.add_runtime_dependency "oauth"
|
24
|
-
s.add_development_dependency "oauth"
|
25
21
|
s.add_development_dependency "railties"
|
22
|
+
s.add_runtime_dependency "oauth"
|
26
23
|
s.add_runtime_dependency "activesupport"
|
27
|
-
s.add_development_dependency "activesupport"
|
28
24
|
s.add_development_dependency "webmock"
|
29
25
|
s.add_development_dependency "rspec"
|
30
26
|
s.add_development_dependency "rake"
|
data/lib/jira.rb
CHANGED
data/lib/jira/base.rb
CHANGED
@@ -332,7 +332,7 @@ module JIRA
|
|
332
332
|
end
|
333
333
|
|
334
334
|
# Fetches the attributes for the specified resource from JIRA unless
|
335
|
-
# the resource is already expanded and the optional force reload flag
|
335
|
+
# the resource is already expanded and the optional force reload flag
|
336
336
|
# is not set
|
337
337
|
def fetch(reload = false, query_params = {})
|
338
338
|
return if expanded? && !reload
|
data/lib/jira/client.rb
CHANGED
@@ -5,7 +5,7 @@ module JIRA
|
|
5
5
|
|
6
6
|
# This class is the main access point for all JIRA::Resource instances.
|
7
7
|
#
|
8
|
-
# The client must be initialized with an options hash containing
|
8
|
+
# The client must be initialized with an options hash containing
|
9
9
|
# configuration options. The available options are:
|
10
10
|
#
|
11
11
|
# :site => 'http://localhost:2990',
|
@@ -28,7 +28,7 @@ module JIRA
|
|
28
28
|
#
|
29
29
|
# See the JIRA::Base class methods for all of the available methods on these accessor
|
30
30
|
# objects.
|
31
|
-
|
31
|
+
|
32
32
|
class Client
|
33
33
|
|
34
34
|
extend Forwardable
|
@@ -121,6 +121,10 @@ module JIRA
|
|
121
121
|
JIRA::Resource::TransitionFactory.new(self)
|
122
122
|
end
|
123
123
|
|
124
|
+
def Field # :nodoc:
|
125
|
+
JIRA::Resource::FieldFactory.new(self)
|
126
|
+
end
|
127
|
+
|
124
128
|
# HTTP methods without a body
|
125
129
|
def delete(path, headers = {})
|
126
130
|
request(:delete, path, nil, merge_default_headers(headers))
|
data/lib/jira/http_client.rb
CHANGED
data/lib/jira/resource/issue.rb
CHANGED
@@ -44,8 +44,9 @@ module JIRA
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
def self.jql(client, jql)
|
47
|
+
def self.jql(client, jql, fields = nil)
|
48
48
|
url = client.options[:rest_base_path] + "/search?jql=" + CGI.escape(jql)
|
49
|
+
url += CGI.escape("&fields=#{fields.join(",")}") if fields
|
49
50
|
response = client.get(url)
|
50
51
|
json = parse_json(response.body)
|
51
52
|
json['issues'].map do |issue|
|
data/lib/jira/version.rb
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe JIRA::Resource::Field do
|
4
|
+
|
5
|
+
with_each_client do |site_url, client|
|
6
|
+
let(:client) { client }
|
7
|
+
let(:site_url) { site_url }
|
8
|
+
|
9
|
+
|
10
|
+
let(:key) { "1" }
|
11
|
+
|
12
|
+
let(:expected_attributes) do
|
13
|
+
{
|
14
|
+
"id"=>key,
|
15
|
+
"name"=>"Description",
|
16
|
+
"custom"=>false,
|
17
|
+
"orderable"=>true,
|
18
|
+
"navigable"=>true,
|
19
|
+
"searchable"=>true,
|
20
|
+
"clauseNames"=>["description"],
|
21
|
+
"schema"=> {
|
22
|
+
"type"=>"string",
|
23
|
+
"system"=>"description"
|
24
|
+
}
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
let(:expected_collection_length) { 2 }
|
29
|
+
|
30
|
+
it_should_behave_like "a resource"
|
31
|
+
it_should_behave_like "a resource with a collection GET endpoint"
|
32
|
+
it_should_behave_like "a resource with a singular GET endpoint"
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe JIRA::Resource::Issue do
|
4
4
|
|
5
|
-
let(:client) { double() }
|
5
|
+
let(:client) { double(options: {rest_base_path: '/jira/rest/api/2'}) }
|
6
6
|
|
7
7
|
it "should find an issue by key or id" do
|
8
8
|
response = double()
|
@@ -19,6 +19,30 @@ describe JIRA::Resource::Issue do
|
|
19
19
|
issue_from_id.attrs.should == issue_from_key.attrs
|
20
20
|
end
|
21
21
|
|
22
|
+
it "should search an issue with a jql query string" do
|
23
|
+
response = double()
|
24
|
+
issue = double()
|
25
|
+
response.stub(:body).and_return('{"issues": {"key":"foo"}}')
|
26
|
+
client.should_receive(:get).with('/jira/rest/api/2/search?jql=foo+bar').
|
27
|
+
and_return(response)
|
28
|
+
client.should_receive(:Issue).and_return(issue)
|
29
|
+
issue.should_receive(:build).with(["key", "foo"]).and_return('')
|
30
|
+
|
31
|
+
JIRA::Resource::Issue.jql(client,'foo bar').should == ['']
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should search an issue with a jql query string and fields" do
|
35
|
+
response = double()
|
36
|
+
issue = double()
|
37
|
+
response.stub(:body).and_return('{"issues": {"key":"foo"}}')
|
38
|
+
client.should_receive(:get).with('/jira/rest/api/2/search?jql=foo+bar%26fields%3Dfoo%2Cbar').
|
39
|
+
and_return(response)
|
40
|
+
client.should_receive(:Issue).and_return(issue)
|
41
|
+
issue.should_receive(:build).with(["key", "foo"]).and_return('')
|
42
|
+
|
43
|
+
JIRA::Resource::Issue.jql(client,'foo bar',['foo','bar']).should == ['']
|
44
|
+
end
|
45
|
+
|
22
46
|
it "provides direct accessors to the fields" do
|
23
47
|
subject = JIRA::Resource::Issue.new(client, :attrs => {'fields' => {'foo' =>'bar'}})
|
24
48
|
subject.should respond_to(:foo)
|
@@ -0,0 +1,32 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": "1",
|
4
|
+
"name": "Description",
|
5
|
+
"custom": false,
|
6
|
+
"orderable": true,
|
7
|
+
"navigable": true,
|
8
|
+
"searchable": true,
|
9
|
+
"clauseNames": [
|
10
|
+
"description"
|
11
|
+
],
|
12
|
+
"schema": {
|
13
|
+
"type": "string",
|
14
|
+
"system": "description"
|
15
|
+
}
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"id": "2",
|
19
|
+
"name": "Summary",
|
20
|
+
"custom": false,
|
21
|
+
"orderable": true,
|
22
|
+
"navigable": true,
|
23
|
+
"searchable": true,
|
24
|
+
"clauseNames": [
|
25
|
+
"summary"
|
26
|
+
],
|
27
|
+
"schema": {
|
28
|
+
"type": "string",
|
29
|
+
"system": "summary"
|
30
|
+
}
|
31
|
+
}
|
32
|
+
]
|
metadata
CHANGED
@@ -1,43 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jira-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
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: 2014-
|
11
|
+
date: 2014-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: oauth
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: oauth
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - '>='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
13
|
- !ruby/object:Gem::Dependency
|
42
14
|
name: railties
|
43
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,7 +25,7 @@ dependencies:
|
|
53
25
|
- !ruby/object:Gem::Version
|
54
26
|
version: '0'
|
55
27
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
28
|
+
name: oauth
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
58
30
|
requirements:
|
59
31
|
- - '>='
|
@@ -73,7 +45,7 @@ dependencies:
|
|
73
45
|
- - '>='
|
74
46
|
- !ruby/object:Gem::Version
|
75
47
|
version: '0'
|
76
|
-
type: :
|
48
|
+
type: :runtime
|
77
49
|
prerelease: false
|
78
50
|
version_requirements: !ruby/object:Gem::Requirement
|
79
51
|
requirements:
|
@@ -150,6 +122,7 @@ files:
|
|
150
122
|
- lib/jira/resource/attachment.rb
|
151
123
|
- lib/jira/resource/comment.rb
|
152
124
|
- lib/jira/resource/component.rb
|
125
|
+
- lib/jira/resource/field.rb
|
153
126
|
- lib/jira/resource/filter.rb
|
154
127
|
- lib/jira/resource/issue.rb
|
155
128
|
- lib/jira/resource/issuetype.rb
|
@@ -166,6 +139,7 @@ files:
|
|
166
139
|
- spec/integration/attachment_spec.rb
|
167
140
|
- spec/integration/comment_spec.rb
|
168
141
|
- spec/integration/component_spec.rb
|
142
|
+
- spec/integration/field_spec.rb
|
169
143
|
- spec/integration/issue_spec.rb
|
170
144
|
- spec/integration/issuetype_spec.rb
|
171
145
|
- spec/integration/priority_spec.rb
|
@@ -194,6 +168,8 @@ files:
|
|
194
168
|
- spec/mock_responses/component/10000.invalid.put.json
|
195
169
|
- spec/mock_responses/component/10000.json
|
196
170
|
- spec/mock_responses/component/10000.put.json
|
171
|
+
- spec/mock_responses/field.json
|
172
|
+
- spec/mock_responses/field/1.json
|
197
173
|
- spec/mock_responses/issue.json
|
198
174
|
- spec/mock_responses/issue.post.json
|
199
175
|
- spec/mock_responses/issue/10002.invalid.put.json
|
@@ -230,7 +206,8 @@ files:
|
|
230
206
|
- spec/support/matchers/have_one.rb
|
231
207
|
- spec/support/shared_examples/integration.rb
|
232
208
|
homepage: http://www.sumoheavy.com
|
233
|
-
licenses:
|
209
|
+
licenses:
|
210
|
+
- OSL-3.0
|
234
211
|
metadata: {}
|
235
212
|
post_install_message:
|
236
213
|
rdoc_options: []
|
@@ -248,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
225
|
version: '0'
|
249
226
|
requirements: []
|
250
227
|
rubyforge_project: jira-ruby
|
251
|
-
rubygems_version: 2.
|
228
|
+
rubygems_version: 2.2.2
|
252
229
|
signing_key:
|
253
230
|
specification_version: 4
|
254
231
|
summary: Ruby Gem for use with the Atlassian JIRA REST API
|
@@ -256,6 +233,7 @@ test_files:
|
|
256
233
|
- spec/integration/attachment_spec.rb
|
257
234
|
- spec/integration/comment_spec.rb
|
258
235
|
- spec/integration/component_spec.rb
|
236
|
+
- spec/integration/field_spec.rb
|
259
237
|
- spec/integration/issue_spec.rb
|
260
238
|
- spec/integration/issuetype_spec.rb
|
261
239
|
- spec/integration/priority_spec.rb
|
@@ -284,6 +262,8 @@ test_files:
|
|
284
262
|
- spec/mock_responses/component/10000.invalid.put.json
|
285
263
|
- spec/mock_responses/component/10000.json
|
286
264
|
- spec/mock_responses/component/10000.put.json
|
265
|
+
- spec/mock_responses/field.json
|
266
|
+
- spec/mock_responses/field/1.json
|
287
267
|
- spec/mock_responses/issue.json
|
288
268
|
- spec/mock_responses/issue.post.json
|
289
269
|
- spec/mock_responses/issue/10002.invalid.put.json
|