westarete-tracker-tools 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.rspec +2 -0
- data/.rvmrc +1 -0
- data/Gemfile +30 -0
- data/Gemfile.lock +59 -0
- data/LICENSE.txt +20 -0
- data/README.md +190 -0
- data/Rakefile +79 -0
- data/VERSION +1 -0
- data/autotest/discover.rb +1 -0
- data/bin/backlog +47 -0
- data/bin/done +53 -0
- data/bin/finished +25 -0
- data/bin/validate +29 -0
- data/ci +21 -0
- data/lib/westarete-tracker-tools.rb +6 -0
- data/lib/westarete-tracker-tools/project.rb +69 -0
- data/lib/westarete-tracker-tools/story.rb +137 -0
- data/spec/fixtures/vcr/WestAreteTrackerTools_Project.yml +525 -0
- data/spec/fixtures/vcr/WestAreteTrackerTools_Story.yml +777 -0
- data/spec/helper.rb +17 -0
- data/spec/project_spec.rb +132 -0
- data/spec/story_spec.rb +408 -0
- data/spec/vcr_helper.rb +11 -0
- data/westarete-tracker-tools.gemspec +109 -0
- metadata +248 -0
data/bin/done
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Summarize accepted stories across all projects for the given iteration.
|
4
|
+
#
|
5
|
+
# Usage:
|
6
|
+
# bundle exec bin/done 0 # current iteration
|
7
|
+
# bundle exec bin/done -1 # previous iteration
|
8
|
+
# bundle exec bin/done -2 # two iterations ago
|
9
|
+
# # etc.
|
10
|
+
|
11
|
+
require 'rubygems'
|
12
|
+
require 'bundler/setup'
|
13
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
+
require 'westarete-tracker-tools'
|
15
|
+
|
16
|
+
include WestAreteTrackerTools
|
17
|
+
|
18
|
+
offset = ARGV.any? ? ARGV.shift.to_i : 0
|
19
|
+
number_of_problems = 0
|
20
|
+
IO.popen('pbcopy', 'w') do |clipboard|
|
21
|
+
Project.all.each do |project|
|
22
|
+
stories = offset == 0 ? project.current : project.done(offset)
|
23
|
+
puts "- #{project.name}"
|
24
|
+
stories.each do |story|
|
25
|
+
if ! story.valid?
|
26
|
+
puts " - Invalid Story"
|
27
|
+
puts " story_type: #{story.story_type}"
|
28
|
+
puts " name: \"#{story.name}\""
|
29
|
+
puts " url: #{story.url}"
|
30
|
+
puts " errors:"
|
31
|
+
story.errors.full_messages.each do |error|
|
32
|
+
puts " - #{error}"
|
33
|
+
end
|
34
|
+
number_of_problems += 1
|
35
|
+
end
|
36
|
+
end
|
37
|
+
stories.select(&:complete?).each do |story|
|
38
|
+
clipboard.puts [
|
39
|
+
nil,
|
40
|
+
project.name,
|
41
|
+
story.story_type,
|
42
|
+
story.points,
|
43
|
+
story.risk,
|
44
|
+
story.name,
|
45
|
+
story.price,
|
46
|
+
story.url
|
47
|
+
].join("\t")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
puts "\nDone."
|
52
|
+
puts "The completed stories have been copied to your clipboard and are ready to be pasted into a spreadsheet."
|
53
|
+
exit number_of_problems
|
data/bin/finished
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Find and report on any stories that are close to being accepted.
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'bundler/setup'
|
7
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
8
|
+
require 'westarete-tracker-tools'
|
9
|
+
|
10
|
+
include WestAreteTrackerTools
|
11
|
+
|
12
|
+
Project.all.each do |project|
|
13
|
+
puts "- #{project.name}"
|
14
|
+
project.current.each do |story|
|
15
|
+
if story.finished?
|
16
|
+
puts " - #{story.name}"
|
17
|
+
puts " url: #{story.url}"
|
18
|
+
puts " state: #{story.current_state}"
|
19
|
+
puts " type: #{story.story_type}"
|
20
|
+
puts " points: #{story.points}"
|
21
|
+
puts " risk: #{story.risk}"
|
22
|
+
puts " price: $#{story.price}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/bin/validate
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Validate all stories in the backlog. Report on any that have errors.
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'bundler/setup'
|
7
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
8
|
+
require 'westarete-tracker-tools'
|
9
|
+
|
10
|
+
include WestAreteTrackerTools
|
11
|
+
|
12
|
+
number_of_problems = 0
|
13
|
+
Project.all.each do |project|
|
14
|
+
puts "- #{project.name}"
|
15
|
+
project.backlog.each do |story|
|
16
|
+
if ! story.valid?
|
17
|
+
puts " - Invalid Story"
|
18
|
+
puts " story_type: #{story.story_type}"
|
19
|
+
puts " name: \"#{story.name}\""
|
20
|
+
puts " url: #{story.url}"
|
21
|
+
puts " errors:"
|
22
|
+
story.errors.full_messages.each do |error|
|
23
|
+
puts " - #{error}"
|
24
|
+
end
|
25
|
+
number_of_problems += 1
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
exit number_of_problems
|
data/ci
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# Continuous Integration build script.
|
3
|
+
|
4
|
+
echo '========== Set Up RVM ==============================================='
|
5
|
+
export PATH=$PATH:~/.rvm/bin
|
6
|
+
source ~/.rvm/scripts/rvm
|
7
|
+
set -e # Exit on any error
|
8
|
+
cd . # Kick off the rvmrc
|
9
|
+
set -x # Echo each command
|
10
|
+
|
11
|
+
echo '========== Verify Environment ======================================='
|
12
|
+
ruby -v
|
13
|
+
gem env gemdir
|
14
|
+
env | sort
|
15
|
+
|
16
|
+
echo '========== Install Gems ============================================='
|
17
|
+
bundle --no-color install
|
18
|
+
|
19
|
+
echo '========== Run Specs ================================================'
|
20
|
+
# Set rspec output options
|
21
|
+
rake ci:setup:rspec spec SPEC_OPTS="--format documentation --no-color"
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module WestAreteTrackerTools
|
2
|
+
# Represents a project in Tracker.
|
3
|
+
class Project
|
4
|
+
|
5
|
+
# Return all active projects
|
6
|
+
def self.all
|
7
|
+
PivotalTracker::Project.all.map { |p| new p }
|
8
|
+
end
|
9
|
+
|
10
|
+
# Find a project by its exact name.
|
11
|
+
def self.find_by_name(project_name)
|
12
|
+
all.detect { |project| project.name == project_name }
|
13
|
+
end
|
14
|
+
|
15
|
+
# Create a new Project object, given its PivotalTracker::Project object.
|
16
|
+
def initialize(tracker_project)
|
17
|
+
@tracker_project = tracker_project
|
18
|
+
end
|
19
|
+
|
20
|
+
# Return all of the stories in the current and future iterations.
|
21
|
+
def backlog
|
22
|
+
tracker_stories = @tracker_project.iteration(:current).stories
|
23
|
+
tracker_stories += @tracker_project.iteration(:backlog).collect(&:stories).flatten
|
24
|
+
tracker_stories.map { |tracker_story| Story.new(tracker_story) }
|
25
|
+
end
|
26
|
+
|
27
|
+
# Return all of the stories in the current iteration.
|
28
|
+
def current
|
29
|
+
tracker_stories = @tracker_project.iteration(:current).stories
|
30
|
+
tracker_stories.map { |tracker_story| Story.new(tracker_story) }
|
31
|
+
end
|
32
|
+
|
33
|
+
# Return all of the stories that have been completed in any iteration. You
|
34
|
+
# can optionally specify an offset of zero or less to limit the results to
|
35
|
+
# a particular iteration, where zero is the current iteration, -1 is the
|
36
|
+
# prior iteration, -2 is two iteratons ago, etc.
|
37
|
+
def done(offset=nil)
|
38
|
+
if offset.nil?
|
39
|
+
tracker_stories = @tracker_project.iteration(:done).collect(&:stories).flatten
|
40
|
+
tracker_stories += @tracker_project.iteration(:current).stories
|
41
|
+
elsif offset < 0
|
42
|
+
iterations = PivotalTracker::Iteration.done(@tracker_project, :offset => offset.to_s)
|
43
|
+
tracker_stories = iterations.any? ? iterations.first.stories : []
|
44
|
+
elsif offset == 0
|
45
|
+
tracker_stories = @tracker_project.iteration(:current).stories
|
46
|
+
else
|
47
|
+
raise ArgumentError, 'offset should be an integer less than or equal to zero'
|
48
|
+
end
|
49
|
+
tracker_stories.map! { |tracker_story| Story.new(tracker_story) }
|
50
|
+
tracker_stories.select(&:complete?)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Return the name of this project.
|
54
|
+
def name
|
55
|
+
@tracker_project.name
|
56
|
+
end
|
57
|
+
|
58
|
+
# The id in tracker for this project.
|
59
|
+
def tracker_id
|
60
|
+
@tracker_project.id
|
61
|
+
end
|
62
|
+
|
63
|
+
# Return the web URL for viewing this project.
|
64
|
+
def url
|
65
|
+
"http://www.pivotaltracker.com/projects/#{tracker_id}"
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,137 @@
|
|
1
|
+
require 'active_model'
|
2
|
+
|
3
|
+
module WestAreteTrackerTools
|
4
|
+
# Represents a story in tracker.
|
5
|
+
class Story
|
6
|
+
include ActiveModel::Validations
|
7
|
+
|
8
|
+
validates_presence_of :risk, :if => Proc.new { |story| story.feature? }
|
9
|
+
validates_presence_of :price, :if => Proc.new { |story| story.feature? }
|
10
|
+
validates_presence_of :points, :if => Proc.new { |story| story.feature? }
|
11
|
+
validates_presence_of :description, :if => Proc.new { |story| story.feature? }
|
12
|
+
validates_length_of :description, :minimum => 70, :if => Proc.new { |story| story.feature? }
|
13
|
+
|
14
|
+
attr_reader :tracker_story
|
15
|
+
|
16
|
+
RISK_REGEXP = /(\s*\[\s*(G|PG|PG\-?13|R|X)\s*\]\s*)/i
|
17
|
+
|
18
|
+
def initialize(tracker_story)
|
19
|
+
@tracker_story = tracker_story
|
20
|
+
end
|
21
|
+
|
22
|
+
# When was this story accepted?
|
23
|
+
def accepted_at
|
24
|
+
@tracker_story.accepted_at
|
25
|
+
end
|
26
|
+
|
27
|
+
# Is this story a bug?
|
28
|
+
def bug?
|
29
|
+
story_type == 'bug'
|
30
|
+
end
|
31
|
+
|
32
|
+
# Is this story a chore?
|
33
|
+
def chore?
|
34
|
+
story_type == 'chore'
|
35
|
+
end
|
36
|
+
|
37
|
+
# Return all notes in chronological order.
|
38
|
+
def comments
|
39
|
+
@comments ||= @tracker_story.notes.all.sort_by(&:noted_at)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Is this story complete?
|
43
|
+
def complete?
|
44
|
+
! incomplete?
|
45
|
+
end
|
46
|
+
|
47
|
+
# Return a string that describes the story's current state.
|
48
|
+
def current_state
|
49
|
+
@tracker_story.current_state
|
50
|
+
end
|
51
|
+
|
52
|
+
# Return the description for this story.
|
53
|
+
def description
|
54
|
+
@tracker_story.description
|
55
|
+
end
|
56
|
+
|
57
|
+
# Is this story a feature?
|
58
|
+
def feature?
|
59
|
+
story_type == 'feature'
|
60
|
+
end
|
61
|
+
|
62
|
+
# Is this story in a state of being finished, delivered, or rejected?
|
63
|
+
def finished?
|
64
|
+
%w(finished delivered rejected).include?(current_state)
|
65
|
+
end
|
66
|
+
|
67
|
+
# Is this story incomplete?
|
68
|
+
def incomplete?
|
69
|
+
accepted_at.nil?
|
70
|
+
end
|
71
|
+
|
72
|
+
# Return the name of this story.
|
73
|
+
def name
|
74
|
+
@tracker_story.name.gsub(RISK_REGEXP, '')
|
75
|
+
end
|
76
|
+
|
77
|
+
# Return the full name of the story's owner.
|
78
|
+
def owner
|
79
|
+
@tracker_story.owned_by
|
80
|
+
end
|
81
|
+
|
82
|
+
# Return the point estimate for this story.
|
83
|
+
def points
|
84
|
+
points = @tracker_story.estimate
|
85
|
+
points = nil if points && points < 0
|
86
|
+
points
|
87
|
+
end
|
88
|
+
|
89
|
+
# Determined by the most recent comment by Scott that mentions cost or price and a dollar amount.
|
90
|
+
def price
|
91
|
+
amount = nil
|
92
|
+
comments.reverse.each do |comment|
|
93
|
+
if comment.author == 'Scott Woods' && comment.text =~ /(cost|price)[^\w].*\$([\d,]+)/i
|
94
|
+
amount = $2.gsub(/,/, '').to_i
|
95
|
+
break
|
96
|
+
end
|
97
|
+
end
|
98
|
+
amount
|
99
|
+
end
|
100
|
+
|
101
|
+
# Is this story a release?
|
102
|
+
def release?
|
103
|
+
story_type == 'release'
|
104
|
+
end
|
105
|
+
|
106
|
+
# Return the Requester object for
|
107
|
+
def requester
|
108
|
+
@tracker_story.requested_by
|
109
|
+
end
|
110
|
+
|
111
|
+
# Return the risk rating for this story. It's extracted from square braces
|
112
|
+
# at the beginning of the story name.
|
113
|
+
def risk
|
114
|
+
if @tracker_story.name =~ RISK_REGEXP
|
115
|
+
$2.upcase
|
116
|
+
else
|
117
|
+
nil
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
# Return the type (of type string) for this story.
|
122
|
+
def story_type
|
123
|
+
@tracker_story.story_type
|
124
|
+
end
|
125
|
+
|
126
|
+
# The id in tracker for this story.
|
127
|
+
def tracker_id
|
128
|
+
@tracker_story.id
|
129
|
+
end
|
130
|
+
|
131
|
+
# Return the web URL for viewing this story.
|
132
|
+
def url
|
133
|
+
@tracker_story.url
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
137
|
+
end
|
@@ -0,0 +1,525 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://www.pivotaltracker.com:80/services/v3/projects
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
accept:
|
9
|
+
- "*/*; q=0.5, application/xml"
|
10
|
+
content-type:
|
11
|
+
- application/xml
|
12
|
+
accept-encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
x-trackertoken:
|
15
|
+
- secret
|
16
|
+
response: !ruby/struct:VCR::Response
|
17
|
+
status: !ruby/struct:VCR::ResponseStatus
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
etag:
|
22
|
+
- "\"b2f61385c09143742bf6cfe856a64bb6\""
|
23
|
+
x-powered-by:
|
24
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
25
|
+
content-type:
|
26
|
+
- application/xml; charset=utf-8
|
27
|
+
server:
|
28
|
+
- nginx/0.8.53 + Phusion Passenger 3.0.0 (mod_rails/mod_rack)
|
29
|
+
x-runtime:
|
30
|
+
- "1387"
|
31
|
+
content-encoding:
|
32
|
+
- gzip
|
33
|
+
cache-control:
|
34
|
+
- private, max-age=0, must-revalidate
|
35
|
+
status:
|
36
|
+
- "200"
|
37
|
+
transfer-encoding:
|
38
|
+
- chunked
|
39
|
+
body: !binary |
|
40
|
+
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
|
110
|
+
dQW8B2d31AUPwrv/A8mlqvQLnQAA
|
111
|
+
|
112
|
+
http_version: "1.1"
|
113
|
+
- !ruby/struct:VCR::HTTPInteraction
|
114
|
+
request: !ruby/struct:VCR::Request
|
115
|
+
method: :get
|
116
|
+
uri: http://www.pivotaltracker.com:80/services/v3/projects
|
117
|
+
body:
|
118
|
+
headers:
|
119
|
+
accept:
|
120
|
+
- "*/*; q=0.5, application/xml"
|
121
|
+
content-type:
|
122
|
+
- application/xml
|
123
|
+
accept-encoding:
|
124
|
+
- gzip, deflate
|
125
|
+
x-trackertoken:
|
126
|
+
- secret
|
127
|
+
response: !ruby/struct:VCR::Response
|
128
|
+
status: !ruby/struct:VCR::ResponseStatus
|
129
|
+
code: 200
|
130
|
+
message: OK
|
131
|
+
headers:
|
132
|
+
etag:
|
133
|
+
- "\"b2f61385c09143742bf6cfe856a64bb6\""
|
134
|
+
x-powered-by:
|
135
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
136
|
+
content-type:
|
137
|
+
- application/xml; charset=utf-8
|
138
|
+
server:
|
139
|
+
- nginx/0.8.53 + Phusion Passenger 3.0.0 (mod_rails/mod_rack)
|
140
|
+
x-runtime:
|
141
|
+
- "1042"
|
142
|
+
content-encoding:
|
143
|
+
- gzip
|
144
|
+
cache-control:
|
145
|
+
- private, max-age=0, must-revalidate
|
146
|
+
status:
|
147
|
+
- "200"
|
148
|
+
transfer-encoding:
|
149
|
+
- chunked
|
150
|
+
body: !binary |
|
151
|
+
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
|
221
|
+
dQW8B2d31AUPwrv/A8mlqvQLnQAA
|
222
|
+
|
223
|
+
http_version: "1.1"
|
224
|
+
- !ruby/struct:VCR::HTTPInteraction
|
225
|
+
request: !ruby/struct:VCR::Request
|
226
|
+
method: :get
|
227
|
+
uri: http://www.pivotaltracker.com:80/services/v3/projects/213679/iterations/current
|
228
|
+
body:
|
229
|
+
headers:
|
230
|
+
accept:
|
231
|
+
- "*/*; q=0.5, application/xml"
|
232
|
+
content-type:
|
233
|
+
- application/xml
|
234
|
+
x-trackertoken:
|
235
|
+
- secret
|
236
|
+
accept-encoding:
|
237
|
+
- gzip, deflate
|
238
|
+
response: !ruby/struct:VCR::Response
|
239
|
+
status: !ruby/struct:VCR::ResponseStatus
|
240
|
+
code: 200
|
241
|
+
message: OK
|
242
|
+
headers:
|
243
|
+
x-powered-by:
|
244
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
245
|
+
content-type:
|
246
|
+
- application/xml
|
247
|
+
content-transfer-encoding:
|
248
|
+
- binary
|
249
|
+
x-runtime:
|
250
|
+
- "86"
|
251
|
+
server:
|
252
|
+
- nginx/0.8.53 + Phusion Passenger 3.0.0 (mod_rails/mod_rack)
|
253
|
+
content-disposition:
|
254
|
+
- attachment; filename="response_1295813890_8ce6b367fd5e1b6004291f1a573d70da.xml"
|
255
|
+
content-encoding:
|
256
|
+
- gzip
|
257
|
+
status:
|
258
|
+
- "200"
|
259
|
+
cache-control:
|
260
|
+
- private
|
261
|
+
transfer-encoding:
|
262
|
+
- chunked
|
263
|
+
body: !binary |
|
264
|
+
H4sIAAAAAAAAA81Y3W+bMBB/719hoT2uMTaQD0Sp9q29TNXaaQ9TFblwbbwl
|
265
|
+
OLNN0/z3M4YE0pYGbVmExIt9vzvfne/ns4nOHxZzdA9ScZGdOWTgOgiyRKQ8
|
266
|
+
uztzvl19PB075/FJxDVIpg1GIb1ewpnDpGRrJz5BqJYVo2KcVhieabgD6cR+
|
267
|
+
hHlaSbN8cQPyGUQpqFBKM6krUMo0aL4AJ6YuIdglmIyQ64b2Qx8uryJs4ZXq
|
268
|
+
Lc+4mrXqUv+Rbonfriskh6dB2sCUFnJdAlsCnbijieeO6nAtbinFT0j09Gli
|
269
|
+
KPGGo0mEa0TDvF1uWqQ7vgWmcwlFoNs5m2xrP5fzeKb1MsR4tVoNlvxeaDbX
|
270
|
+
kiW/QA4SsSjVsJqJFd66WGjVNkCZFJtEP94YEuGNqIFOcikh01OTdw0xSxJY
|
271
|
+
akgjvDtfW09BJZIviwKK3yjEMsQSE8nrk89oxTKz0QKlAimxAD0zlWfmMyRk
|
272
|
+
WtSJMNAZh3uwYnSTK56BUuhOsPkgwk3L9XoZW0D84+LTNfoCq/namCg9RNtE
|
273
|
+
WkStIOF3buKEdHqzji8ToTX6LkSqIrwjqRXEKnsGvJ2tgYk0e2egrL2cqYeI
|
274
|
+
GwZuSPyynGudhov5siDCXkNBSGjoj0pDtU7D0CYZ+1yiTYY1lBqmMqFbyGIL
|
275
|
+
sxDXaDv1lAO+H5BxEOxyxmI1POj4nVAacYVeEdeNsJ3aJteiWK5nQu5uWjW3
|
276
|
+
Cyy82Zs+uw80KNO30WiuGOHdqMqx2kAqim6HXc6MMZ14hmebI9JG1bMzo3Lx
|
277
|
+
cGeGhOJI7Hpm7Of518pefxluiBmEdHgQhgeh773A8APR0iNjr42WbyFhuQJz
|
278
|
+
Av93StrEeeOjUtK0cdr/Nl642I2StEMbT2HOzU2wKyeP18dNG3+/8a2//Dad
|
279
|
+
wwv96kL6zx08OAK/yXjUyu8LyROo+u4ROF4mr7q1HK/t+v1vu4WLh+N4+djp
|
280
|
+
SvEX2+5H+86CtL+MNI1jGLqHuVMPja22jvs3d74RpaTvDaZ0sVvxmYNk7zvR
|
281
|
+
vtIPUnvmaXdKvGt0WVrsaQlSRM2bzgsDepBLnxe6pFMJlvVofmMUrxBzgdv8
|
282
|
+
uzH/ceqBEf4BtIF8tv0RAAA=
|
283
|
+
|
284
|
+
http_version: "1.1"
|
285
|
+
- !ruby/struct:VCR::HTTPInteraction
|
286
|
+
request: !ruby/struct:VCR::Request
|
287
|
+
method: :get
|
288
|
+
uri: http://www.pivotaltracker.com:80/services/v3/projects/213679/iterations/backlog
|
289
|
+
body:
|
290
|
+
headers:
|
291
|
+
accept:
|
292
|
+
- "*/*; q=0.5, application/xml"
|
293
|
+
content-type:
|
294
|
+
- application/xml
|
295
|
+
x-trackertoken:
|
296
|
+
- secret
|
297
|
+
accept-encoding:
|
298
|
+
- gzip, deflate
|
299
|
+
response: !ruby/struct:VCR::Response
|
300
|
+
status: !ruby/struct:VCR::ResponseStatus
|
301
|
+
code: 200
|
302
|
+
message: OK
|
303
|
+
headers:
|
304
|
+
x-powered-by:
|
305
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
306
|
+
content-type:
|
307
|
+
- application/xml
|
308
|
+
content-transfer-encoding:
|
309
|
+
- binary
|
310
|
+
x-runtime:
|
311
|
+
- "442"
|
312
|
+
server:
|
313
|
+
- nginx/0.8.53 + Phusion Passenger 3.0.0 (mod_rails/mod_rack)
|
314
|
+
content-disposition:
|
315
|
+
- attachment; filename="response_1295813891_2aa5f8d8c64cde77e9defa06e156518d.xml"
|
316
|
+
content-encoding:
|
317
|
+
- gzip
|
318
|
+
status:
|
319
|
+
- "200"
|
320
|
+
cache-control:
|
321
|
+
- private
|
322
|
+
transfer-encoding:
|
323
|
+
- chunked
|
324
|
+
body: !binary |
|
325
|
+
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
|
357
|
+
|
358
|
+
http_version: "1.1"
|
359
|
+
- !ruby/struct:VCR::HTTPInteraction
|
360
|
+
request: !ruby/struct:VCR::Request
|
361
|
+
method: :get
|
362
|
+
uri: http://www.pivotaltracker.com:80/services/v3/projects/213679/iterations/done
|
363
|
+
body:
|
364
|
+
headers:
|
365
|
+
accept:
|
366
|
+
- "*/*; q=0.5, application/xml"
|
367
|
+
content-type:
|
368
|
+
- application/xml
|
369
|
+
accept-encoding:
|
370
|
+
- gzip, deflate
|
371
|
+
x-trackertoken:
|
372
|
+
- secret
|
373
|
+
response: !ruby/struct:VCR::Response
|
374
|
+
status: !ruby/struct:VCR::ResponseStatus
|
375
|
+
code: 200
|
376
|
+
message: OK
|
377
|
+
headers:
|
378
|
+
x-powered-by:
|
379
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
380
|
+
content-transfer-encoding:
|
381
|
+
- binary
|
382
|
+
content-type:
|
383
|
+
- application/xml
|
384
|
+
server:
|
385
|
+
- nginx/0.8.53 + Phusion Passenger 3.0.0 (mod_rails/mod_rack)
|
386
|
+
x-runtime:
|
387
|
+
- "56"
|
388
|
+
content-encoding:
|
389
|
+
- gzip
|
390
|
+
content-disposition:
|
391
|
+
- attachment; filename="response_1295813892_5e48dd118e553e20303d3ecefcb39fae.xml"
|
392
|
+
cache-control:
|
393
|
+
- private
|
394
|
+
status:
|
395
|
+
- "200"
|
396
|
+
transfer-encoding:
|
397
|
+
- chunked
|
398
|
+
body: !binary |
|
399
|
+
H4sIAAAAAAAAA81WwW7bMAy99ysEY8ctsuykSQzXRTFsw047tMMGDEWg2myj
|
400
|
+
LZE8SW6avx8tObGTZo277lAgF4mPFPlIPic9f1guyD1oI5Q8C9ggDAjIXBVC
|
401
|
+
3p0FX68+vpsE59lJKixobhFjiF2XcBZwrfk6yE4IaW31qT4XDUZIC3egg4yl
|
402
|
+
VBSNVVbLG9AHEN7QoIzl2jaggluwYglBFoUspCyi0ZiEYeJ+5MPlVUodvHG9
|
403
|
+
FVKY+SFfRkP8xXu+Hr99V2kBj4vEsvARZ3M10y0hPSmIjlKAiH4UHC7jGRSw
|
404
|
+
8N8owLprDtaeq7/0ehqOpzEbteU6XKnVT8jt7PFsRCw+HU9T2iI64d1zs3ri
|
405
|
+
slvgttLg29DcuXlz8Su9yObWlgmlq9VqUIp7ZfnCap7/Aj3I1dJ1b03NXK3o
|
406
|
+
NsXaq40BBqcMZ21/NrExG1MHnVdag7Qz5N1CxvMcSgtFSnfv2+gFmFyLst6h
|
407
|
+
7MIQLgnPMaW3J5/JikucdUUKRYxagp3j8uG9JEoX9aoohM4F3IMzk5vKCAnG
|
408
|
+
kDvFF4OUdiO370m+hOzHp2vyZVGgv0+PbFl05hat4XeFRUIxu1lnl7mylnxT
|
409
|
+
qjAp3bG0DmolD4C3ty0w19g4hPKD6+xmOYoJC5MRS1izzq1PJ8WqrIXgaKBR
|
410
|
+
woZJfOp1ofXpBNqQ8VRKqBIs6ipMx6kTSip7UCyaqazNLdoN6uMFGA5HbDLC
|
411
|
+
DdhIpHdGrIUHm71XxhJhyJtoGGKz3d2WXReSV3au9G7XmrtdYJ3OUf58Iyae
|
412
|
+
v41H90WUqZ2y/NnJokvHb5o/vlA046OiiYhniCbbF77niOb+N6fnd6OvaEYR
|
413
|
+
63wmHZOvTTR9iv1EE2v5z6L5tNB9vyYXr1vkIhKFCYuTeOR368Uix9gLRY71
|
414
|
+
ELme69z5Q4RK8AcojgE4VgoAAA==
|
415
|
+
|
416
|
+
http_version: "1.1"
|
417
|
+
- !ruby/struct:VCR::HTTPInteraction
|
418
|
+
request: !ruby/struct:VCR::Request
|
419
|
+
method: :get
|
420
|
+
uri: http://www.pivotaltracker.com:80/services/v3/projects/213679/iterations/done?offset=-2
|
421
|
+
body:
|
422
|
+
headers:
|
423
|
+
accept:
|
424
|
+
- "*/*; q=0.5, application/xml"
|
425
|
+
content-type:
|
426
|
+
- application/xml
|
427
|
+
x-trackertoken:
|
428
|
+
- secret
|
429
|
+
accept-encoding:
|
430
|
+
- gzip, deflate
|
431
|
+
response: !ruby/struct:VCR::Response
|
432
|
+
status: !ruby/struct:VCR::ResponseStatus
|
433
|
+
code: 200
|
434
|
+
message: OK
|
435
|
+
headers:
|
436
|
+
x-powered-by:
|
437
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
438
|
+
content-type:
|
439
|
+
- application/xml
|
440
|
+
content-transfer-encoding:
|
441
|
+
- binary
|
442
|
+
x-runtime:
|
443
|
+
- "54"
|
444
|
+
server:
|
445
|
+
- nginx/0.8.53 + Phusion Passenger 3.0.0 (mod_rails/mod_rack)
|
446
|
+
content-disposition:
|
447
|
+
- attachment; filename="response_1295813893_017f72dc775e875683cdf1af5082dbf1.xml"
|
448
|
+
content-encoding:
|
449
|
+
- gzip
|
450
|
+
status:
|
451
|
+
- "200"
|
452
|
+
cache-control:
|
453
|
+
- private
|
454
|
+
transfer-encoding:
|
455
|
+
- chunked
|
456
|
+
body: !binary |
|
457
|
+
H4sIAAAAAAAAA81U32/aMBB+56+woj1uJE6gQBRSVdM27WkP7bRJU4VMcgVv
|
458
|
+
YGf2Bcp/X8cOJLRQqLpJlfxyd9+d7+eXXN4vF2QFSnMpxh7tBh4Bkcmci9nY
|
459
|
+
+37z+cPQu0w7CUdQDA1GE9wUMPaYUmzjpR1CGlslVXJeY7hAmIHy0jDxeV5b
|
460
|
+
RbmcgjqAcIYapZEprEE5Q0C+BBMnoNQPzItIEMT2kU/XN4lv4bXrHRdcz4/6
|
461
|
+
0uCRr8Pv/pWKw9MibWEapdo44JFCR8FgFNF+U67FFUr+hgwnBxpDo4vBKPEb
|
462
|
+
RCu8/W5StTu9A4algqrQnc4228Yv1SKdIxax76/X627BVxLZAhXL/oDqZnLp
|
463
|
+
3Hw9l2t/l2Ll1cQAbVpsGn1gMFtTC52VSoHAiek7QsqyDAqEPPH39U30HHSm
|
464
|
+
eFEtUHqlCROEZaaS952vZM2EGbQkuSRaLgHnZvOMXhCp8mpPpIHOOazAmsm0
|
465
|
+
1FyA1mQm2aKb+O3IzX+CLSH99eWWfFvkxt+lR3ZdtOYGreBvaYqEfDLdpNeZ
|
466
|
+
RCQ/pMx14u9ZGge5FgfAO20DzJQZnIGy47scRoQGcZ/GtN7lxqeVYllUV3Ay
|
467
|
+
UD+mvTi6cEfR+LQCbZvxXErmvGjYPq+WUyuUkHjkUuxWVuYGbVVPD6DX69Nh
|
468
|
+
31zAlh/sRldYhHtMP0qNhGvyLuwFZthWt+uuhbES51LtT63W7QOrdE72zw1i
|
469
|
+
6Pq39Wj/mPj7ZTlZbyH1gTrRCYZNKtFUuKVQK+5JB1sTnSRNg3gBadLHxPcS
|
470
|
+
0hz8X9IMQ0rfOGm6FM8jTVPLPybN54nu5y25etskF5IwiGkUR313W68mOUpf
|
471
|
+
SXL0DJI785xbt21u/QHlqa6CUwkAAA==
|
472
|
+
|
473
|
+
http_version: "1.1"
|
474
|
+
- !ruby/struct:VCR::HTTPInteraction
|
475
|
+
request: !ruby/struct:VCR::Request
|
476
|
+
method: :get
|
477
|
+
uri: http://www.pivotaltracker.com:80/services/v3/projects/213679/iterations/done?offset=-1
|
478
|
+
body:
|
479
|
+
headers:
|
480
|
+
accept:
|
481
|
+
- "*/*; q=0.5, application/xml"
|
482
|
+
content-type:
|
483
|
+
- application/xml
|
484
|
+
accept-encoding:
|
485
|
+
- gzip, deflate
|
486
|
+
x-trackertoken:
|
487
|
+
- secret
|
488
|
+
response: !ruby/struct:VCR::Response
|
489
|
+
status: !ruby/struct:VCR::ResponseStatus
|
490
|
+
code: 200
|
491
|
+
message: OK
|
492
|
+
headers:
|
493
|
+
x-powered-by:
|
494
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
495
|
+
content-transfer-encoding:
|
496
|
+
- binary
|
497
|
+
content-type:
|
498
|
+
- application/xml
|
499
|
+
server:
|
500
|
+
- nginx/0.8.53 + Phusion Passenger 3.0.0 (mod_rails/mod_rack)
|
501
|
+
x-runtime:
|
502
|
+
- "48"
|
503
|
+
content-encoding:
|
504
|
+
- gzip
|
505
|
+
content-disposition:
|
506
|
+
- attachment; filename="response_1295813893_91077580786dc3e613dab44b148836cc.xml"
|
507
|
+
cache-control:
|
508
|
+
- private
|
509
|
+
status:
|
510
|
+
- "200"
|
511
|
+
transfer-encoding:
|
512
|
+
- chunked
|
513
|
+
body: !binary |
|
514
|
+
H4sIAAAAAAAAA32T227bMAyG7/sUgu8bWfbarIajohfdC7TDBgxDoMpsoy2W
|
515
|
+
PIqum7effIjlHlLANxS//xdJU+X1S71nz4DeOLtJxCpNGFjtKmOfNsn3+2/n
|
516
|
+
X5NreVYaAlQUGM/o0MAmUYjqkMgzxmKuj/q4mhhjCZ4AE5mX3FRT1rb1A+AH
|
517
|
+
xJiYKE8KaYIqRUCmhkRmqRA8FVykLE2L4WO3d/clH/BJ+mis8bvT2vUb7cjP
|
518
|
+
9zo08L7JoTFPDg8jeKLRq3SdZULEdgeuQfcHNG3fDyYT+eX6quSRWNgP1237
|
519
|
+
cctHUNQi9I3OZ8OwB/8W93JH1BScd123asyzI7UnVPov4Eq7epRxv3Mdn0vs
|
520
|
+
VdEDfBhxGPTbHxN6OaYWtG4RwdI2zJ1AKq2hIahK/vo8ulfgNZqmXyBZ8mUU
|
521
|
+
GatqkL9+/mY3kx2bux5SkUT414aioNo+HOSddkTsh3OVL/mrTBS4zn4Az6cR
|
522
|
+
1BgGHVB1eveyjGVpIfIivxh3L2oWJbZNv7WfG+VMXBTiSyHEaBQ1C6PjbD8r
|
523
|
+
SQSnbPkcFqKj1bQ6YzgGYc/7MCzr8XGHhx6DkPwPI4EjUx4EAAA=
|
524
|
+
|
525
|
+
http_version: "1.1"
|