pivotal-tracker 0.5.1 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
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>