jira-ruby 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/README.rdoc +259 -0
  2. data/Rakefile +9 -0
  3. data/example.rb +47 -4
  4. data/jira-ruby.gemspec +5 -3
  5. data/lib/jira.rb +21 -7
  6. data/lib/jira/base.rb +466 -0
  7. data/lib/jira/base_factory.rb +49 -0
  8. data/lib/jira/client.rb +79 -8
  9. data/lib/jira/has_many_proxy.rb +43 -0
  10. data/lib/jira/http_error.rb +16 -0
  11. data/lib/jira/resource/attachment.rb +12 -0
  12. data/lib/jira/resource/comment.rb +14 -0
  13. data/lib/jira/resource/component.rb +4 -9
  14. data/lib/jira/resource/issue.rb +49 -5
  15. data/lib/jira/resource/issuetype.rb +10 -0
  16. data/lib/jira/resource/priority.rb +10 -0
  17. data/lib/jira/resource/project.rb +24 -3
  18. data/lib/jira/resource/status.rb +10 -0
  19. data/lib/jira/resource/user.rb +14 -0
  20. data/lib/jira/resource/version.rb +10 -0
  21. data/lib/jira/resource/worklog.rb +16 -0
  22. data/lib/jira/version.rb +2 -2
  23. data/spec/integration/attachment_spec.rb +26 -0
  24. data/spec/integration/comment_spec.rb +55 -0
  25. data/spec/integration/component_spec.rb +25 -52
  26. data/spec/integration/issue_spec.rb +50 -47
  27. data/spec/integration/issuetype_spec.rb +27 -0
  28. data/spec/integration/priority_spec.rb +27 -0
  29. data/spec/integration/project_spec.rb +32 -24
  30. data/spec/integration/status_spec.rb +27 -0
  31. data/spec/integration/user_spec.rb +25 -0
  32. data/spec/integration/version_spec.rb +43 -0
  33. data/spec/integration/worklog_spec.rb +55 -0
  34. data/spec/jira/base_factory_spec.rb +46 -0
  35. data/spec/jira/base_spec.rb +555 -0
  36. data/spec/jira/client_spec.rb +12 -12
  37. data/spec/jira/has_many_proxy_spec.rb +45 -0
  38. data/spec/jira/{resource/http_error_spec.rb → http_error_spec.rb} +1 -1
  39. data/spec/jira/resource/attachment_spec.rb +20 -0
  40. data/spec/jira/resource/issue_spec.rb +83 -0
  41. data/spec/jira/resource/project_factory_spec.rb +3 -3
  42. data/spec/jira/resource/project_spec.rb +28 -0
  43. data/spec/jira/resource/worklog_spec.rb +24 -0
  44. data/spec/mock_responses/attachment/10000.json +20 -0
  45. data/spec/mock_responses/component/10000.invalid.put.json +5 -0
  46. data/spec/mock_responses/issue.json +1108 -0
  47. data/spec/mock_responses/issue/10002.invalid.put.json +6 -0
  48. data/spec/mock_responses/issue/10002.json +13 -1
  49. data/spec/mock_responses/issue/10002.put.missing_field_update.json +6 -0
  50. data/spec/mock_responses/issue/10002/comment.json +65 -0
  51. data/spec/mock_responses/issue/10002/comment.post.json +29 -0
  52. data/spec/mock_responses/issue/10002/comment/10000.json +29 -0
  53. data/spec/mock_responses/issue/10002/comment/10000.put.json +29 -0
  54. data/spec/mock_responses/issue/10002/worklog.json +98 -0
  55. data/spec/mock_responses/issue/10002/worklog.post.json +30 -0
  56. data/spec/mock_responses/issue/10002/worklog/10000.json +31 -0
  57. data/spec/mock_responses/issue/10002/worklog/10000.put.json +30 -0
  58. data/spec/mock_responses/issuetype.json +42 -0
  59. data/spec/mock_responses/issuetype/5.json +8 -0
  60. data/spec/mock_responses/priority.json +42 -0
  61. data/spec/mock_responses/priority/1.json +8 -0
  62. data/spec/mock_responses/project/SAMPLEPROJECT.issues.json +1108 -0
  63. data/spec/mock_responses/project/SAMPLEPROJECT.json +15 -1
  64. data/spec/mock_responses/status.json +37 -0
  65. data/spec/mock_responses/status/1.json +7 -0
  66. data/spec/mock_responses/user?username=admin.json +17 -0
  67. data/spec/mock_responses/version.post.json +7 -0
  68. data/spec/mock_responses/version/10000.invalid.put.json +5 -0
  69. data/spec/mock_responses/version/10000.json +11 -0
  70. data/spec/mock_responses/version/10000.put.json +7 -0
  71. data/spec/spec_helper.rb +7 -12
  72. data/spec/support/matchers/have_attributes.rb +11 -0
  73. data/spec/support/matchers/have_many.rb +9 -0
  74. data/spec/support/matchers/have_one.rb +5 -0
  75. data/spec/support/shared_examples/integration.rb +174 -0
  76. metadata +139 -24
  77. data/README.markdown +0 -81
  78. data/lib/jira/resource/base.rb +0 -148
  79. data/lib/jira/resource/base_factory.rb +0 -44
  80. data/lib/jira/resource/http_error.rb +0 -17
  81. data/spec/jira/resource/base_factory_spec.rb +0 -36
  82. data/spec/jira/resource/base_spec.rb +0 -292
@@ -1,8 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Jira::Client do
3
+ describe JIRA::Client do
4
4
 
5
- subject {Jira::Client.new('foo','bar')}
5
+ subject {JIRA::Client.new('foo','bar')}
6
6
 
7
7
  let(:response) do
8
8
  response = mock("response")
@@ -11,7 +11,7 @@ describe Jira::Client do
11
11
  end
12
12
 
13
13
  it "creates an instance" do
14
- subject.class.should == Jira::Client
14
+ subject.class.should == JIRA::Client
15
15
  end
16
16
 
17
17
  it "sets consumer key" do
@@ -23,24 +23,24 @@ describe Jira::Client do
23
23
  end
24
24
 
25
25
  it "sets the default options" do
26
- Jira::Client::DEFAULT_OPTIONS.each do |key, value|
26
+ JIRA::Client::DEFAULT_OPTIONS.each do |key, value|
27
27
  subject.options[key].should == value
28
28
  end
29
29
  end
30
30
 
31
31
  it "allows the overriding of some options" do
32
32
  # Check it overrides a given option ...
33
- client = Jira::Client.new('foo', 'bar', :site => 'http://foo.com/')
33
+ client = JIRA::Client.new('foo', 'bar', :site => 'http://foo.com/')
34
34
  client.options[:site].should == 'http://foo.com/'
35
35
 
36
36
  # ... but leaves the rest intact
37
- Jira::Client::DEFAULT_OPTIONS.keys.reject do |key|
37
+ JIRA::Client::DEFAULT_OPTIONS.keys.reject do |key|
38
38
  key == :site
39
39
  end.each do |key|
40
- client.options[key].should == Jira::Client::DEFAULT_OPTIONS[key]
40
+ client.options[key].should == JIRA::Client::DEFAULT_OPTIONS[key]
41
41
  end
42
42
 
43
- Jira::Client::DEFAULT_OPTIONS[:site].should_not == 'http://foo.com/'
43
+ JIRA::Client::DEFAULT_OPTIONS[:site].should_not == 'http://foo.com/'
44
44
  end
45
45
 
46
46
  # To avoid having to validate options after initialisation, e.g. setting
@@ -86,7 +86,7 @@ describe Jira::Client do
86
86
  it "raises an exception when accessing without initialisation" do
87
87
  lambda do
88
88
  subject.access_token
89
- end.should raise_exception(Jira::Client::UninitializedAccessTokenError, "init_access_token must be called before using the client")
89
+ end.should raise_exception(JIRA::Client::UninitializedAccessTokenError, "init_access_token must be called before using the client")
90
90
  end
91
91
 
92
92
  it "is possible to set the access token" do
@@ -134,7 +134,7 @@ describe Jira::Client do
134
134
 
135
135
  lambda do
136
136
  subject.request(:get, '/foo')
137
- end.should raise_exception(Jira::Resource::HTTPError)
137
+ end.should raise_exception(JIRA::HTTPError)
138
138
  end
139
139
 
140
140
  end
@@ -142,13 +142,13 @@ describe Jira::Client do
142
142
  describe "Resource Factories" do
143
143
 
144
144
  it "gets all projects" do
145
- Jira::Resource::Project.should_receive(:all).with(subject).and_return([])
145
+ JIRA::Resource::Project.should_receive(:all).with(subject).and_return([])
146
146
  subject.Project.all.should == []
147
147
  end
148
148
 
149
149
  it "finds a single project" do
150
150
  find_result = mock()
151
- Jira::Resource::Project.should_receive(:find).with(subject, '123').and_return(find_result)
151
+ JIRA::Resource::Project.should_receive(:find).with(subject, '123').and_return(find_result)
152
152
  subject.Project.find('123').should == find_result
153
153
  end
154
154
 
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe JIRA::HasManyProxy do
4
+
5
+ class Foo ; end
6
+
7
+ subject { JIRA::HasManyProxy.new(parent, Foo, collection) }
8
+
9
+ let(:parent) { mock("parent") }
10
+ let(:collection) { mock("collection") }
11
+
12
+ it "has a target class" do
13
+ subject.target_class.should == Foo
14
+ end
15
+
16
+ it "has a parent" do
17
+ subject.parent.should == parent
18
+ end
19
+
20
+ it "has a collection" do
21
+ subject.collection.should == collection
22
+ end
23
+
24
+ it "can build a new instance" do
25
+ client = mock('client')
26
+ foo = mock('foo')
27
+ parent.stub(:client => client, :to_sym => :parent)
28
+ Foo.should_receive(:new).with(client, :attrs => {'foo' => 'bar'}, :parent => parent).and_return(foo)
29
+ collection.should_receive(:<<).with(foo)
30
+ subject.build('foo' => 'bar').should == foo
31
+ end
32
+
33
+ it "can get all the instances" do
34
+ foo = mock('foo')
35
+ client = mock('client')
36
+ parent.stub(:client => client, :to_sym => :parent)
37
+ Foo.should_receive(:all).with(client, :parent => parent).and_return(foo)
38
+ subject.all.should == foo
39
+ end
40
+
41
+ it "delegates missing methods to the collection" do
42
+ collection.should_receive(:missing_method)
43
+ subject.missing_method
44
+ end
45
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Jira::Resource::HTTPError do
3
+ describe JIRA::HTTPError do
4
4
 
5
5
  let(:response) {
6
6
  response = mock("response")
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe JIRA::Resource::Attachment do
4
+
5
+ let(:client) { mock() }
6
+
7
+ describe "relationships" do
8
+ subject {
9
+ JIRA::Resource::Attachment.new(client, :attrs => {
10
+ 'author' => {'foo' => 'bar'}
11
+ })
12
+ }
13
+
14
+ it "has the correct relationships" do
15
+ subject.should have_one(:author, JIRA::Resource::User)
16
+ subject.author.foo.should == 'bar'
17
+ end
18
+ end
19
+
20
+ end
@@ -0,0 +1,83 @@
1
+ require 'spec_helper'
2
+
3
+ describe JIRA::Resource::Issue do
4
+
5
+ let(:client) { mock() }
6
+
7
+ it "should find an issue by key or id" do
8
+ response = mock()
9
+ response.stub(:body).and_return('{"key":"foo","id":"101"}')
10
+ JIRA::Resource::Issue.stub(:collection_path).and_return('/jira/rest/api/2/issue')
11
+ client.should_receive(:get).with('/jira/rest/api/2/issue/foo')
12
+ .and_return(response)
13
+ client.should_receive(:get).with('/jira/rest/api/2/issue/101')
14
+ .and_return(response)
15
+
16
+ issue_from_id = JIRA::Resource::Issue.find(client,101)
17
+ issue_from_key = JIRA::Resource::Issue.find(client,'foo')
18
+
19
+ issue_from_id.attrs.should == issue_from_key.attrs
20
+ end
21
+
22
+ it "provides direct accessors to the fields" do
23
+ subject = JIRA::Resource::Issue.new(client, :attrs => {'fields' => {'foo' =>'bar'}})
24
+ subject.should respond_to(:foo)
25
+ subject.foo.should == 'bar'
26
+ end
27
+
28
+ describe "relationships" do
29
+ subject {
30
+ JIRA::Resource::Issue.new(client, :attrs => {
31
+ 'id' => '123',
32
+ 'fields' => {
33
+ 'reporter' => {'foo' => 'bar'},
34
+ 'assignee' => {'foo' => 'bar'},
35
+ 'project' => {'foo' => 'bar'},
36
+ 'priority' => {'foo' => 'bar'},
37
+ 'issuetype' => {'foo' => 'bar'},
38
+ 'status' => {'foo' => 'bar'},
39
+ 'components' => [{'foo' => 'bar'}, {'baz' => 'flum'}],
40
+ 'versions' => [{'foo' => 'bar'}, {'baz' => 'flum'}],
41
+ 'comment' => { 'comments' => [{'foo' => 'bar'}, {'baz' => 'flum'}]},
42
+ 'attachment' => [{'foo' => 'bar'}, {'baz' => 'flum'}],
43
+ 'worklog' => { 'worklogs' => [{'foo' => 'bar'}, {'baz' => 'flum'}]},
44
+ }
45
+ })
46
+ }
47
+
48
+ it "has the correct relationships" do
49
+ subject.should have_one(:reporter, JIRA::Resource::User)
50
+ subject.reporter.foo.should == 'bar'
51
+
52
+ subject.should have_one(:assignee, JIRA::Resource::User)
53
+ subject.assignee.foo.should == 'bar'
54
+
55
+ subject.should have_one(:project, JIRA::Resource::Project)
56
+ subject.project.foo.should == 'bar'
57
+
58
+ subject.should have_one(:issuetype, JIRA::Resource::Issuetype)
59
+ subject.issuetype.foo.should == 'bar'
60
+
61
+ subject.should have_one(:priority, JIRA::Resource::Priority)
62
+ subject.priority.foo.should == 'bar'
63
+
64
+ subject.should have_one(:status, JIRA::Resource::Status)
65
+ subject.status.foo.should == 'bar'
66
+
67
+ subject.should have_many(:components, JIRA::Resource::Component)
68
+ subject.components.length.should == 2
69
+
70
+ subject.should have_many(:comments, JIRA::Resource::Comment)
71
+ subject.comments.length.should == 2
72
+
73
+ subject.should have_many(:attachments, JIRA::Resource::Attachment)
74
+ subject.attachments.length.should == 2
75
+
76
+ subject.should have_many(:versions, JIRA::Resource::Version)
77
+ subject.attachments.length.should == 2
78
+
79
+ subject.should have_many(:worklogs, JIRA::Resource::Worklog)
80
+ subject.worklogs.length.should == 2
81
+ end
82
+ end
83
+ end
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Jira::Resource::ProjectFactory do
3
+ describe JIRA::Resource::ProjectFactory do
4
4
 
5
5
  let(:client) { mock() }
6
- subject { Jira::Resource::ProjectFactory.new(client) }
6
+ subject { JIRA::Resource::ProjectFactory.new(client) }
7
7
 
8
8
  it "initializes correctly" do
9
- subject.class.should == Jira::Resource::ProjectFactory
9
+ subject.class.should == JIRA::Resource::ProjectFactory
10
10
  subject.client.should == client
11
11
  end
12
12
 
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe JIRA::Resource::Project do
4
+
5
+ let(:client) { mock() }
6
+
7
+ describe "relationships" do
8
+ subject {
9
+ JIRA::Resource::Project.new(client, :attrs => {
10
+ 'lead' => {'foo' => 'bar'},
11
+ 'issueTypes' => [{'foo' =>'bar'},{'baz' => 'flum'}],
12
+ 'versions' => [{'foo' =>'bar'},{'baz' => 'flum'}]
13
+ })
14
+ }
15
+
16
+ it "has the correct relationships" do
17
+ subject.should have_one(:lead, JIRA::Resource::User)
18
+ subject.lead.foo.should == 'bar'
19
+
20
+ subject.should have_many(:issuetypes, JIRA::Resource::Issuetype)
21
+ subject.issuetypes.length.should == 2
22
+
23
+ subject.should have_many(:versions, JIRA::Resource::Version)
24
+ subject.versions.length.should == 2
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe JIRA::Resource::Worklog do
4
+
5
+ let(:client) { mock() }
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
+ }
14
+
15
+ it "has the correct relationships" do
16
+ subject.should have_one(:author, JIRA::Resource::User)
17
+ subject.author.foo.should == 'bar'
18
+
19
+ subject.should have_one(:update_author, JIRA::Resource::User)
20
+ subject.update_author.foo.should == 'bar'
21
+ end
22
+ end
23
+
24
+ end
@@ -0,0 +1,20 @@
1
+ {
2
+ "self": "http://localhost:2990/jira/rest/api/2/attachment/10000",
3
+ "filename": "ballmer.png",
4
+ "author": {
5
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
6
+ "name": "admin",
7
+ "avatarUrls": {
8
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
9
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
10
+ },
11
+ "displayName": "admin",
12
+ "active": true
13
+ },
14
+ "created": "2012-01-11T10:54:50.875+1300",
15
+ "size": 15360,
16
+ "mimeType": "image/png",
17
+ "properties": {},
18
+ "content": "http://localhost:2990/jira/secure/attachment/10000/ballmer.png",
19
+ "thumbnail": "http://localhost:2990/jira/secure/thumbnail/10000/_thumb_10000.png"
20
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "errorMessages": [
3
+ "Unrecognized field \"invalid\" (Class com.atlassian.jira.rest.v2.issue.component.ComponentBean), not marked as ignorable\n at [Source: org.apache.catalina.connector.CoyoteInputStream@70faf7c7; line: 1, column: 2]"
4
+ ]
5
+ }
@@ -0,0 +1,1108 @@
1
+ {
2
+ "expand": "schema,names",
3
+ "startAt": 0,
4
+ "maxResults": 50,
5
+ "total": 11,
6
+ "issues": [
7
+ {
8
+ "expand": "editmeta,renderedFields,transitions,changelog",
9
+ "id": "10014",
10
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10014",
11
+ "key": "SAMPLEPROJECT-13",
12
+ "fields": {
13
+ "summary": "blarg from in example.rb",
14
+ "progress": {
15
+ "progress": 0,
16
+ "total": 0
17
+ },
18
+ "issuetype": {
19
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
20
+ "id": "3",
21
+ "description": "A task that needs to be done.",
22
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
23
+ "name": "Task",
24
+ "subtask": false
25
+ },
26
+ "votes": {
27
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-13/votes",
28
+ "votes": 0,
29
+ "hasVoted": false
30
+ },
31
+ "resolution": null,
32
+ "fixVersions": [],
33
+ "resolutiondate": null,
34
+ "timespent": null,
35
+ "reporter": {
36
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
37
+ "name": "admin",
38
+ "emailAddress": "admin@example.com",
39
+ "avatarUrls": {
40
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
41
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
42
+ },
43
+ "displayName": "admin",
44
+ "active": true
45
+ },
46
+ "aggregatetimeoriginalestimate": null,
47
+ "updated": "2011-12-15T15:35:06.000+1300",
48
+ "created": "2011-12-15T15:35:06.000+1300",
49
+ "description": null,
50
+ "priority": {
51
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
52
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
53
+ "name": "Major",
54
+ "id": "3"
55
+ },
56
+ "duedate": null,
57
+ "issuelinks": [],
58
+ "watches": {
59
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-13/watchers",
60
+ "watchCount": 0,
61
+ "isWatching": false
62
+ },
63
+ "subtasks": [],
64
+ "status": {
65
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
66
+ "description": "The issue is open and ready for the assignee to start work on it.",
67
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
68
+ "name": "Open",
69
+ "id": "1"
70
+ },
71
+ "labels": [],
72
+ "assignee": {
73
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
74
+ "name": "admin",
75
+ "emailAddress": "admin@example.com",
76
+ "avatarUrls": {
77
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
78
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
79
+ },
80
+ "displayName": "admin",
81
+ "active": true
82
+ },
83
+ "workratio": -1,
84
+ "aggregatetimeestimate": null,
85
+ "project": {
86
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
87
+ "id": "10001",
88
+ "key": "SAMPLEPROJECT",
89
+ "name": "Sample Project for Developing RoR RESTful API",
90
+ "avatarUrls": {
91
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
92
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
93
+ }
94
+ },
95
+ "versions": [],
96
+ "environment": null,
97
+ "timeestimate": null,
98
+ "aggregateprogress": {
99
+ "progress": 0,
100
+ "total": 0
101
+ },
102
+ "components": [],
103
+ "timeoriginalestimate": null,
104
+ "aggregatetimespent": null
105
+ }
106
+ },
107
+ {
108
+ "expand": "editmeta,renderedFields,transitions,changelog",
109
+ "id": "10013",
110
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10013",
111
+ "key": "SAMPLEPROJECT-12",
112
+ "fields": {
113
+ "summary": "blarg from in example.rb",
114
+ "progress": {
115
+ "progress": 0,
116
+ "total": 0
117
+ },
118
+ "issuetype": {
119
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
120
+ "id": "3",
121
+ "description": "A task that needs to be done.",
122
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
123
+ "name": "Task",
124
+ "subtask": false
125
+ },
126
+ "votes": {
127
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-12/votes",
128
+ "votes": 0,
129
+ "hasVoted": false
130
+ },
131
+ "resolution": null,
132
+ "fixVersions": [],
133
+ "resolutiondate": null,
134
+ "timespent": null,
135
+ "reporter": {
136
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
137
+ "name": "admin",
138
+ "emailAddress": "admin@example.com",
139
+ "avatarUrls": {
140
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
141
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
142
+ },
143
+ "displayName": "admin",
144
+ "active": true
145
+ },
146
+ "aggregatetimeoriginalestimate": null,
147
+ "updated": "2011-12-15T15:34:58.000+1300",
148
+ "created": "2011-12-15T15:34:58.000+1300",
149
+ "description": null,
150
+ "priority": {
151
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
152
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
153
+ "name": "Major",
154
+ "id": "3"
155
+ },
156
+ "duedate": null,
157
+ "issuelinks": [],
158
+ "watches": {
159
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-12/watchers",
160
+ "watchCount": 0,
161
+ "isWatching": false
162
+ },
163
+ "subtasks": [],
164
+ "status": {
165
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
166
+ "description": "The issue is open and ready for the assignee to start work on it.",
167
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
168
+ "name": "Open",
169
+ "id": "1"
170
+ },
171
+ "labels": [],
172
+ "assignee": {
173
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
174
+ "name": "admin",
175
+ "emailAddress": "admin@example.com",
176
+ "avatarUrls": {
177
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
178
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
179
+ },
180
+ "displayName": "admin",
181
+ "active": true
182
+ },
183
+ "workratio": -1,
184
+ "aggregatetimeestimate": null,
185
+ "project": {
186
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
187
+ "id": "10001",
188
+ "key": "SAMPLEPROJECT",
189
+ "name": "Sample Project for Developing RoR RESTful API",
190
+ "avatarUrls": {
191
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
192
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
193
+ }
194
+ },
195
+ "versions": [],
196
+ "environment": null,
197
+ "timeestimate": null,
198
+ "aggregateprogress": {
199
+ "progress": 0,
200
+ "total": 0
201
+ },
202
+ "components": [],
203
+ "timeoriginalestimate": null,
204
+ "aggregatetimespent": null
205
+ }
206
+ },
207
+ {
208
+ "expand": "editmeta,renderedFields,transitions,changelog",
209
+ "id": "10012",
210
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10012",
211
+ "key": "SAMPLEPROJECT-11",
212
+ "fields": {
213
+ "summary": "blarg from in example.rb",
214
+ "progress": {
215
+ "progress": 0,
216
+ "total": 0
217
+ },
218
+ "issuetype": {
219
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
220
+ "id": "3",
221
+ "description": "A task that needs to be done.",
222
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
223
+ "name": "Task",
224
+ "subtask": false
225
+ },
226
+ "votes": {
227
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-11/votes",
228
+ "votes": 0,
229
+ "hasVoted": false
230
+ },
231
+ "resolution": null,
232
+ "fixVersions": [],
233
+ "resolutiondate": null,
234
+ "timespent": null,
235
+ "reporter": {
236
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
237
+ "name": "admin",
238
+ "emailAddress": "admin@example.com",
239
+ "avatarUrls": {
240
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
241
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
242
+ },
243
+ "displayName": "admin",
244
+ "active": true
245
+ },
246
+ "aggregatetimeoriginalestimate": null,
247
+ "updated": "2011-12-15T15:34:48.000+1300",
248
+ "created": "2011-12-15T15:34:48.000+1300",
249
+ "description": null,
250
+ "priority": {
251
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
252
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
253
+ "name": "Major",
254
+ "id": "3"
255
+ },
256
+ "duedate": null,
257
+ "issuelinks": [],
258
+ "watches": {
259
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-11/watchers",
260
+ "watchCount": 0,
261
+ "isWatching": false
262
+ },
263
+ "subtasks": [],
264
+ "status": {
265
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
266
+ "description": "The issue is open and ready for the assignee to start work on it.",
267
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
268
+ "name": "Open",
269
+ "id": "1"
270
+ },
271
+ "labels": [],
272
+ "assignee": {
273
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
274
+ "name": "admin",
275
+ "emailAddress": "admin@example.com",
276
+ "avatarUrls": {
277
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
278
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
279
+ },
280
+ "displayName": "admin",
281
+ "active": true
282
+ },
283
+ "workratio": -1,
284
+ "aggregatetimeestimate": null,
285
+ "project": {
286
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
287
+ "id": "10001",
288
+ "key": "SAMPLEPROJECT",
289
+ "name": "Sample Project for Developing RoR RESTful API",
290
+ "avatarUrls": {
291
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
292
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
293
+ }
294
+ },
295
+ "versions": [],
296
+ "environment": null,
297
+ "timeestimate": null,
298
+ "aggregateprogress": {
299
+ "progress": 0,
300
+ "total": 0
301
+ },
302
+ "components": [],
303
+ "timeoriginalestimate": null,
304
+ "aggregatetimespent": null
305
+ }
306
+ },
307
+ {
308
+ "expand": "editmeta,renderedFields,transitions,changelog",
309
+ "id": "10011",
310
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10011",
311
+ "key": "SAMPLEPROJECT-10",
312
+ "fields": {
313
+ "summary": "blarg from in example.rb",
314
+ "progress": {
315
+ "progress": 0,
316
+ "total": 0
317
+ },
318
+ "issuetype": {
319
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
320
+ "id": "3",
321
+ "description": "A task that needs to be done.",
322
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
323
+ "name": "Task",
324
+ "subtask": false
325
+ },
326
+ "votes": {
327
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-10/votes",
328
+ "votes": 0,
329
+ "hasVoted": false
330
+ },
331
+ "resolution": null,
332
+ "fixVersions": [],
333
+ "resolutiondate": null,
334
+ "timespent": null,
335
+ "reporter": {
336
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
337
+ "name": "admin",
338
+ "emailAddress": "admin@example.com",
339
+ "avatarUrls": {
340
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
341
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
342
+ },
343
+ "displayName": "admin",
344
+ "active": true
345
+ },
346
+ "aggregatetimeoriginalestimate": null,
347
+ "updated": "2011-12-15T15:11:57.000+1300",
348
+ "created": "2011-12-15T15:11:57.000+1300",
349
+ "description": null,
350
+ "priority": {
351
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
352
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
353
+ "name": "Major",
354
+ "id": "3"
355
+ },
356
+ "duedate": null,
357
+ "issuelinks": [],
358
+ "watches": {
359
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-10/watchers",
360
+ "watchCount": 0,
361
+ "isWatching": false
362
+ },
363
+ "subtasks": [],
364
+ "status": {
365
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
366
+ "description": "The issue is open and ready for the assignee to start work on it.",
367
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
368
+ "name": "Open",
369
+ "id": "1"
370
+ },
371
+ "labels": [],
372
+ "assignee": {
373
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
374
+ "name": "admin",
375
+ "emailAddress": "admin@example.com",
376
+ "avatarUrls": {
377
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
378
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
379
+ },
380
+ "displayName": "admin",
381
+ "active": true
382
+ },
383
+ "workratio": -1,
384
+ "aggregatetimeestimate": null,
385
+ "project": {
386
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
387
+ "id": "10001",
388
+ "key": "SAMPLEPROJECT",
389
+ "name": "Sample Project for Developing RoR RESTful API",
390
+ "avatarUrls": {
391
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
392
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
393
+ }
394
+ },
395
+ "versions": [],
396
+ "environment": null,
397
+ "timeestimate": null,
398
+ "aggregateprogress": {
399
+ "progress": 0,
400
+ "total": 0
401
+ },
402
+ "components": [],
403
+ "timeoriginalestimate": null,
404
+ "aggregatetimespent": null
405
+ }
406
+ },
407
+ {
408
+ "expand": "editmeta,renderedFields,transitions,changelog",
409
+ "id": "10010",
410
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10010",
411
+ "key": "SAMPLEPROJECT-9",
412
+ "fields": {
413
+ "summary": "blarg from in example.rb",
414
+ "progress": {
415
+ "progress": 0,
416
+ "total": 0
417
+ },
418
+ "issuetype": {
419
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
420
+ "id": "3",
421
+ "description": "A task that needs to be done.",
422
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
423
+ "name": "Task",
424
+ "subtask": false
425
+ },
426
+ "votes": {
427
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-9/votes",
428
+ "votes": 0,
429
+ "hasVoted": false
430
+ },
431
+ "resolution": null,
432
+ "fixVersions": [],
433
+ "resolutiondate": null,
434
+ "timespent": null,
435
+ "reporter": {
436
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
437
+ "name": "admin",
438
+ "emailAddress": "admin@example.com",
439
+ "avatarUrls": {
440
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
441
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
442
+ },
443
+ "displayName": "admin",
444
+ "active": true
445
+ },
446
+ "aggregatetimeoriginalestimate": null,
447
+ "updated": "2011-12-15T15:11:45.000+1300",
448
+ "created": "2011-12-15T15:11:45.000+1300",
449
+ "description": null,
450
+ "priority": {
451
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
452
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
453
+ "name": "Major",
454
+ "id": "3"
455
+ },
456
+ "duedate": null,
457
+ "issuelinks": [],
458
+ "watches": {
459
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-9/watchers",
460
+ "watchCount": 0,
461
+ "isWatching": false
462
+ },
463
+ "subtasks": [],
464
+ "status": {
465
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
466
+ "description": "The issue is open and ready for the assignee to start work on it.",
467
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
468
+ "name": "Open",
469
+ "id": "1"
470
+ },
471
+ "labels": [],
472
+ "assignee": {
473
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
474
+ "name": "admin",
475
+ "emailAddress": "admin@example.com",
476
+ "avatarUrls": {
477
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
478
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
479
+ },
480
+ "displayName": "admin",
481
+ "active": true
482
+ },
483
+ "workratio": -1,
484
+ "aggregatetimeestimate": null,
485
+ "project": {
486
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
487
+ "id": "10001",
488
+ "key": "SAMPLEPROJECT",
489
+ "name": "Sample Project for Developing RoR RESTful API",
490
+ "avatarUrls": {
491
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
492
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
493
+ }
494
+ },
495
+ "versions": [],
496
+ "environment": null,
497
+ "timeestimate": null,
498
+ "aggregateprogress": {
499
+ "progress": 0,
500
+ "total": 0
501
+ },
502
+ "components": [],
503
+ "timeoriginalestimate": null,
504
+ "aggregatetimespent": null
505
+ }
506
+ },
507
+ {
508
+ "expand": "editmeta,renderedFields,transitions,changelog",
509
+ "id": "10009",
510
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10009",
511
+ "key": "SAMPLEPROJECT-8",
512
+ "fields": {
513
+ "summary": "blarg from in example.rb",
514
+ "progress": {
515
+ "progress": 0,
516
+ "total": 0
517
+ },
518
+ "issuetype": {
519
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
520
+ "id": "3",
521
+ "description": "A task that needs to be done.",
522
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
523
+ "name": "Task",
524
+ "subtask": false
525
+ },
526
+ "votes": {
527
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-8/votes",
528
+ "votes": 0,
529
+ "hasVoted": false
530
+ },
531
+ "resolution": null,
532
+ "fixVersions": [],
533
+ "resolutiondate": null,
534
+ "timespent": null,
535
+ "reporter": {
536
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
537
+ "name": "admin",
538
+ "emailAddress": "admin@example.com",
539
+ "avatarUrls": {
540
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
541
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
542
+ },
543
+ "displayName": "admin",
544
+ "active": true
545
+ },
546
+ "aggregatetimeoriginalestimate": null,
547
+ "updated": "2011-12-15T14:19:49.000+1300",
548
+ "created": "2011-12-15T14:19:49.000+1300",
549
+ "description": null,
550
+ "priority": {
551
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
552
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
553
+ "name": "Major",
554
+ "id": "3"
555
+ },
556
+ "duedate": null,
557
+ "issuelinks": [],
558
+ "watches": {
559
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-8/watchers",
560
+ "watchCount": 0,
561
+ "isWatching": false
562
+ },
563
+ "subtasks": [],
564
+ "status": {
565
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
566
+ "description": "The issue is open and ready for the assignee to start work on it.",
567
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
568
+ "name": "Open",
569
+ "id": "1"
570
+ },
571
+ "labels": [],
572
+ "assignee": {
573
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
574
+ "name": "admin",
575
+ "emailAddress": "admin@example.com",
576
+ "avatarUrls": {
577
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
578
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
579
+ },
580
+ "displayName": "admin",
581
+ "active": true
582
+ },
583
+ "workratio": -1,
584
+ "aggregatetimeestimate": null,
585
+ "project": {
586
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
587
+ "id": "10001",
588
+ "key": "SAMPLEPROJECT",
589
+ "name": "Sample Project for Developing RoR RESTful API",
590
+ "avatarUrls": {
591
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
592
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
593
+ }
594
+ },
595
+ "versions": [],
596
+ "environment": null,
597
+ "timeestimate": null,
598
+ "aggregateprogress": {
599
+ "progress": 0,
600
+ "total": 0
601
+ },
602
+ "components": [],
603
+ "timeoriginalestimate": null,
604
+ "aggregatetimespent": null
605
+ }
606
+ },
607
+ {
608
+ "expand": "editmeta,renderedFields,transitions,changelog",
609
+ "id": "10008",
610
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10008",
611
+ "key": "SAMPLEPROJECT-7",
612
+ "fields": {
613
+ "summary": "blarg from in example.rb",
614
+ "progress": {
615
+ "progress": 0,
616
+ "total": 0
617
+ },
618
+ "issuetype": {
619
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
620
+ "id": "3",
621
+ "description": "A task that needs to be done.",
622
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
623
+ "name": "Task",
624
+ "subtask": false
625
+ },
626
+ "votes": {
627
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-7/votes",
628
+ "votes": 0,
629
+ "hasVoted": false
630
+ },
631
+ "resolution": null,
632
+ "fixVersions": [],
633
+ "resolutiondate": null,
634
+ "timespent": null,
635
+ "reporter": {
636
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
637
+ "name": "admin",
638
+ "emailAddress": "admin@example.com",
639
+ "avatarUrls": {
640
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
641
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
642
+ },
643
+ "displayName": "admin",
644
+ "active": true
645
+ },
646
+ "aggregatetimeoriginalestimate": null,
647
+ "updated": "2011-12-14T14:50:38.000+1300",
648
+ "created": "2011-12-14T14:50:38.000+1300",
649
+ "description": null,
650
+ "priority": {
651
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
652
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
653
+ "name": "Major",
654
+ "id": "3"
655
+ },
656
+ "duedate": null,
657
+ "issuelinks": [],
658
+ "watches": {
659
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-7/watchers",
660
+ "watchCount": 0,
661
+ "isWatching": false
662
+ },
663
+ "subtasks": [],
664
+ "status": {
665
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
666
+ "description": "The issue is open and ready for the assignee to start work on it.",
667
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
668
+ "name": "Open",
669
+ "id": "1"
670
+ },
671
+ "labels": [],
672
+ "assignee": {
673
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
674
+ "name": "admin",
675
+ "emailAddress": "admin@example.com",
676
+ "avatarUrls": {
677
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
678
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
679
+ },
680
+ "displayName": "admin",
681
+ "active": true
682
+ },
683
+ "workratio": -1,
684
+ "aggregatetimeestimate": null,
685
+ "project": {
686
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
687
+ "id": "10001",
688
+ "key": "SAMPLEPROJECT",
689
+ "name": "Sample Project for Developing RoR RESTful API",
690
+ "avatarUrls": {
691
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
692
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
693
+ }
694
+ },
695
+ "versions": [],
696
+ "environment": null,
697
+ "timeestimate": null,
698
+ "aggregateprogress": {
699
+ "progress": 0,
700
+ "total": 0
701
+ },
702
+ "components": [],
703
+ "timeoriginalestimate": null,
704
+ "aggregatetimespent": null
705
+ }
706
+ },
707
+ {
708
+ "expand": "editmeta,renderedFields,transitions,changelog",
709
+ "id": "10007",
710
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10007",
711
+ "key": "SAMPLEPROJECT-6",
712
+ "fields": {
713
+ "summary": "blarg from in example.rb",
714
+ "progress": {
715
+ "progress": 0,
716
+ "total": 0
717
+ },
718
+ "issuetype": {
719
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
720
+ "id": "3",
721
+ "description": "A task that needs to be done.",
722
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
723
+ "name": "Task",
724
+ "subtask": false
725
+ },
726
+ "votes": {
727
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-6/votes",
728
+ "votes": 0,
729
+ "hasVoted": false
730
+ },
731
+ "resolution": null,
732
+ "fixVersions": [],
733
+ "resolutiondate": null,
734
+ "timespent": null,
735
+ "reporter": {
736
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
737
+ "name": "admin",
738
+ "emailAddress": "admin@example.com",
739
+ "avatarUrls": {
740
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
741
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
742
+ },
743
+ "displayName": "admin",
744
+ "active": true
745
+ },
746
+ "aggregatetimeoriginalestimate": null,
747
+ "updated": "2011-12-14T14:49:35.000+1300",
748
+ "created": "2011-12-14T14:49:35.000+1300",
749
+ "description": null,
750
+ "priority": {
751
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
752
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
753
+ "name": "Major",
754
+ "id": "3"
755
+ },
756
+ "duedate": null,
757
+ "issuelinks": [],
758
+ "watches": {
759
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-6/watchers",
760
+ "watchCount": 0,
761
+ "isWatching": false
762
+ },
763
+ "subtasks": [],
764
+ "status": {
765
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
766
+ "description": "The issue is open and ready for the assignee to start work on it.",
767
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
768
+ "name": "Open",
769
+ "id": "1"
770
+ },
771
+ "labels": [],
772
+ "assignee": {
773
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
774
+ "name": "admin",
775
+ "emailAddress": "admin@example.com",
776
+ "avatarUrls": {
777
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
778
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
779
+ },
780
+ "displayName": "admin",
781
+ "active": true
782
+ },
783
+ "workratio": -1,
784
+ "aggregatetimeestimate": null,
785
+ "project": {
786
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
787
+ "id": "10001",
788
+ "key": "SAMPLEPROJECT",
789
+ "name": "Sample Project for Developing RoR RESTful API",
790
+ "avatarUrls": {
791
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
792
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
793
+ }
794
+ },
795
+ "versions": [],
796
+ "environment": null,
797
+ "timeestimate": null,
798
+ "aggregateprogress": {
799
+ "progress": 0,
800
+ "total": 0
801
+ },
802
+ "components": [],
803
+ "timeoriginalestimate": null,
804
+ "aggregatetimespent": null
805
+ }
806
+ },
807
+ {
808
+ "expand": "editmeta,renderedFields,transitions,changelog",
809
+ "id": "10006",
810
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10006",
811
+ "key": "SAMPLEPROJECT-5",
812
+ "fields": {
813
+ "summary": "blah",
814
+ "progress": {
815
+ "progress": 0,
816
+ "total": 0
817
+ },
818
+ "issuetype": {
819
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
820
+ "id": "3",
821
+ "description": "A task that needs to be done.",
822
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
823
+ "name": "Task",
824
+ "subtask": false
825
+ },
826
+ "votes": {
827
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-5/votes",
828
+ "votes": 0,
829
+ "hasVoted": false
830
+ },
831
+ "resolution": null,
832
+ "fixVersions": [],
833
+ "resolutiondate": null,
834
+ "timespent": null,
835
+ "reporter": {
836
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
837
+ "name": "admin",
838
+ "emailAddress": "admin@example.com",
839
+ "avatarUrls": {
840
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
841
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
842
+ },
843
+ "displayName": "admin",
844
+ "active": true
845
+ },
846
+ "aggregatetimeoriginalestimate": null,
847
+ "updated": "2011-12-14T14:46:58.000+1300",
848
+ "created": "2011-12-14T14:46:58.000+1300",
849
+ "description": null,
850
+ "priority": {
851
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
852
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
853
+ "name": "Major",
854
+ "id": "3"
855
+ },
856
+ "duedate": null,
857
+ "issuelinks": [],
858
+ "watches": {
859
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-5/watchers",
860
+ "watchCount": 0,
861
+ "isWatching": false
862
+ },
863
+ "subtasks": [],
864
+ "status": {
865
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
866
+ "description": "The issue is open and ready for the assignee to start work on it.",
867
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
868
+ "name": "Open",
869
+ "id": "1"
870
+ },
871
+ "labels": [],
872
+ "assignee": {
873
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
874
+ "name": "admin",
875
+ "emailAddress": "admin@example.com",
876
+ "avatarUrls": {
877
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
878
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
879
+ },
880
+ "displayName": "admin",
881
+ "active": true
882
+ },
883
+ "workratio": -1,
884
+ "aggregatetimeestimate": null,
885
+ "project": {
886
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
887
+ "id": "10001",
888
+ "key": "SAMPLEPROJECT",
889
+ "name": "Sample Project for Developing RoR RESTful API",
890
+ "avatarUrls": {
891
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
892
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
893
+ }
894
+ },
895
+ "versions": [],
896
+ "environment": null,
897
+ "timeestimate": null,
898
+ "aggregateprogress": {
899
+ "progress": 0,
900
+ "total": 0
901
+ },
902
+ "components": [],
903
+ "timeoriginalestimate": null,
904
+ "aggregatetimespent": null
905
+ }
906
+ },
907
+ {
908
+ "expand": "editmeta,renderedFields,transitions,changelog",
909
+ "id": "10005",
910
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10005",
911
+ "key": "SAMPLEPROJECT-4",
912
+ "fields": {
913
+ "summary": "blah",
914
+ "progress": {
915
+ "progress": 0,
916
+ "total": 0
917
+ },
918
+ "issuetype": {
919
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
920
+ "id": "3",
921
+ "description": "A task that needs to be done.",
922
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
923
+ "name": "Task",
924
+ "subtask": false
925
+ },
926
+ "votes": {
927
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-4/votes",
928
+ "votes": 0,
929
+ "hasVoted": false
930
+ },
931
+ "resolution": null,
932
+ "fixVersions": [],
933
+ "resolutiondate": null,
934
+ "timespent": null,
935
+ "reporter": {
936
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
937
+ "name": "admin",
938
+ "emailAddress": "admin@example.com",
939
+ "avatarUrls": {
940
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
941
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
942
+ },
943
+ "displayName": "admin",
944
+ "active": true
945
+ },
946
+ "aggregatetimeoriginalestimate": null,
947
+ "updated": "2011-12-14T12:11:48.000+1300",
948
+ "created": "2011-12-14T12:11:48.000+1300",
949
+ "description": null,
950
+ "priority": {
951
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
952
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
953
+ "name": "Major",
954
+ "id": "3"
955
+ },
956
+ "duedate": null,
957
+ "issuelinks": [],
958
+ "watches": {
959
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-4/watchers",
960
+ "watchCount": 0,
961
+ "isWatching": false
962
+ },
963
+ "subtasks": [],
964
+ "status": {
965
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
966
+ "description": "The issue is open and ready for the assignee to start work on it.",
967
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
968
+ "name": "Open",
969
+ "id": "1"
970
+ },
971
+ "labels": [],
972
+ "assignee": {
973
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
974
+ "name": "admin",
975
+ "emailAddress": "admin@example.com",
976
+ "avatarUrls": {
977
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
978
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
979
+ },
980
+ "displayName": "admin",
981
+ "active": true
982
+ },
983
+ "workratio": -1,
984
+ "aggregatetimeestimate": null,
985
+ "project": {
986
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
987
+ "id": "10001",
988
+ "key": "SAMPLEPROJECT",
989
+ "name": "Sample Project for Developing RoR RESTful API",
990
+ "avatarUrls": {
991
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
992
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
993
+ }
994
+ },
995
+ "versions": [],
996
+ "environment": null,
997
+ "timeestimate": null,
998
+ "aggregateprogress": {
999
+ "progress": 0,
1000
+ "total": 0
1001
+ },
1002
+ "components": [],
1003
+ "timeoriginalestimate": null,
1004
+ "aggregatetimespent": null
1005
+ }
1006
+ },
1007
+ {
1008
+ "expand": "editmeta,renderedFields,transitions,changelog",
1009
+ "id": "10002",
1010
+ "self": "http://localhost:2990/jira/rest/api/2/issue/10002",
1011
+ "key": "SAMPLEPROJECT-1",
1012
+ "fields": {
1013
+ "summary": "MOOOOOOARRR NINJAAAA!",
1014
+ "progress": {
1015
+ "progress": 0,
1016
+ "total": 0
1017
+ },
1018
+ "issuetype": {
1019
+ "self": "http://localhost:2990/jira/rest/api/2/issuetype/3",
1020
+ "id": "3",
1021
+ "description": "A task that needs to be done.",
1022
+ "iconUrl": "http://localhost:2990/jira/images/icons/task.gif",
1023
+ "name": "Task",
1024
+ "subtask": false
1025
+ },
1026
+ "votes": {
1027
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-1/votes",
1028
+ "votes": 0,
1029
+ "hasVoted": false
1030
+ },
1031
+ "resolution": null,
1032
+ "fixVersions": [],
1033
+ "resolutiondate": null,
1034
+ "timespent": null,
1035
+ "reporter": {
1036
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
1037
+ "name": "admin",
1038
+ "emailAddress": "admin@example.com",
1039
+ "avatarUrls": {
1040
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
1041
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
1042
+ },
1043
+ "displayName": "admin",
1044
+ "active": true
1045
+ },
1046
+ "aggregatetimeoriginalestimate": null,
1047
+ "updated": "2011-12-15T15:37:33.000+1300",
1048
+ "created": "2011-12-14T10:26:06.000+1300",
1049
+ "description": null,
1050
+ "priority": {
1051
+ "self": "http://localhost:2990/jira/rest/api/2/priority/3",
1052
+ "iconUrl": "http://localhost:2990/jira/images/icons/priority_major.gif",
1053
+ "name": "Major",
1054
+ "id": "3"
1055
+ },
1056
+ "duedate": "2011-12-14",
1057
+ "issuelinks": [],
1058
+ "watches": {
1059
+ "self": "http://localhost:2990/jira/rest/api/2/issue/SAMPLEPROJECT-1/watchers",
1060
+ "watchCount": 0,
1061
+ "isWatching": false
1062
+ },
1063
+ "subtasks": [],
1064
+ "status": {
1065
+ "self": "http://localhost:2990/jira/rest/api/2/status/1",
1066
+ "description": "The issue is open and ready for the assignee to start work on it.",
1067
+ "iconUrl": "http://localhost:2990/jira/images/icons/status_open.gif",
1068
+ "name": "Open",
1069
+ "id": "1"
1070
+ },
1071
+ "labels": [],
1072
+ "assignee": {
1073
+ "self": "http://localhost:2990/jira/rest/api/2/user?username=admin",
1074
+ "name": "admin",
1075
+ "emailAddress": "admin@example.com",
1076
+ "avatarUrls": {
1077
+ "16x16": "http://localhost:2990/jira/secure/useravatar?size=small&avatarId=10122",
1078
+ "48x48": "http://localhost:2990/jira/secure/useravatar?avatarId=10122"
1079
+ },
1080
+ "displayName": "admin",
1081
+ "active": true
1082
+ },
1083
+ "workratio": -1,
1084
+ "aggregatetimeestimate": null,
1085
+ "project": {
1086
+ "self": "http://localhost:2990/jira/rest/api/2/project/SAMPLEPROJECT",
1087
+ "id": "10001",
1088
+ "key": "SAMPLEPROJECT",
1089
+ "name": "Sample Project for Developing RoR RESTful API",
1090
+ "avatarUrls": {
1091
+ "16x16": "http://localhost:2990/jira/secure/projectavatar?size=small&pid=10001&avatarId=10011",
1092
+ "48x48": "http://localhost:2990/jira/secure/projectavatar?pid=10001&avatarId=10011"
1093
+ }
1094
+ },
1095
+ "versions": [],
1096
+ "environment": null,
1097
+ "timeestimate": null,
1098
+ "aggregateprogress": {
1099
+ "progress": 0,
1100
+ "total": 0
1101
+ },
1102
+ "components": [],
1103
+ "timeoriginalestimate": null,
1104
+ "aggregatetimespent": null
1105
+ }
1106
+ }
1107
+ ]
1108
+ }