pivotal-tracker 0.5.1 → 0.5.3

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.
data/Gemfile CHANGED
@@ -11,5 +11,6 @@ group :test do
11
11
  gem 'rspec'
12
12
  gem 'rake'
13
13
  gem 'jeweler'
14
- gem 'stale_fish', '~> 1.3.1', :path => '../stale_fish'
14
+ gem 'stale_fish', '~> 1.3.2'
15
+ gem 'autotest'
15
16
  end
data/Gemfile.lock CHANGED
@@ -1,16 +1,12 @@
1
- PATH
2
- remote: ../stale_fish
3
- specs:
4
- stale_fish (1.3.1)
5
- activesupport
6
- fakeweb
7
-
8
1
  GEM
9
2
  remote: http://rubygems.org/
10
3
  specs:
4
+ ZenTest (4.7.0)
11
5
  activesupport (3.2.1)
12
6
  i18n (~> 0.6)
13
7
  multi_json (~> 1.0)
8
+ autotest (4.4.6)
9
+ ZenTest (>= 4.4.1)
14
10
  builder (3.0.0)
15
11
  diff-lcs (1.1.3)
16
12
  fakeweb (1.3.0)
@@ -41,11 +37,15 @@ GEM
41
37
  rspec-expectations (2.8.0)
42
38
  diff-lcs (~> 1.1.2)
43
39
  rspec-mocks (2.8.0)
40
+ stale_fish (1.3.2)
41
+ activesupport
42
+ fakeweb
44
43
 
45
44
  PLATFORMS
46
45
  ruby
47
46
 
48
47
  DEPENDENCIES
48
+ autotest
49
49
  builder
50
50
  happymapper (>= 0.3.2)
51
51
  jeweler
@@ -53,4 +53,4 @@ DEPENDENCIES
53
53
  rake
54
54
  rest-client (~> 1.6.0)
55
55
  rspec
56
- stale_fish (~> 1.3.1)!
56
+ stale_fish (~> 1.3.2)
data/README.rdoc CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Ruby wrapper for Pivotal Tracker API, no frameworks required. Simply Ruby.
4
4
 
5
+ {<img src="https://secure.travis-ci.org/jsmestad/pivotal-tracker.png" />}[http://travis-ci.org/jsmestad/pivotal-tracker]
6
+
5
7
  == Features
6
8
 
7
9
  * Compatible with Pivotal Tracker API version 3
@@ -46,6 +48,8 @@ Ruby wrapper for Pivotal Tracker API, no frameworks required. Simply Ruby.
46
48
  @story.move_to_project(@another_story) # move @story into the same project as @another_story
47
49
 
48
50
 
51
+ # Connect to custom API endpoint
52
+ PivotalTracker::Client.tracker_host = 'www.my-pivotal-tracker.com'
49
53
 
50
54
  The API is based on the following this gist: http://gist.github.com/283120
51
55
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.1
1
+ 0.5.3
@@ -1,10 +1,11 @@
1
1
  module PivotalTracker
2
+
2
3
  class Client
3
4
 
4
5
  class NoToken < StandardError; end
5
6
 
6
7
  class << self
7
- attr_writer :use_ssl, :token
8
+ attr_writer :use_ssl, :token, :tracker_host
8
9
 
9
10
  def use_ssl
10
11
  @use_ssl || false
@@ -12,9 +13,9 @@ module PivotalTracker
12
13
 
13
14
  def token(username, password, method='post')
14
15
  response = if method == 'post'
15
- RestClient.post 'https://www.pivotaltracker.com/services/v3/tokens/active', :username => username, :password => password
16
+ RestClient.post api_ssl_url + '/tokens/active', :username => username, :password => password
16
17
  else
17
- RestClient.get "https://#{username}:#{password}@www.pivotaltracker.com/services/v3/tokens/active"
18
+ RestClient.get "#{api_ssl_url(username, password)}/tokens/active"
18
19
  end
19
20
  @token= Nokogiri::XML(response.body).search('guid').inner_html
20
21
  end
@@ -32,6 +33,19 @@ module PivotalTracker
32
33
  @connections = nil
33
34
  end
34
35
 
36
+ def tracker_host
37
+ @tracker_host ||= "www.pivotaltracker.com"
38
+ end
39
+
40
+ def api_ssl_url(user=nil, password=nil)
41
+ user_password = (user && password) ? "#{user}:#{password}@" : ''
42
+ "https://#{user_password}#{tracker_host}#{api_path}"
43
+ end
44
+
45
+ def api_url
46
+ "http://#{tracker_host}#{api_path}"
47
+ end
48
+
35
49
  protected
36
50
 
37
51
  def protocol
@@ -47,7 +61,7 @@ module PivotalTracker
47
61
  end
48
62
 
49
63
  def new_connection
50
- @connections[@token] = RestClient::Resource.new("#{protocol}://www.pivotaltracker.com/services/v3", :headers => {'X-TrackerToken' => @token, 'Content-Type' => 'application/xml'})
64
+ @connections[@token] = RestClient::Resource.new("#{use_ssl ? api_ssl_url : api_url}", :headers => {'X-TrackerToken' => @token, 'Content-Type' => 'application/xml'})
51
65
  end
52
66
 
53
67
  def protocol_changed?
@@ -57,6 +71,10 @@ module PivotalTracker
57
71
  def cached_connection_protocol
58
72
  cached_connection.url.match(/^(.*):\/\//).captures.first
59
73
  end
74
+
75
+ def api_path
76
+ '/services/v3'
77
+ end
60
78
  end
61
79
 
62
80
  end
@@ -22,8 +22,13 @@ module PivotalTracker
22
22
  params = PivotalTracker.encode_options(options)
23
23
  parse(Client.connection["/projects/#{project.id}/iterations/backlog#{params}"].get)
24
24
  end
25
+
26
+ def current_backlog(project, options={})
27
+ params = PivotalTracker.encode_options(options)
28
+ parse(Client.connection["/projects/#{project.id}/iterations/current_backlog#{params}"].get)
29
+ end
25
30
  end
26
-
31
+
27
32
  element :id, Integer
28
33
  element :number, Integer
29
34
  element :start, DateTime
@@ -22,13 +22,14 @@ module PivotalTracker
22
22
  element :week_start_day, String
23
23
  element :point_scale, String
24
24
  element :labels, String
25
- element :week_start_day, String
26
25
  element :velocity_scheme, String
27
26
  element :iteration_length, Integer
28
27
  element :initial_velocity, Integer
29
28
  element :current_velocity, Integer
30
29
  element :last_activity_at, DateTime
31
30
  element :use_https, Boolean
31
+ element :first_iteration_start_time, DateTime
32
+ element :current_iteration_number, Integer
32
33
 
33
34
  def initialize(attributes={})
34
35
  update_attributes(attributes)
@@ -61,8 +62,9 @@ module PivotalTracker
61
62
  when :done then Iteration.done(self)
62
63
  when :current then Iteration.current(self)
63
64
  when :backlog then Iteration.backlog(self)
65
+ when :current_backlog then Iteration.current_backlog(self)
64
66
  else
65
- raise ArgumentError, "Invalid group. Use :done, :current or :backlog instead."
67
+ raise ArgumentError, "Invalid group. Use :done, :current, :backlog or :current_backlog instead."
66
68
  end
67
69
  end
68
70
 
@@ -8,7 +8,7 @@ module PivotalTracker
8
8
  def initialize(owner, target)
9
9
  @owner = owner
10
10
  @target = target
11
- @opts = nil
11
+ @opts = {}
12
12
  end
13
13
 
14
14
  def all(options={})
@@ -43,12 +43,11 @@ module PivotalTracker
43
43
  protected
44
44
 
45
45
  def proxy_found(options)
46
- # Check to see if options have changed
47
- if @opts == options
48
- @found ||= load_found(options)
49
- else
50
- load_found(options)
46
+ if @found.nil? or @opts != options
47
+ @opts = options
48
+ @found = load_found()
51
49
  end
50
+ @found
52
51
  end
53
52
 
54
53
  private
@@ -57,8 +56,7 @@ module PivotalTracker
57
56
  @target.send(method, *args, &block)
58
57
  end
59
58
 
60
- def load_found(options)
61
- @opts = options
59
+ def load_found()
62
60
  @target.all(@owner, @opts)
63
61
  end
64
62
 
@@ -65,6 +65,11 @@ module PivotalTracker
65
65
  response = Client.connection["/projects/#{project_id}/stories/#{id}"].put(self.to_xml, :content_type => 'application/xml')
66
66
  return Story.parse(response)
67
67
  end
68
+
69
+ def move(position, story)
70
+ raise ArgumentError, "Can only move :before or :after" unless [:before, :after].include? position
71
+ Story.parse(Client.connection["/projects/#{project_id}/stories/#{id}/moves?move\[move\]=#{position}&move\[target\]=#{story.id}"].post(''))
72
+ end
68
73
 
69
74
  def delete
70
75
  Client.connection["/projects/#{project_id}/stories/#{id}"].delete
@@ -31,12 +31,13 @@ module PivotalTracker
31
31
 
32
32
  def self.included(klass)
33
33
  klass.class_eval do
34
- if klass.instance_methods.include?(:create)
34
+ instance_methods = klass.instance_methods.map {|name| name.to_sym}
35
+ if instance_methods.include?(:create)
35
36
  alias_method :create_without_validations, :create
36
37
  alias_method :create, :create_with_validations
37
38
  end
38
39
 
39
- if klass.instance_methods.include?(:update)
40
+ if instance_methods.include?(:update)
40
41
  alias_method :update_without_validations, :update
41
42
  alias_method :update, :update_with_validations
42
43
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "pivotal-tracker"
8
- s.version = "0.5.1"
8
+ s.version = "0.5.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Justin Smestad", "Josh Nichols", "Terence Lee"]
12
- s.date = "2012-02-17"
12
+ s.date = "2012-04-06"
13
13
  s.email = "justin.smestad@gmail.com"
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
@@ -39,11 +39,14 @@ Gem::Specification.new do |s|
39
39
  "lib/pivotal_tracker.rb",
40
40
  "pivotal-tracker.gemspec",
41
41
  "spec/fixtures/activity.xml",
42
+ "spec/fixtures/bugs.xml",
42
43
  "spec/fixtures/created_note.xml",
43
44
  "spec/fixtures/created_story.xml",
45
+ "spec/fixtures/features.xml",
44
46
  "spec/fixtures/iterations_all.xml",
45
47
  "spec/fixtures/iterations_backlog.xml",
46
48
  "spec/fixtures/iterations_current.xml",
49
+ "spec/fixtures/iterations_current_backlog.xml",
47
50
  "spec/fixtures/iterations_done.xml",
48
51
  "spec/fixtures/memberships.xml",
49
52
  "spec/fixtures/notes.xml",
@@ -57,18 +60,18 @@ Gem::Specification.new do |s|
57
60
  "spec/fixtures/story-4460598.xml",
58
61
  "spec/fixtures/story-4473735.xml",
59
62
  "spec/fixtures/tasks.xml",
63
+ "spec/pivotal-tracker/activity_spec.rb",
64
+ "spec/pivotal-tracker/attachment_spec.rb",
65
+ "spec/pivotal-tracker/client_spec.rb",
66
+ "spec/pivotal-tracker/iteration_spec.rb",
67
+ "spec/pivotal-tracker/membership_spec.rb",
68
+ "spec/pivotal-tracker/note_spec.rb",
69
+ "spec/pivotal-tracker/project_spec.rb",
70
+ "spec/pivotal-tracker/story_spec.rb",
71
+ "spec/pivotal-tracker/task_spec.rb",
60
72
  "spec/spec.opts",
61
73
  "spec/spec_helper.rb",
62
- "spec/support/stale_fish_fixtures.rb",
63
- "spec/unit/pivotal-tracker/activity_spec.rb",
64
- "spec/unit/pivotal-tracker/attachment_spec.rb",
65
- "spec/unit/pivotal-tracker/client_spec.rb",
66
- "spec/unit/pivotal-tracker/iteration_spec.rb",
67
- "spec/unit/pivotal-tracker/membership_spec.rb",
68
- "spec/unit/pivotal-tracker/note_spec.rb",
69
- "spec/unit/pivotal-tracker/project_spec.rb",
70
- "spec/unit/pivotal-tracker/story_spec.rb",
71
- "spec/unit/pivotal-tracker/task_spec.rb"
74
+ "spec/support/stale_fish_fixtures.rb"
72
75
  ]
73
76
  s.homepage = "http://github.com/jsmestad/pivotal-tracker"
74
77
  s.require_paths = ["lib"]
@@ -0,0 +1,279 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <stories type="array" count="13" limit="20" total="14">
3
+ <story>
4
+ <id type="integer">4459994</id>
5
+ <project_id type="integer">102622</project_id>
6
+ <story_type>bug</story_type>
7
+ <url>http://www.pivotaltracker.com/story/show/4459994</url>
8
+ <estimate type="integer">2</estimate>
9
+ <current_state>unstarted</current_state>
10
+ <description>Generic description</description>
11
+ <name>Tasks Test</name>
12
+ <requested_by>Jon Mischo</requested_by>
13
+ <created_at type="datetime">2010/07/27 21:51:01 UTC</created_at>
14
+ <updated_at type="datetime">2010/07/27 22:20:46 UTC</updated_at>
15
+ <tasks type="array">
16
+ <task>
17
+ <id type="integer">468113</id>
18
+ <description>Task number 1</description>
19
+ <position>1</position>
20
+ <complete>false</complete>
21
+ <created_at type="datetime">2010/07/27 21:51:28 UTC</created_at>
22
+ </task>
23
+ <task>
24
+ <id type="integer">468114</id>
25
+ <description>Number 2 Task</description>
26
+ <position>2</position>
27
+ <complete>false</complete>
28
+ <created_at type="datetime">2010/07/27 21:51:32 UTC</created_at>
29
+ </task>
30
+ <task>
31
+ <id type="integer">468117</id>
32
+ <description>3rd task is a charm</description>
33
+ <position>3</position>
34
+ <complete>true</complete>
35
+ <created_at type="datetime">2010/07/27 21:51:42 UTC</created_at>
36
+ </task>
37
+ </tasks>
38
+ </story>
39
+ <story>
40
+ <id type="integer">4460038</id>
41
+ <project_id type="integer">102622</project_id>
42
+ <story_type>bug</story_type>
43
+ <url>http://www.pivotaltracker.com/story/show/4460038</url>
44
+ <estimate type="integer">1</estimate>
45
+ <current_state>unstarted</current_state>
46
+ <description>This is a story that has comments.</description>
47
+ <name>This is for comments</name>
48
+ <requested_by>Jon Mischo</requested_by>
49
+ <created_at type="datetime">2010/07/27 21:53:16 UTC</created_at>
50
+ <updated_at type="datetime">2010/07/27 22:20:48 UTC</updated_at>
51
+ <notes type="array">
52
+ <note>
53
+ <id type="integer">2111593</id>
54
+ <text>This is a comment...whee!</text>
55
+ <author>Jon</author>
56
+ <noted_at type="datetime">2010/07/27 22:15:48 UTC</noted_at>
57
+ </note>
58
+ <note>
59
+ <id type="integer">2128955</id>
60
+ <text>Test note</text>
61
+ <author>Test Suite Access</author>
62
+ <noted_at type="datetime">2010/07/29 18:15:09 UTC</noted_at>
63
+ </note>
64
+ <note>
65
+ <id type="integer">2128959</id>
66
+ <text>Test note</text>
67
+ <author>Test Suite Access</author>
68
+ <noted_at type="datetime">2010/07/29 18:16:12 UTC</noted_at>
69
+ </note>
70
+ <note>
71
+ <id type="integer">2129077</id>
72
+ <text>Test note</text>
73
+ <author>Test Suite Access</author>
74
+ <noted_at type="datetime">2010/07/29 18:22:26 UTC</noted_at>
75
+ </note>
76
+ <note>
77
+ <id type="integer">2129374</id>
78
+ <text>Test note</text>
79
+ <author>Test Suite Access</author>
80
+ <noted_at type="datetime">2010/07/29 18:55:44 UTC</noted_at>
81
+ </note>
82
+ </notes>
83
+ </story>
84
+ <story>
85
+ <id type="integer">4460598</id>
86
+ <project_id type="integer">102622</project_id>
87
+ <story_type>bug</story_type>
88
+ <url>http://www.pivotaltracker.com/story/show/4460598</url>
89
+ <estimate type="integer">3</estimate>
90
+ <current_state>unstarted</current_state>
91
+ <description>This story has attachments.</description>
92
+ <name>Story with attachments</name>
93
+ <requested_by>Jon Mischo</requested_by>
94
+ <created_at type="datetime">2010/07/27 22:33:13 UTC</created_at>
95
+ <updated_at type="datetime">2010/07/27 22:33:28 UTC</updated_at>
96
+ <attachments type="array">
97
+ <attachment>
98
+ <id type="integer">491576</id>
99
+ <filename>LICENSE</filename>
100
+ <description></description>
101
+ <uploaded_by>Jon</uploaded_by>
102
+ <uploaded_at type="datetime">2010/07/27 22:34:23 UTC</uploaded_at>
103
+ <url>http://www.pivotaltracker.com/resource/download/491576</url>
104
+ </attachment>
105
+ <attachment>
106
+ <id type="integer">493019</id>
107
+ <filename>README.rdoc</filename>
108
+ <description>README file from api gem</description>
109
+ <uploaded_by>Jon</uploaded_by>
110
+ <uploaded_at type="datetime">2010/07/28 15:16:18 UTC</uploaded_at>
111
+ <url>http://www.pivotaltracker.com/resource/download/493019</url>
112
+ </attachment>
113
+ </attachments>
114
+ </story>
115
+ <story>
116
+ <id type="integer">4473735</id>
117
+ <project_id type="integer">102622</project_id>
118
+ <story_type>bug</story_type>
119
+ <url>http://www.pivotaltracker.com/story/show/4473735</url>
120
+ <estimate type="integer">1</estimate>
121
+ <current_state>unstarted</current_state>
122
+ <description></description>
123
+ <name>Attachment upload test story</name>
124
+ <requested_by>Jon</requested_by>
125
+ <created_at type="datetime">2010/07/28 18:17:33 UTC</created_at>
126
+ <updated_at type="datetime">2010/07/28 18:17:44 UTC</updated_at>
127
+ <attachments type="array">
128
+ <attachment>
129
+ <id type="integer">495851</id>
130
+ <filename>LICENSE</filename>
131
+ <description></description>
132
+ <uploaded_by>Test Suite Access</uploaded_by>
133
+ <uploaded_at type="datetime">2010/07/29 19:07:19 UTC</uploaded_at>
134
+ <url>http://www.pivotaltracker.com/resource/download/495851</url>
135
+ </attachment>
136
+ <attachment>
137
+ <id type="integer">495856</id>
138
+ <filename>LICENSE</filename>
139
+ <description></description>
140
+ <uploaded_by>Test Suite Access</uploaded_by>
141
+ <uploaded_at type="datetime">2010/07/29 19:09:27 UTC</uploaded_at>
142
+ <url>http://www.pivotaltracker.com/resource/download/495856</url>
143
+ </attachment>
144
+ <attachment>
145
+ <id type="integer">495858</id>
146
+ <filename>LICENSE</filename>
147
+ <description></description>
148
+ <uploaded_by>Test Suite Access</uploaded_by>
149
+ <uploaded_at type="datetime">2010/07/29 19:11:44 UTC</uploaded_at>
150
+ <url>http://www.pivotaltracker.com/resource/download/495858</url>
151
+ </attachment>
152
+ <attachment>
153
+ <id type="integer">495863</id>
154
+ <filename>LICENSE</filename>
155
+ <description></description>
156
+ <uploaded_by>Test Suite Access</uploaded_by>
157
+ <uploaded_at type="datetime">2010/07/29 19:13:06 UTC</uploaded_at>
158
+ <url>http://www.pivotaltracker.com/resource/download/495863</url>
159
+ </attachment>
160
+ </attachments>
161
+ </story>
162
+ <story>
163
+ <id type="integer">4490874</id>
164
+ <project_id type="integer">102622</project_id>
165
+ <story_type>bug</story_type>
166
+ <url>http://www.pivotaltracker.com/story/show/4490874</url>
167
+ <estimate type="integer">0</estimate>
168
+ <current_state>unstarted</current_state>
169
+ <description></description>
170
+ <name>Movable Story</name>
171
+ <requested_by>Test Suite Access</requested_by>
172
+ <created_at type="datetime">2010/07/29 18:12:31 UTC</created_at>
173
+ <updated_at type="datetime">2010/07/29 19:13:12 UTC</updated_at>
174
+ </story>
175
+ <story>
176
+ <id type="integer">4492080</id>
177
+ <project_id type="integer">102622</project_id>
178
+ <story_type>bug</story_type>
179
+ <url>http://www.pivotaltracker.com/story/show/4492080</url>
180
+ <estimate type="integer">-1</estimate>
181
+ <current_state>unscheduled</current_state>
182
+ <description></description>
183
+ <name>Create stuff</name>
184
+ <requested_by>Test Suite Access</requested_by>
185
+ <created_at type="datetime">2010/07/29 19:13:04 UTC</created_at>
186
+ <updated_at type="datetime">2010/07/29 19:13:04 UTC</updated_at>
187
+ </story>
188
+ <story>
189
+ <id type="integer">4492078</id>
190
+ <project_id type="integer">102622</project_id>
191
+ <story_type>bug</story_type>
192
+ <url>http://www.pivotaltracker.com/story/show/4492078</url>
193
+ <estimate type="integer">-1</estimate>
194
+ <current_state>unscheduled</current_state>
195
+ <description></description>
196
+ <name>Create stuff</name>
197
+ <requested_by>Test Suite Access</requested_by>
198
+ <created_at type="datetime">2010/07/29 19:13:01 UTC</created_at>
199
+ <updated_at type="datetime">2010/07/29 19:13:01 UTC</updated_at>
200
+ </story>
201
+ <story>
202
+ <id type="integer">4492060</id>
203
+ <project_id type="integer">102622</project_id>
204
+ <story_type>bug</story_type>
205
+ <url>http://www.pivotaltracker.com/story/show/4492060</url>
206
+ <estimate type="integer">-1</estimate>
207
+ <current_state>unscheduled</current_state>
208
+ <description></description>
209
+ <name>Create stuff</name>
210
+ <requested_by>Test Suite Access</requested_by>
211
+ <created_at type="datetime">2010/07/29 19:11:43 UTC</created_at>
212
+ <updated_at type="datetime">2010/07/29 19:11:43 UTC</updated_at>
213
+ </story>
214
+ <story>
215
+ <id type="integer">4492059</id>
216
+ <project_id type="integer">102622</project_id>
217
+ <story_type>bug</story_type>
218
+ <url>http://www.pivotaltracker.com/story/show/4492059</url>
219
+ <estimate type="integer">-1</estimate>
220
+ <current_state>unscheduled</current_state>
221
+ <description></description>
222
+ <name>Create stuff</name>
223
+ <requested_by>Test Suite Access</requested_by>
224
+ <created_at type="datetime">2010/07/29 19:11:38 UTC</created_at>
225
+ <updated_at type="datetime">2010/07/29 19:11:38 UTC</updated_at>
226
+ </story>
227
+ <story>
228
+ <id type="integer">4491973</id>
229
+ <project_id type="integer">102622</project_id>
230
+ <story_type>bug</story_type>
231
+ <url>http://www.pivotaltracker.com/story/show/4491973</url>
232
+ <estimate type="integer">-1</estimate>
233
+ <current_state>unscheduled</current_state>
234
+ <description></description>
235
+ <name>Create stuff</name>
236
+ <requested_by>Test Suite Access</requested_by>
237
+ <created_at type="datetime">2010/07/29 19:09:26 UTC</created_at>
238
+ <updated_at type="datetime">2010/07/29 19:09:26 UTC</updated_at>
239
+ </story>
240
+ <story>
241
+ <id type="integer">4491971</id>
242
+ <project_id type="integer">102622</project_id>
243
+ <story_type>bug</story_type>
244
+ <url>http://www.pivotaltracker.com/story/show/4491971</url>
245
+ <estimate type="integer">-1</estimate>
246
+ <current_state>unscheduled</current_state>
247
+ <description></description>
248
+ <name>Create stuff</name>
249
+ <requested_by>Test Suite Access</requested_by>
250
+ <created_at type="datetime">2010/07/29 19:09:24 UTC</created_at>
251
+ <updated_at type="datetime">2010/07/29 19:09:24 UTC</updated_at>
252
+ </story>
253
+ <story>
254
+ <id type="integer">4491741</id>
255
+ <project_id type="integer">102622</project_id>
256
+ <story_type>bug</story_type>
257
+ <url>http://www.pivotaltracker.com/story/show/4491741</url>
258
+ <estimate type="integer">-1</estimate>
259
+ <current_state>unscheduled</current_state>
260
+ <description></description>
261
+ <name>Create Stuff</name>
262
+ <requested_by>Test Suite Access</requested_by>
263
+ <created_at type="datetime">2010/07/29 18:56:02 UTC</created_at>
264
+ <updated_at type="datetime">2010/07/29 18:56:02 UTC</updated_at>
265
+ </story>
266
+ <story>
267
+ <id type="integer">4490944</id>
268
+ <project_id type="integer">102622</project_id>
269
+ <story_type>bug</story_type>
270
+ <url>http://www.pivotaltracker.com/story/show/4490944</url>
271
+ <estimate type="integer">-1</estimate>
272
+ <current_state>unscheduled</current_state>
273
+ <description></description>
274
+ <name>Create Stuff</name>
275
+ <requested_by>Test Suite Access</requested_by>
276
+ <created_at type="datetime">2010/07/29 18:17:23 UTC</created_at>
277
+ <updated_at type="datetime">2010/07/29 18:17:23 UTC</updated_at>
278
+ </story>
279
+ </stories>