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