tracker_api 0.1.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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.travis.yml +12 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +57 -0
- data/Rakefile +18 -0
- data/lib/tracker_api.rb +39 -0
- data/lib/tracker_api/client.rb +71 -0
- data/lib/tracker_api/endpoints/epic.rb +20 -0
- data/lib/tracker_api/endpoints/epics.rb +22 -0
- data/lib/tracker_api/endpoints/iterations.rb +22 -0
- data/lib/tracker_api/endpoints/project.rb +21 -0
- data/lib/tracker_api/endpoints/projects.rb +22 -0
- data/lib/tracker_api/endpoints/stories.rb +22 -0
- data/lib/tracker_api/endpoints/story.rb +20 -0
- data/lib/tracker_api/error.rb +18 -0
- data/lib/tracker_api/logger.rb +31 -0
- data/lib/tracker_api/resources/account.rb +18 -0
- data/lib/tracker_api/resources/epic.rb +19 -0
- data/lib/tracker_api/resources/iteration.rb +23 -0
- data/lib/tracker_api/resources/label.rb +14 -0
- data/lib/tracker_api/resources/project.rb +85 -0
- data/lib/tracker_api/resources/story.rb +33 -0
- data/lib/tracker_api/resources/time_zone.rb +13 -0
- data/lib/tracker_api/version.rb +3 -0
- data/test/client_test.rb +61 -0
- data/test/minitest_helper.rb +30 -0
- data/test/project_test.rb +81 -0
- data/test/vcr/cassettes/get_all_projects.json +1 -0
- data/test/vcr/cassettes/get_current_iteration.json +1 -0
- data/test/vcr/cassettes/get_done_iterations.json +1 -0
- data/test/vcr/cassettes/get_epics.json +1 -0
- data/test/vcr/cassettes/get_project.json +1 -0
- data/test/vcr/cassettes/get_project_with_epics.json +1 -0
- data/test/vcr/cassettes/get_unscheduled_stories.json +1 -0
- data/tracker_api.gemspec +36 -0
- metadata +273 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
class Logger < Faraday::Response::Middleware
|
3
|
+
extend Forwardable
|
4
|
+
|
5
|
+
def initialize(app, logger = nil)
|
6
|
+
super(app)
|
7
|
+
@logger = logger || ::Logger.new(STDOUT)
|
8
|
+
end
|
9
|
+
|
10
|
+
def_delegators :@logger, :debug, :info, :warn, :error, :fatal
|
11
|
+
|
12
|
+
def call(env)
|
13
|
+
info("#{env[:method]} => #{env[:url].to_s}")
|
14
|
+
debug('request') { dump_headers env[:request_headers] }
|
15
|
+
debug('request.body') { env[:body] }
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
19
|
+
def on_complete(env)
|
20
|
+
info("#{env[:status]} <= #{env[:url].to_s}")
|
21
|
+
debug('response') { dump_headers env[:response_headers] }
|
22
|
+
debug('response.body') { env[:body] }
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def dump_headers(headers)
|
28
|
+
headers.map { |k, v| "#{k}: #{v.inspect}" }.join("\n")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
module Resources
|
3
|
+
class Account
|
4
|
+
include Virtus.model
|
5
|
+
|
6
|
+
attribute :id, Integer
|
7
|
+
attribute :created_at, DateTime
|
8
|
+
attribute :status, String
|
9
|
+
attribute :kind, String
|
10
|
+
attribute :name, String
|
11
|
+
attribute :updated_at, DateTime
|
12
|
+
attribute :url, String
|
13
|
+
attribute :plan, String
|
14
|
+
attribute :days_left, Integer
|
15
|
+
attribute :over_the_limit, Boolean
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
module Resources
|
3
|
+
class Epic
|
4
|
+
include Virtus.model
|
5
|
+
|
6
|
+
attribute :client
|
7
|
+
|
8
|
+
attribute :id, Integer
|
9
|
+
attribute :created_at, DateTime
|
10
|
+
attribute :description, String
|
11
|
+
attribute :kind, String
|
12
|
+
attribute :label, TrackerApi::Resources::Label
|
13
|
+
attribute :name, String
|
14
|
+
attribute :project_id, Integer
|
15
|
+
attribute :updated_at, DateTime
|
16
|
+
attribute :url, String
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
module Resources
|
3
|
+
class Iteration
|
4
|
+
include Virtus.model
|
5
|
+
|
6
|
+
attribute :client
|
7
|
+
|
8
|
+
attribute :created_at, DateTime
|
9
|
+
attribute :finish, DateTime
|
10
|
+
attribute :id, Integer
|
11
|
+
attribute :kind, String
|
12
|
+
attribute :length, Integer
|
13
|
+
attribute :number, Integer
|
14
|
+
attribute :planned, Boolean
|
15
|
+
attribute :project_id, Integer
|
16
|
+
attribute :start, DateTime
|
17
|
+
attribute :stories, [TrackerApi::Resources::Story]
|
18
|
+
attribute :story_ids, [Integer]
|
19
|
+
attribute :team_strength, Float
|
20
|
+
attribute :updated_at, DateTime
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
module Resources
|
3
|
+
class Label
|
4
|
+
include Virtus.model
|
5
|
+
|
6
|
+
attribute :id, Integer
|
7
|
+
attribute :created_at, DateTime
|
8
|
+
attribute :kind, String
|
9
|
+
attribute :name, String
|
10
|
+
attribute :project_id, Integer
|
11
|
+
attribute :updated_at, DateTime
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
module Resources
|
3
|
+
class Project
|
4
|
+
include Virtus.model
|
5
|
+
|
6
|
+
attribute :client
|
7
|
+
|
8
|
+
attribute :account, TrackerApi::Resources::Account
|
9
|
+
attribute :account_id, Integer
|
10
|
+
attribute :atom_enabled, Boolean
|
11
|
+
attribute :bugs_and_chores_are_estimatable, Boolean
|
12
|
+
attribute :created_at, DateTime
|
13
|
+
attribute :current_iteration_number, Integer
|
14
|
+
attribute :description, String
|
15
|
+
attribute :enable_following, Boolean
|
16
|
+
attribute :enable_incoming_emails, Boolean
|
17
|
+
attribute :enable_planned_mode, Boolean
|
18
|
+
attribute :enable_tasks, Boolean
|
19
|
+
attribute :epic_ids, Array[Integer]
|
20
|
+
attribute :epics, Array[TrackerApi::Resources::Epic]
|
21
|
+
attribute :has_google_domain, Boolean
|
22
|
+
attribute :id, Integer
|
23
|
+
attribute :initial_velocity, Integer
|
24
|
+
attribute :iteration_length, Integer
|
25
|
+
attribute :kind, String
|
26
|
+
attribute :label_ids, Array[Integer]
|
27
|
+
attribute :labels, Array[TrackerApi::Resources::Label]
|
28
|
+
attribute :name, String
|
29
|
+
attribute :number_of_done_iterations_to_show, Integer
|
30
|
+
attribute :point_scale, String
|
31
|
+
attribute :point_scale_is_custom, Boolean
|
32
|
+
attribute :profile_content, String
|
33
|
+
attribute :public, Boolean
|
34
|
+
attribute :start_date, DateTime
|
35
|
+
attribute :start_time, DateTime
|
36
|
+
attribute :time_zone, TrackerApi::Resources::TimeZone
|
37
|
+
attribute :updated_at, DateTime
|
38
|
+
attribute :velocity_averaged_over, Integer
|
39
|
+
attribute :version, Integer
|
40
|
+
attribute :week_start_day, String
|
41
|
+
|
42
|
+
# @return [Array[Epic]] epics associated with this project
|
43
|
+
def epics(params={})
|
44
|
+
raise ArgumentError, 'Expected @epics to be an Array' unless @epics.is_a? Array
|
45
|
+
return @epics unless @epics.empty?
|
46
|
+
|
47
|
+
@epics = Endpoints::Epics.new(client).get(id, params)
|
48
|
+
end
|
49
|
+
|
50
|
+
# @param [Hash] params
|
51
|
+
# @option params [String] :scope ('') Restricts the state of iterations to return.
|
52
|
+
# If not specified, it defaults to all iterations including done.
|
53
|
+
# Valid enumeration values: done, current, backlog, current_backlog.
|
54
|
+
# @option params [Integer] :offset The offset of first iteration to return, relative to the
|
55
|
+
# set of iterations specified by 'scope', with zero being the first iteration in the scope.
|
56
|
+
# @option params [Integer] :limit The number of iterations to return relative to the offset.
|
57
|
+
# @return [Array[Iteration]] iterations associated with this project
|
58
|
+
def iterations(params = {})
|
59
|
+
Endpoints::Iterations.new(client).get(id, params)
|
60
|
+
end
|
61
|
+
|
62
|
+
# @param [Hash] params
|
63
|
+
# @option params [String] :with_label A label name which all returned stories must match.
|
64
|
+
# @option params [String] :with_state A story's current_state which all returned stories must match.
|
65
|
+
# Valid enumeration values: accepted, delivered, finished, started, rejected, unstarted, unscheduled
|
66
|
+
# @option params [String] :filter This parameter supplies a search string;
|
67
|
+
# only stories that match the search criteria are returned.
|
68
|
+
# Cannot be used together with any other parameters except limit and offset.
|
69
|
+
# ex) state:started requester:OWK label:"jedi stuff" keyword
|
70
|
+
# @option params [Integer] :offset With the first story in your priority list as 0,
|
71
|
+
# the index of the first story you want returned.
|
72
|
+
# @option params [Integer] :limit The number of stories you want returned.
|
73
|
+
# @return [Array[Story]] iterations associated with this project
|
74
|
+
def stories(params = {})
|
75
|
+
Endpoints::Stories.new(client).get(id, params)
|
76
|
+
end
|
77
|
+
|
78
|
+
# @param [Fixnum] story_id id of story
|
79
|
+
# @return [Story]
|
80
|
+
def story(story_id)
|
81
|
+
Endpoints::Story.new(client).get(id, story_id)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
module Resources
|
3
|
+
class Story
|
4
|
+
include Virtus.model
|
5
|
+
|
6
|
+
attribute :client
|
7
|
+
|
8
|
+
attribute :accepted_at, DateTime
|
9
|
+
attribute :comment_ids, Array[Integer]
|
10
|
+
attribute :created_at, DateTime
|
11
|
+
attribute :current_state, String # (accepted, delivered, finished, started, rejected, unstarted, unscheduled)
|
12
|
+
attribute :deadline, DateTime
|
13
|
+
attribute :description, String
|
14
|
+
attribute :estimate, Float
|
15
|
+
attribute :external_id, String
|
16
|
+
attribute :follower_ids, Array[Integer]
|
17
|
+
attribute :id, Integer
|
18
|
+
attribute :integration_id, Integer
|
19
|
+
attribute :kind, String
|
20
|
+
attribute :label_ids, Array[Integer]
|
21
|
+
attribute :labels, Array[TrackerApi::Resources::Label]
|
22
|
+
attribute :name, String
|
23
|
+
attribute :owned_by_id, Integer
|
24
|
+
attribute :planned_iteration_number, Integer
|
25
|
+
attribute :project_id, Integer
|
26
|
+
attribute :requested_by_id, Integer
|
27
|
+
attribute :story_type, String # (feature, bug, chore, release)
|
28
|
+
attribute :task_ids, Array[Integer]
|
29
|
+
attribute :updated_at, DateTime
|
30
|
+
attribute :url, String
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/test/client_test.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
require_relative 'minitest_helper'
|
2
|
+
|
3
|
+
describe TrackerApi do
|
4
|
+
it 'has a version' do
|
5
|
+
::TrackerApi::VERSION.wont_be_nil
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
describe TrackerApi::Client do
|
10
|
+
it 'can be configured' do
|
11
|
+
client = TrackerApi::Client.new(url: 'http://test.com',
|
12
|
+
api_version: '/foo-bar/1',
|
13
|
+
token: '12345')
|
14
|
+
|
15
|
+
client.url.must_equal 'http://test.com'
|
16
|
+
client.api_version.must_equal '/foo-bar/1'
|
17
|
+
client.token.must_equal '12345'
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '.projects' do
|
21
|
+
let(:pt_user) { PT_USER_1 }
|
22
|
+
let(:client) { TrackerApi::Client.new token: pt_user[:token] }
|
23
|
+
|
24
|
+
it 'gets all projects' do
|
25
|
+
VCR.use_cassette('get all projects', record: :new_episodes) do
|
26
|
+
projects = client.projects(fields: ':default,account,current_velocity,labels(name),epics(:default,label(name))')
|
27
|
+
|
28
|
+
projects.wont_be_empty
|
29
|
+
project = projects.first
|
30
|
+
project.must_be_instance_of TrackerApi::Resources::Project
|
31
|
+
project.id.must_equal pt_user[:project_id]
|
32
|
+
|
33
|
+
project.account.must_be_instance_of TrackerApi::Resources::Account
|
34
|
+
|
35
|
+
project.labels.wont_be_empty
|
36
|
+
project.labels.first.must_be_instance_of TrackerApi::Resources::Label
|
37
|
+
|
38
|
+
project.epics.wont_be_empty
|
39
|
+
project.epics.first.must_be_instance_of TrackerApi::Resources::Epic
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '.project' do
|
45
|
+
let(:pt_user) { PT_USER_1 }
|
46
|
+
let(:client) { TrackerApi::Client.new token: pt_user[:token] }
|
47
|
+
let(:project_id) { pt_user[:project_id] }
|
48
|
+
|
49
|
+
it 'gets a project by id' do
|
50
|
+
VCR.use_cassette('get project', record: :new_episodes) do
|
51
|
+
project = client.project(project_id)
|
52
|
+
|
53
|
+
project.must_be_instance_of TrackerApi::Resources::Project
|
54
|
+
project.id.must_equal project_id
|
55
|
+
|
56
|
+
project.account.must_be_nil
|
57
|
+
project.account_id.wont_be_nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#Bundler.require(:test)
|
2
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
3
|
+
|
4
|
+
require 'coveralls'
|
5
|
+
Coveralls.wear!
|
6
|
+
|
7
|
+
require 'minitest/byebug' if ENV['DEBUG']
|
8
|
+
require 'minitest/autorun'
|
9
|
+
require 'awesome_print'
|
10
|
+
require 'multi_json'
|
11
|
+
require 'vcr'
|
12
|
+
|
13
|
+
require 'tracker_api'
|
14
|
+
# require File.expand_path('../../lib/tracker_api', __FILE__)
|
15
|
+
|
16
|
+
Dir[File.expand_path('../{support,shared}/**/*.rb', __FILE__)].each { |f| require f }
|
17
|
+
|
18
|
+
VCR.configure do |c|
|
19
|
+
c.ignore_localhost = true
|
20
|
+
c.cassette_library_dir = File.expand_path('../vcr/cassettes', __FILE__).to_s
|
21
|
+
c.default_cassette_options = { serialize_with: :json }
|
22
|
+
c.hook_into :faraday
|
23
|
+
c.allow_http_connections_when_no_cassette = false
|
24
|
+
end
|
25
|
+
|
26
|
+
# These API Tokens are for a user with just one Public Sample Project
|
27
|
+
PT_USER_1 = { project_id: 1027488, token: '0de3ac29f13082f0c16ed76f3f3f6895' } # trackher1 user
|
28
|
+
PT_USER_2 = { project_id: 1027492, token: '90a51cef4e7c358b36b4e4cdf0f2dd2a' } # trackher2 user
|
29
|
+
PT_USER_3 = { project_id: 1027494, token: 'f8aad6b471d1b1eb303d368ef533f622' } # trackher3 user
|
30
|
+
PT_USERS = [PT_USER_1, PT_USER_2, PT_USER_3]
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require_relative 'minitest_helper'
|
2
|
+
|
3
|
+
describe TrackerApi::Resources::Project do
|
4
|
+
let(:pt_user) { PT_USER_1 }
|
5
|
+
let(:client) { TrackerApi::Client.new token: pt_user[:token] }
|
6
|
+
let(:project_id) { pt_user[:project_id] }
|
7
|
+
let(:project) { VCR.use_cassette('get project') { client.project(project_id) } }
|
8
|
+
|
9
|
+
describe '.epics' do
|
10
|
+
it 'gets all epics for this project' do
|
11
|
+
VCR.use_cassette('get epics', record: :new_episodes) do
|
12
|
+
epics = project.epics
|
13
|
+
|
14
|
+
epics.wont_be_empty
|
15
|
+
epic = epics.first
|
16
|
+
epic.must_be_instance_of TrackerApi::Resources::Epic
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'with eager loading of epics' do
|
21
|
+
let(:project_with_epics) do
|
22
|
+
VCR.use_cassette('get project with epics') do
|
23
|
+
client.project(project_id, fields: ':default,epics(:default,label(name))')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# does not raise VCR::Errors::UnhandledHTTPRequestError
|
28
|
+
it 'does not make an extra request' do
|
29
|
+
epics = project_with_epics.epics
|
30
|
+
|
31
|
+
epics.wont_be_empty
|
32
|
+
epic = epics.first
|
33
|
+
epic.must_be_instance_of TrackerApi::Resources::Epic
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe '.iterations' do
|
39
|
+
it 'can get only done iterations' do
|
40
|
+
VCR.use_cassette('get done iterations', record: :new_episodes) do
|
41
|
+
offset = -project.number_of_done_iterations_to_show.to_i
|
42
|
+
done_iterations = project.iterations(scope: :done, offset: offset)
|
43
|
+
|
44
|
+
done_iterations.wont_be_empty
|
45
|
+
done_iterations.length.must_be :<, project.number_of_done_iterations_to_show
|
46
|
+
|
47
|
+
iteration = done_iterations.first
|
48
|
+
iteration.must_be_instance_of TrackerApi::Resources::Iteration
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'can get current iteration' do
|
53
|
+
VCR.use_cassette('get current iteration', record: :new_episodes) do
|
54
|
+
iterations = project.iterations(scope: :current)
|
55
|
+
|
56
|
+
iterations.wont_be_empty
|
57
|
+
|
58
|
+
current = iterations.first
|
59
|
+
current.must_be_instance_of TrackerApi::Resources::Iteration
|
60
|
+
current.stories.wont_be_empty
|
61
|
+
|
62
|
+
story = current.stories.first
|
63
|
+
story.must_be_instance_of TrackerApi::Resources::Story
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe '.stories' do
|
69
|
+
it 'can get unscheduled stories (icebox)' do
|
70
|
+
VCR.use_cassette('get unscheduled stories', record: :new_episodes) do
|
71
|
+
stories = project.stories(with_state: :unscheduled)
|
72
|
+
|
73
|
+
stories.wont_be_empty
|
74
|
+
|
75
|
+
story = stories.first
|
76
|
+
story.must_be_instance_of TrackerApi::Resources::Story
|
77
|
+
story.current_state.must_equal 'unscheduled'
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects?fields=%3Adefault%2Caccount%2Ccurrent_velocity%2Clabels%28name%29%2Cepics%28%3Adefault%2Clabel%28name%29%29","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.0.0 (x86_64-darwin13.0.2; ruby) TrackerApi/0.0.1 Faraday/0.8.9"],"X-TrackerToken":["0de3ac29f13082f0c16ed76f3f3f6895"]}},"response":{"status":{"code":200,"message":null},"headers":{"content-type":["application/json; charset=utf-8"],"transfer-encoding":["chunked"],"connection":["close"],"status":["200"],"x-powered-by":["Phusion Passenger (mod_rails/mod_rack) 3.0.14"],"cache-control":["private, max-age=0, must-revalidate"],"etag":["\"0d122ab3cf93bd85140ffc95b445d705\""],"x-runtime":["120"],"server":["nginx/1.2.2 + Phusion Passenger 3.0.14 (mod_rails/mod_rack)"],"access-control-allow-origin":["*"],"access-control-allow-credentials":["false"],"access-control-allow-methods":["GET, POST, PUT, DELETE, OPTIONS"],"access-control-allow-headers":["X-TrackerToken,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Tracker-Warn-Unless-Project-Version-Is"]},"body":{"encoding":"UTF-8","string":"[\n {\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"version\": 1,\n \"current_iteration_number\": 6,\n \"account\": {\n \"days_left\": 39,\n \"id\": 621384,\n \"status\": \"active\",\n \"name\": \"Trackher User1\",\n \"kind\": \"account_summary\"\n },\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"enable_following\": true,\n \"time_zone\": {\n \"offset\": \"-07:00\",\n \"olson_name\": \"America/Los_Angeles\",\n \"kind\": \"time_zone\"\n },\n \"point_scale_is_custom\": false,\n \"account_id\": 621384,\n \"epics\": [\n {\n \"created_at\": \"2014-03-02T07:11:07Z\",\n \"label\": {\n \"id\": 7849080,\n \"name\": \"admin\"\n },\n \"description\": \"Get the Admin users working on the site\",\n \"updated_at\": \"2014-03-02T07:11:07Z\",\n \"url\": \"http://www.pivotaltracker.com/epic/show/1087314\",\n \"project_id\": 1027488,\n \"id\": 1087314,\n \"name\": \"Admin Users\",\n \"kind\": \"epic\"\n },\n {\n \"created_at\": \"2014-03-02T07:11:07Z\",\n \"label\": {\n \"id\": 7849082,\n \"name\": \"shopping\"\n },\n \"description\": \"Allow shoppers to use the site\",\n \"updated_at\": \"2014-03-02T07:11:07Z\",\n \"url\": \"http://www.pivotaltracker.com/epic/show/1087316\",\n \"project_id\": 1027488,\n \"id\": 1087316,\n \"name\": \"Shoppers\",\n \"kind\": \"epic\"\n }\n ],\n \"labels\": [\n {\n \"id\": 7849080,\n \"name\": \"admin\"\n },\n {\n \"id\": 7849106,\n \"name\": \"blog\"\n },\n {\n \"id\": 7849086,\n \"name\": \"cart\"\n },\n {\n \"id\": 7849090,\n \"name\": \"checkout\"\n },\n {\n \"id\": 7849078,\n \"name\": \"deployment\"\n },\n {\n \"id\": 7849100,\n \"name\": \"design\"\n },\n {\n \"id\": 7849112,\n \"name\": \"epic\"\n },\n {\n \"id\": 7849104,\n \"name\": \"featured products\"\n },\n {\n \"id\": 7849110,\n \"name\": \"ie6\"\n },\n {\n \"id\": 7849092,\n \"name\": \"needs discussion\"\n },\n {\n \"id\": 7849094,\n \"name\": \"orders\"\n },\n {\n \"id\": 7849108,\n \"name\": \"reporting\"\n },\n {\n \"id\": 7849088,\n \"name\": \"search\"\n },\n {\n \"id\": 7849098,\n \"name\": \"shopper accounts\"\n },\n {\n \"id\": 7849082,\n \"name\": \"shopping\"\n },\n {\n \"id\": 7849096,\n \"name\": \"signup / signin\"\n },\n {\n \"id\": 7849084,\n \"name\": \"usability\"\n },\n {\n \"id\": 7849102,\n \"name\": \"user generated content\"\n }\n ],\n \"atom_enabled\": false,\n \"has_google_domain\": false,\n \"start_time\": \"2014-02-10T08:00:00Z\",\n \"number_of_done_iterations_to_show\": 12,\n \"week_start_day\": \"Monday\",\n \"id\": 1027488,\n \"enable_tasks\": true,\n \"bugs_and_chores_are_estimatable\": false,\n \"point_scale\": \"0,1,2,3\",\n \"current_velocity\": 1,\n \"public\": false,\n \"enable_incoming_emails\": true,\n \"profile_content\": \"This is a demo project, created by Tracker, with example stories for a simple shopping web site.\",\n \"velocity_averaged_over\": 3,\n \"name\": \"My Sample Project\",\n \"iteration_length\": 1,\n \"kind\": \"project\",\n \"initial_velocity\": 10,\n \"enable_planned_mode\": false\n }\n]"},"http_version":null},"recorded_at":"Sun, 23 Mar 2014 06:28:26 GMT"}],"recorded_with":"VCR 2.8.0"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/iterations?scope=current","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.0.0 (x86_64-darwin13.0.2; ruby) TrackerApi/0.0.1 Faraday/0.8.9"],"X-TrackerToken":["0de3ac29f13082f0c16ed76f3f3f6895"]}},"response":{"status":{"code":200,"message":null},"headers":{"content-type":["application/json; charset=utf-8"],"transfer-encoding":["chunked"],"connection":["close"],"status":["200"],"x-powered-by":["Phusion Passenger (mod_rails/mod_rack) 3.0.14"],"cache-control":["private, max-age=0, must-revalidate"],"x-tracker-project-version":["1"],"etag":["\"b7929dd9d79159714ee85b3c70fe1d79\""],"x-runtime":["150"],"server":["nginx/1.2.2 + Phusion Passenger 3.0.14 (mod_rails/mod_rack)"],"access-control-allow-origin":["*"],"access-control-allow-credentials":["false"],"access-control-allow-methods":["GET, POST, PUT, DELETE, OPTIONS"],"access-control-allow-headers":["X-TrackerToken,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Tracker-Warn-Unless-Project-Version-Is"]},"body":{"encoding":"UTF-8","string":"[\n {\n \"finish\": \"2014-03-24T07:00:00Z\",\n \"kind\": \"iteration\",\n \"stories\": [\n {\n \"name\": \"Shopper should be able to view contents of shopping cart\",\n \"story_type\": \"feature\",\n \"requested_by_id\": 1266314,\n \"kind\": \"story\",\n \"created_at\": \"2014-02-17T00:00:00Z\",\n \"labels\": [\n {\n \"name\": \"cart\",\n \"kind\": \"label\",\n \"created_at\": \"2014-03-02T07:11:05Z\",\n \"updated_at\": \"2014-03-02T07:11:05Z\",\n \"id\": 7849086,\n \"project_id\": 1027488\n },\n {\n \"name\": \"shopping\",\n \"kind\": \"label\",\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"id\": 7849082,\n \"project_id\": 1027488\n }\n ],\n \"current_state\": \"delivered\",\n \"updated_at\": \"2014-03-02T07:11:05Z\",\n \"id\": 66727998,\n \"project_id\": 1027488,\n \"owner_ids\": [\n\n ],\n \"url\": \"http://www.pivotaltracker.com/story/show/66727998\",\n \"estimate\": 2,\n \"description\": \"Cart icon in top right corner, with a number indicating how many items in cart\"\n },\n {\n \"name\": \"Shopper should be able to remove product from shopping cart\",\n \"story_type\": \"feature\",\n \"requested_by_id\": 1266314,\n \"kind\": \"story\",\n \"created_at\": \"2014-02-17T00:00:00Z\",\n \"labels\": [\n {\n \"name\": \"cart\",\n \"kind\": \"label\",\n \"created_at\": \"2014-03-02T07:11:05Z\",\n \"updated_at\": \"2014-03-02T07:11:05Z\",\n \"id\": 7849086,\n \"project_id\": 1027488\n },\n {\n \"name\": \"shopping\",\n \"kind\": \"label\",\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"id\": 7849082,\n \"project_id\": 1027488\n }\n ],\n \"current_state\": \"delivered\",\n \"updated_at\": \"2014-03-02T07:11:05Z\",\n \"id\": 66728000,\n \"project_id\": 1027488,\n \"owner_ids\": [\n\n ],\n \"url\": \"http://www.pivotaltracker.com/story/show/66728000\",\n \"estimate\": 1\n },\n {\n \"name\": \"Cart manipulation should be AJAXy\",\n \"story_type\": \"feature\",\n \"requested_by_id\": 1266314,\n \"kind\": \"story\",\n \"created_at\": \"2014-02-17T00:00:00Z\",\n \"labels\": [\n {\n \"name\": \"cart\",\n \"kind\": \"label\",\n \"created_at\": \"2014-03-02T07:11:05Z\",\n \"updated_at\": \"2014-03-02T07:11:05Z\",\n \"id\": 7849086,\n \"project_id\": 1027488\n },\n {\n \"name\": \"shopping\",\n \"kind\": \"label\",\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"id\": 7849082,\n \"project_id\": 1027488\n }\n ],\n \"current_state\": \"finished\",\n \"updated_at\": \"2014-03-02T07:11:05Z\",\n \"id\": 66728002,\n \"project_id\": 1027488,\n \"owner_ids\": [\n\n ],\n \"url\": \"http://www.pivotaltracker.com/story/show/66728002\",\n \"estimate\": 1\n },\n {\n \"name\": \"Some product photos not scaled properly when browsing products\",\n \"story_type\": \"bug\",\n \"requested_by_id\": 1266314,\n \"kind\": \"story\",\n \"created_at\": \"2014-02-17T00:00:00Z\",\n \"labels\": [\n {\n \"name\": \"shopping\",\n \"kind\": \"label\",\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"id\": 7849082,\n \"project_id\": 1027488\n }\n ],\n \"current_state\": \"started\",\n \"updated_at\": \"2014-03-02T07:11:05Z\",\n \"id\": 66728004,\n \"project_id\": 1027488,\n \"owner_ids\": [\n\n ],\n \"url\": \"http://www.pivotaltracker.com/story/show/66728004\"\n }\n ],\n \"start\": \"2014-03-17T07:00:00Z\",\n \"project_id\": 1027488,\n \"team_strength\": 1,\n \"number\": 6\n }\n]"},"http_version":null},"recorded_at":"Sun, 23 Mar 2014 06:28:28 GMT"}],"recorded_with":"VCR 2.8.0"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/iterations?scope=done&offset=-12","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.0.0 (x86_64-darwin13.0.2; ruby) TrackerApi/0.0.1 Faraday/0.8.9"],"X-TrackerToken":["0de3ac29f13082f0c16ed76f3f3f6895"]}},"response":{"status":{"code":200,"message":null},"headers":{"content-type":["application/json; charset=utf-8"],"transfer-encoding":["chunked"],"connection":["close"],"status":["200"],"x-powered-by":["Phusion Passenger (mod_rails/mod_rack) 3.0.14"],"x-tracker-project-version":["1"],"cache-control":["private, max-age=0, must-revalidate"],"x-tracker-pagination-offset":["-12"],"etag":["\"5f632dec8cf809f0b82e3f7f5d91a801\""],"x-runtime":["522"],"x-tracker-pagination-returned":["5"],"x-tracker-pagination-limit":["10"],"x-tracker-pagination-total":["5"],"server":["nginx/1.2.2 + Phusion Passenger 3.0.14 (mod_rails/mod_rack)"],"access-control-allow-origin":["*"],"access-control-allow-credentials":["false"],"access-control-allow-methods":["GET, POST, PUT, DELETE, OPTIONS"],"access-control-allow-headers":["X-TrackerToken,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Tracker-Warn-Unless-Project-Version-Is"]},"body":{"encoding":"UTF-8","string":"[\n {\n \"number\": 1,\n \"kind\": \"iteration\",\n \"finish\": \"2014-02-17T08:00:00Z\",\n \"project_id\": 1027488,\n \"start\": \"2014-02-10T08:00:00Z\",\n \"stories\": [\n {\n \"name\": \"Setup development environment\",\n \"kind\": \"story\",\n \"description\": \"We need 2 machines set up\",\n \"accepted_at\": \"2014-02-11T00:00:00Z\",\n \"id\": 66727974,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-10T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"requested_by_id\": 1266314,\n \"labels\": [\n\n ],\n \"story_type\": \"chore\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727974\"\n },\n {\n \"name\": \"Setup demo server\",\n \"kind\": \"story\",\n \"description\": \"Should be accessible from outside the network, with basic auth\",\n \"accepted_at\": \"2014-02-11T00:00:00Z\",\n \"id\": 66727976,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-10T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"deployment\",\n \"kind\": \"label\",\n \"id\": 7849078,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n }\n ],\n \"story_type\": \"chore\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727976\"\n },\n {\n \"name\": \"Admin should be able to login\",\n \"kind\": \"story\",\n \"description\": \"Admin should be a special user type. We can create the first admin user directly in the DB, but let's encrypt the password.\",\n \"accepted_at\": \"2014-02-11T00:00:00Z\",\n \"id\": 66727978,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-10T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"estimate\": 2,\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"admin\",\n \"kind\": \"label\",\n \"id\": 7849080,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n }\n ],\n \"story_type\": \"feature\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727978\"\n },\n {\n \"name\": \"Admin should be able to create new product\",\n \"kind\": \"story\",\n \"description\": \"Product information includes title, description, price, SKU.\",\n \"accepted_at\": \"2014-02-11T00:00:00Z\",\n \"id\": 66727980,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-10T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"estimate\": 1,\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"admin\",\n \"kind\": \"label\",\n \"id\": 7849080,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n }\n ],\n \"story_type\": \"feature\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727980\"\n },\n {\n \"name\": \"Admin should be able to upload product photo\",\n \"kind\": \"story\",\n \"accepted_at\": \"2014-02-11T00:00:00Z\",\n \"id\": 66727982,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-10T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"estimate\": 2,\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"admin\",\n \"kind\": \"label\",\n \"id\": 7849080,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n }\n ],\n \"story_type\": \"feature\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727982\"\n }\n ],\n \"team_strength\": 1\n },\n {\n \"number\": 2,\n \"kind\": \"iteration\",\n \"finish\": \"2014-02-24T08:00:00Z\",\n \"project_id\": 1027488,\n \"start\": \"2014-02-17T08:00:00Z\",\n \"stories\": [\n {\n \"name\": \"Admin should be able to upload multiple product photos and mark one as the primary\",\n \"kind\": \"story\",\n \"accepted_at\": \"2014-02-18T00:00:00Z\",\n \"id\": 66727984,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-10T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"estimate\": 3,\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"admin\",\n \"kind\": \"label\",\n \"id\": 7849080,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n }\n ],\n \"story_type\": \"feature\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727984\"\n },\n {\n \"name\": \"Shopper should see list of products, with primary photo as thumbnail\",\n \"kind\": \"story\",\n \"accepted_at\": \"2014-02-18T00:00:00Z\",\n \"id\": 66727986,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-10T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"estimate\": 2,\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"shopping\",\n \"kind\": \"label\",\n \"id\": 7849082,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n }\n ],\n \"story_type\": \"feature\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727986\"\n },\n {\n \"name\": \"Product browsing should be paginated, with 10 products per page\",\n \"kind\": \"story\",\n \"accepted_at\": \"2014-02-18T00:00:00Z\",\n \"id\": 66727988,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-10T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"estimate\": 1,\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"shopping\",\n \"kind\": \"label\",\n \"id\": 7849082,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n }\n ],\n \"story_type\": \"feature\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727988\"\n },\n {\n \"name\": \"Make product browsing pagination AJAXy\",\n \"kind\": \"story\",\n \"accepted_at\": \"2014-02-18T00:00:00Z\",\n \"id\": 66727990,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-10T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"estimate\": 2,\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"shopping\",\n \"kind\": \"label\",\n \"id\": 7849082,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n },\n {\n \"name\": \"usability\",\n \"kind\": \"label\",\n \"id\": 7849084,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:05Z\",\n \"updated_at\": \"2014-03-02T07:11:05Z\"\n }\n ],\n \"story_type\": \"feature\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727990\"\n },\n {\n \"name\": \"Admin should be able to import multiple new products from CSV file\",\n \"kind\": \"story\",\n \"accepted_at\": \"2014-02-18T00:00:00Z\",\n \"id\": 66727992,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-10T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:05Z\",\n \"estimate\": 3,\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"admin\",\n \"kind\": \"label\",\n \"id\": 7849080,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n }\n ],\n \"story_type\": \"feature\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727992\"\n }\n ],\n \"team_strength\": 1\n },\n {\n \"number\": 3,\n \"kind\": \"iteration\",\n \"finish\": \"2014-03-03T08:00:00Z\",\n \"project_id\": 1027488,\n \"start\": \"2014-02-24T08:00:00Z\",\n \"stories\": [\n {\n \"name\": \"Shopper should be able to click on a product, and see all product details, including photos\",\n \"kind\": \"story\",\n \"accepted_at\": \"2014-03-02T00:00:00Z\",\n \"id\": 66727994,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-17T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:05Z\",\n \"estimate\": 1,\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"shopping\",\n \"kind\": \"label\",\n \"id\": 7849082,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n }\n ],\n \"story_type\": \"feature\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727994\"\n },\n {\n \"name\": \"Shopper should be able to add product to shopping cart\",\n \"kind\": \"story\",\n \"accepted_at\": \"2014-03-02T07:11:05Z\",\n \"id\": 66727996,\n \"project_id\": 1027488,\n \"current_state\": \"accepted\",\n \"owner_ids\": [\n\n ],\n \"created_at\": \"2014-02-17T00:00:00Z\",\n \"updated_at\": \"2014-03-02T07:11:05Z\",\n \"estimate\": 1,\n \"requested_by_id\": 1266314,\n \"labels\": [\n {\n \"name\": \"cart\",\n \"kind\": \"label\",\n \"id\": 7849086,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:05Z\",\n \"updated_at\": \"2014-03-02T07:11:05Z\"\n },\n {\n \"name\": \"shopping\",\n \"kind\": \"label\",\n \"id\": 7849082,\n \"project_id\": 1027488,\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\"\n }\n ],\n \"story_type\": \"feature\",\n \"url\": \"http://www.pivotaltracker.com/story/show/66727996\"\n }\n ],\n \"team_strength\": 1\n },\n {\n \"number\": 4,\n \"kind\": \"iteration\",\n \"finish\": \"2014-03-10T07:00:00Z\",\n \"project_id\": 1027488,\n \"start\": \"2014-03-03T08:00:00Z\",\n \"stories\": [\n\n ],\n \"team_strength\": 1\n },\n {\n \"number\": 5,\n \"kind\": \"iteration\",\n \"finish\": \"2014-03-17T07:00:00Z\",\n \"project_id\": 1027488,\n \"start\": \"2014-03-10T07:00:00Z\",\n \"stories\": [\n\n ],\n \"team_strength\": 1\n }\n]"},"http_version":null},"recorded_at":"Sun, 23 Mar 2014 06:28:29 GMT"}],"recorded_with":"VCR 2.8.0"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/epics","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.0.0 (x86_64-darwin13.0.2; ruby) TrackerApi/0.0.1 Faraday/0.8.9"],"X-TrackerToken":["0de3ac29f13082f0c16ed76f3f3f6895"]}},"response":{"status":{"code":200,"message":null},"headers":{"content-type":["application/json; charset=utf-8"],"transfer-encoding":["chunked"],"connection":["close"],"status":["200"],"x-powered-by":["Phusion Passenger (mod_rails/mod_rack) 3.0.14"],"cache-control":["private, max-age=0, must-revalidate"],"x-tracker-project-version":["1"],"etag":["\"fd893b81ac58cf4eb575d740e8475145\""],"x-runtime":["42"],"server":["nginx/1.2.2 + Phusion Passenger 3.0.14 (mod_rails/mod_rack)"],"access-control-allow-origin":["*"],"access-control-allow-credentials":["false"],"access-control-allow-methods":["GET, POST, PUT, DELETE, OPTIONS"],"access-control-allow-headers":["X-TrackerToken,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Tracker-Warn-Unless-Project-Version-Is"]},"body":{"encoding":"UTF-8","string":"[\n {\n \"name\": \"Admin Users\",\n \"kind\": \"epic\",\n \"label\": {\n \"name\": \"admin\",\n \"kind\": \"label\",\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"id\": 7849080,\n \"project_id\": 1027488\n },\n \"created_at\": \"2014-03-02T07:11:07Z\",\n \"updated_at\": \"2014-03-02T07:11:07Z\",\n \"id\": 1087314,\n \"url\": \"http://www.pivotaltracker.com/epic/show/1087314\",\n \"project_id\": 1027488,\n \"description\": \"Get the Admin users working on the site\"\n },\n {\n \"name\": \"Shoppers\",\n \"kind\": \"epic\",\n \"label\": {\n \"name\": \"shopping\",\n \"kind\": \"label\",\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"id\": 7849082,\n \"project_id\": 1027488\n },\n \"created_at\": \"2014-03-02T07:11:07Z\",\n \"updated_at\": \"2014-03-02T07:11:07Z\",\n \"id\": 1087316,\n \"url\": \"http://www.pivotaltracker.com/epic/show/1087316\",\n \"project_id\": 1027488,\n \"description\": \"Allow shoppers to use the site\"\n }\n]"},"http_version":null},"recorded_at":"Sun, 23 Mar 2014 06:28:26 GMT"}],"recorded_with":"VCR 2.8.0"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.0.0 (x86_64-darwin13.0.2; ruby) TrackerApi/0.0.1 Faraday/0.8.9"],"X-TrackerToken":["0de3ac29f13082f0c16ed76f3f3f6895"]}},"response":{"status":{"code":200,"message":null},"headers":{"content-type":["application/json; charset=utf-8"],"transfer-encoding":["chunked"],"connection":["close"],"status":["200"],"x-powered-by":["Phusion Passenger (mod_rails/mod_rack) 3.0.14"],"cache-control":["private, max-age=0, must-revalidate"],"etag":["\"dbf4aea2a2935eefffe4468d24191436\""],"x-runtime":["36"],"x-tracker-project-version":["1"],"server":["nginx/1.2.2 + Phusion Passenger 3.0.14 (mod_rails/mod_rack)"],"access-control-allow-origin":["*"],"access-control-allow-credentials":["false"],"access-control-allow-methods":["GET, POST, PUT, DELETE, OPTIONS"],"access-control-allow-headers":["X-TrackerToken,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Tracker-Warn-Unless-Project-Version-Is"]},"body":{"encoding":"UTF-8","string":"{\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"version\": 1,\n \"current_iteration_number\": 6,\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"enable_following\": true,\n \"time_zone\": {\n \"offset\": \"-07:00\",\n \"olson_name\": \"America/Los_Angeles\",\n \"kind\": \"time_zone\"\n },\n \"point_scale_is_custom\": false,\n \"account_id\": 621384,\n \"atom_enabled\": false,\n \"has_google_domain\": false,\n \"start_time\": \"2014-02-10T08:00:00Z\",\n \"number_of_done_iterations_to_show\": 12,\n \"week_start_day\": \"Monday\",\n \"id\": 1027488,\n \"enable_tasks\": true,\n \"bugs_and_chores_are_estimatable\": false,\n \"point_scale\": \"0,1,2,3\",\n \"public\": false,\n \"enable_incoming_emails\": true,\n \"profile_content\": \"This is a demo project, created by Tracker, with example stories for a simple shopping web site.\",\n \"velocity_averaged_over\": 3,\n \"name\": \"My Sample Project\",\n \"iteration_length\": 1,\n \"kind\": \"project\",\n \"initial_velocity\": 10,\n \"enable_planned_mode\": false\n}"},"http_version":null},"recorded_at":"Sun, 23 Mar 2014 06:28:26 GMT"}],"recorded_with":"VCR 2.8.0"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488?fields=%3Adefault%2Cepics%28%3Adefault%2Clabel%28name%29%29","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.0.0 (x86_64-darwin13.0.2; ruby) TrackerApi/0.0.1 Faraday/0.8.9"],"X-TrackerToken":["0de3ac29f13082f0c16ed76f3f3f6895"]}},"response":{"status":{"code":200,"message":null},"headers":{"content-type":["application/json; charset=utf-8"],"transfer-encoding":["chunked"],"connection":["close"],"status":["200"],"x-powered-by":["Phusion Passenger (mod_rails/mod_rack) 3.0.14"],"x-tracker-project-version":["1"],"cache-control":["private, max-age=0, must-revalidate"],"etag":["\"36004bb89c883ff022386d617b8edc8d\""],"x-runtime":["104"],"server":["nginx/1.2.2 + Phusion Passenger 3.0.14 (mod_rails/mod_rack)"],"access-control-allow-origin":["*"],"access-control-allow-credentials":["false"],"access-control-allow-methods":["GET, POST, PUT, DELETE, OPTIONS"],"access-control-allow-headers":["X-TrackerToken,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Tracker-Warn-Unless-Project-Version-Is"]},"body":{"encoding":"UTF-8","string":"{\n \"enable_following\": true,\n \"atom_enabled\": false,\n \"public\": false,\n \"version\": 1,\n \"account_id\": 621384,\n \"enable_tasks\": true,\n \"name\": \"My Sample Project\",\n \"kind\": \"project\",\n \"velocity_averaged_over\": 3,\n \"profile_content\": \"This is a demo project, created by Tracker, with example stories for a simple shopping web site.\",\n \"enable_planned_mode\": false,\n \"bugs_and_chores_are_estimatable\": false,\n \"point_scale\": \"0,1,2,3\",\n \"id\": 1027488,\n \"current_iteration_number\": 6,\n \"updated_at\": \"2014-03-02T07:11:04Z\",\n \"created_at\": \"2014-03-02T07:11:04Z\",\n \"enable_incoming_emails\": true,\n \"has_google_domain\": false,\n \"number_of_done_iterations_to_show\": 12,\n \"epics\": [\n {\n \"name\": \"Admin Users\",\n \"kind\": \"epic\",\n \"description\": \"Get the Admin users working on the site\",\n \"project_id\": 1027488,\n \"id\": 1087314,\n \"updated_at\": \"2014-03-02T07:11:07Z\",\n \"created_at\": \"2014-03-02T07:11:07Z\",\n \"url\": \"http://www.pivotaltracker.com/epic/show/1087314\",\n \"label\": {\n \"name\": \"admin\",\n \"id\": 7849080\n }\n },\n {\n \"name\": \"Shoppers\",\n \"kind\": \"epic\",\n \"description\": \"Allow shoppers to use the site\",\n \"project_id\": 1027488,\n \"id\": 1087316,\n \"updated_at\": \"2014-03-02T07:11:07Z\",\n \"created_at\": \"2014-03-02T07:11:07Z\",\n \"url\": \"http://www.pivotaltracker.com/epic/show/1087316\",\n \"label\": {\n \"name\": \"shopping\",\n \"id\": 7849082\n }\n }\n ],\n \"start_time\": \"2014-02-10T08:00:00Z\",\n \"iteration_length\": 1,\n \"initial_velocity\": 10,\n \"point_scale_is_custom\": false,\n \"week_start_day\": \"Monday\",\n \"time_zone\": {\n \"kind\": \"time_zone\",\n \"olson_name\": \"America/Los_Angeles\",\n \"offset\": \"-07:00\"\n }\n}"},"http_version":null},"recorded_at":"Sun, 23 Mar 2014 06:28:27 GMT"}],"recorded_with":"VCR 2.8.0"}
|