tracker_api 1.1.1 → 1.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 86a0fc8286762942b07822c2dc7efa7478eff2a9
4
- data.tar.gz: 117233a3c81bbcd6177a006f1098bdcef00af6c4
3
+ metadata.gz: 5c9ea2a8e243027907fcc5a9c85368a6d6b8b42e
4
+ data.tar.gz: 572d93e69c9d3ee8ed9e92f0601581aa8e266223
5
5
  SHA512:
6
- metadata.gz: 1c275fb7385aa58a03575e5278450f6c7606bb1080b4d782da6d827049a5026c57b7612422a3aef32cf73a36bd32f3b6aa150299502ee1adce02d95388f5c9fd
7
- data.tar.gz: 2f3b1b746c5afaa4d28af7d2e1bd3b784354a3d6de23f286f25dd55a6d36f706293c3817a4f041915ee031bd891354258fc05f429bb903b415016dc54be4c22b
6
+ metadata.gz: ef0fe7129801167c7222534634b95ac652db1b7640b9bf2e14b4f3094ecff528a0d1b7361a85dbbbde276e72590cdc6aee7db84c12c246e514121cb7fa305cd2
7
+ data.tar.gz: d0fbe2d2d61c05aaadaf3e246abc85e0068d84572fcc807a11fa0f313afc0d6163053f70d38b1585ab627ce4ac45819ce0b9ccfcbcf84dd0599ba746075f8cd2
data/README.md CHANGED
@@ -68,6 +68,8 @@ task.save # Mark
68
68
  epics = project.epics # Get all epics for a project
69
69
  epic = epics.first
70
70
  label = epic.label # Get an epic's label
71
+
72
+ workspaces = client.workspaces # Get person's multi-project workspaces
71
73
  ```
72
74
 
73
75
  ## Eager Loading
data/lib/tracker_api.rb CHANGED
@@ -42,6 +42,8 @@ module TrackerApi
42
42
  autoload :Notifications, 'tracker_api/endpoints/notifications'
43
43
  autoload :Project, 'tracker_api/endpoints/project'
44
44
  autoload :Projects, 'tracker_api/endpoints/projects'
45
+ autoload :Workspace, 'tracker_api/endpoints/workspace'
46
+ autoload :Workspaces, 'tracker_api/endpoints/workspaces'
45
47
  autoload :Stories, 'tracker_api/endpoints/stories'
46
48
  autoload :Story, 'tracker_api/endpoints/story'
47
49
  autoload :StoryOwners, 'tracker_api/endpoints/story_owners'
@@ -68,6 +70,7 @@ module TrackerApi
68
70
  autoload :PrimaryResource, 'tracker_api/resources/primary_resource'
69
71
  autoload :Project, 'tracker_api/resources/project'
70
72
  autoload :ProjectMembership, 'tracker_api/resources/project_membership'
73
+ autoload :Workspace, 'tracker_api/resources/workspace'
71
74
  autoload :Story, 'tracker_api/resources/story'
72
75
  autoload :Task, 'tracker_api/resources/task'
73
76
  autoload :TimeZone, 'tracker_api/resources/time_zone'
@@ -128,6 +128,23 @@ module TrackerApi
128
128
  Endpoints::Project.new(self).get(id, params)
129
129
  end
130
130
 
131
+ # Get workspace
132
+ #
133
+ # @param [Hash] params
134
+ # @return [TrackerApi::Resources::Workspace]
135
+ def workspace(id, params={})
136
+ Endpoints::Workspace.new(self).get(id, params)
137
+ end
138
+
139
+ # Get workspaces
140
+ #
141
+ # @param [Hash] params
142
+ # @return [Array[TrackerApi::Resources::Workspace]]
143
+ def workspaces(params={})
144
+ Endpoints::Workspaces.new(self).get(params)
145
+ end
146
+
147
+
131
148
  # Get information about the authenticated user
132
149
  #
133
150
  # @return [TrackerApi::Resources::Me]
@@ -0,0 +1,17 @@
1
+ module TrackerApi
2
+ module Endpoints
3
+ class Workspace
4
+ attr_accessor :client
5
+
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ def get(id, params={})
11
+ data = client.get("/my/workspaces/#{id}", params: params).body
12
+
13
+ Resources::Workspace.new({ client: client }.merge(data))
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ module TrackerApi
2
+ module Endpoints
3
+ class Workspaces
4
+ attr_accessor :client
5
+
6
+ def initialize(client)
7
+ @client = client
8
+ end
9
+
10
+ def get(params={})
11
+ data = client.paginate('/my/workspaces', params: params)
12
+ raise Errors::UnexpectedData, 'Array of workspaces expected' unless data.is_a? Array
13
+
14
+ data.map { |workspace| Resources::Workspace.new({ client: client }.merge(workspace))
15
+ }
16
+ end
17
+ end
18
+ end
19
+ end
@@ -12,6 +12,7 @@ module TrackerApi
12
12
  attribute :project_ids, [Integer]
13
13
  attribute :projects, [MembershipSummary]
14
14
  attribute :workspace_ids, [Integer]
15
+ attribute :workspaces, [Workspace]
15
16
  attribute :email, String
16
17
  attribute :receives_in_app_notifications, Boolean
17
18
  attribute :kind, String
@@ -0,0 +1,18 @@
1
+ module TrackerApi
2
+ module Resources
3
+ class Workspace
4
+ include Shared::Base
5
+
6
+ attribute :client
7
+
8
+ attribute :person, Person
9
+ attribute :person_id, Integer
10
+ attribute :created_at, DateTime
11
+ attribute :project_ids, [Integer]
12
+ attribute :projects, [Project]
13
+ attribute :kind, String
14
+ attribute :name, String
15
+
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module TrackerApi
2
- VERSION = '1.1.1'
2
+ VERSION = '1.2.1'
3
3
  end
data/test/client_test.rb CHANGED
@@ -61,6 +61,40 @@ describe TrackerApi::Client do
61
61
  end
62
62
  end
63
63
 
64
+ describe '.workspace' do
65
+ let(:pt_user) { PT_USER_1 }
66
+ let(:client) { TrackerApi::Client.new token: pt_user[:token] }
67
+
68
+ it 'gets a workspace by id' do
69
+ VCR.use_cassette('get workspace', record: :new_episodes) do
70
+ workspace = client.workspace(pt_user[:workspace_id])
71
+
72
+ workspace.must_be_instance_of TrackerApi::Resources::Workspace
73
+ workspace.id.must_equal pt_user[:workspace_id]
74
+ workspace.name.wont_be_empty
75
+ end
76
+ end
77
+ end
78
+
79
+
80
+ describe '.workspaces' do
81
+ let(:pt_user) { PT_USER_2 }
82
+ let(:client) { TrackerApi::Client.new token: pt_user[:token] }
83
+
84
+ it 'gets all workspaces' do
85
+ VCR.use_cassette('get all workspaces', record: :new_episodes) do
86
+ workspaces = client.workspaces(fields: ':default,projects(id,name)')
87
+
88
+ workspaces.wont_be_empty
89
+ workspace = workspaces.first
90
+ workspace.must_be_instance_of TrackerApi::Resources::Workspace
91
+ workspace.id.must_equal pt_user[:workspace_id]
92
+ end
93
+ end
94
+ end
95
+
96
+
97
+
64
98
  describe '.me' do
65
99
  let(:pt_user) { PT_USER_1 }
66
100
  let(:client) { TrackerApi::Client.new token: pt_user[:token] }
@@ -25,8 +25,8 @@ VCR.configure do |c|
25
25
  end
26
26
 
27
27
  # These API Tokens are for a user with just one Public Sample Project
28
- PT_USER_1 = { username: 'trackerapi1', password: 'trackerapi1', token: 'd55c3bc1f74346b843ca84ba340b29bf', project_id: 1027488 }
29
- PT_USER_2 = { username: 'trackerapi2', password: 'trackerapi2', token: 'ab4c5895f57995bb7547986eacf91160', project_id: 1027492 }
28
+ PT_USER_1 = { username: 'trackerapi1', password: 'trackerapi1', token: 'd55c3bc1f74346b843ca84ba340b29bf', project_id: 1027488, workspace_id: 375106 }
29
+ PT_USER_2 = { username: 'trackerapi2', password: 'trackerapi2', token: 'ab4c5895f57995bb7547986eacf91160', project_ids: [1027488, 1027492], workspace_id: 581707 }
30
30
  PT_USER_3 = { username: 'trackerapi3', password: 'trackerapi3', token: '77f9b9a466c436e6456939208c84c973', project_id: 1027494 }
31
31
  PT_USERS = [PT_USER_1, PT_USER_2, PT_USER_3]
32
32
 
data/test/story_test.rb CHANGED
@@ -76,8 +76,6 @@ describe TrackerApi::Resources::Story do
76
76
 
77
77
  describe '.owners' do
78
78
  it 'gets all owners for this story with eager loading' do
79
- skip('Until this is resolved: https://pivotaltracker.zendesk.com/requests/35823')
80
-
81
79
  story = VCR.use_cassette('get story with owners', record: :new_episodes) do
82
80
  project.story(story_id, fields: ':default,owners')
83
81
  end
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/my/workspaces?fields=%3Adefault%2Cprojects%28id%2Cname%29","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.7 (x86_64-darwin14.0; ruby) TrackerApi/1.1.1 Faraday/0.9.2"],"X-TrackerToken":["ab4c5895f57995bb7547986eacf91160"]}},"response":{"status":{"code":200,"message":null},"headers":{"Content-Type":["application/json; charset=utf-8"],"Status":["200 OK"],"Cache-Control":["max-age=0, private, must-revalidate"],"Date":["Wed, 25 May 2016 02:27:49 GMT"],"X-Request-Id":["8ea94bdaa44758cd41af559a957129bb"],"X-UA-Compatible":["IE=Edge,chrome=1"],"ETag":["\"a80576b5a281d7a36a8e3aada2cb8c7c\""],"X-Runtime":["0.063218"],"X-Rack-Cache":["miss"],"X-Powered-By":["Phusion Passenger Enterprise"],"Server":["nginx + Phusion Passenger"],"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"],"X-Tracker-Client-Pinger-Interval":["12"]},"body":{"encoding":"UTF-8","string":"[{\"kind\":\"workspace\",\"projects\":[{\"id\":1027488,\"name\":\"My Sample Project\"},{\"id\":1027492,\"name\":\"My Sample Project\"}],\"id\":581707,\"name\":\"Multi-Project Workspace\",\"person_id\":1266316,\"project_ids\":[1027488,1027492]}]"},"http_version":null},"recorded_at":"Wed, 25 May 2016 02:27:49 GMT"}],"recorded_with":"VCR 3.0.2"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004?fields=%3Adefault%2Cowners","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.7 (x86_64-darwin14.0; ruby) TrackerApi/1.1.1 Faraday/0.9.2"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Content-Type":["application/json; charset=utf-8"],"Status":["200 OK"],"Cache-Control":["max-age=0, private, must-revalidate"],"Date":["Wed, 25 May 2016 02:39:30 GMT"],"X-Tracker-Project-Version":["128"],"X-Request-Id":["9ad7de7b05ba5ba68829f040e57bcbe8"],"X-UA-Compatible":["IE=Edge,chrome=1"],"ETag":["\"1fdca41d3806416d2ff9d2521aa430ba\""],"X-Runtime":["0.078259"],"X-Rack-Cache":["miss"],"X-Powered-By":["Phusion Passenger Enterprise"],"Server":["nginx + Phusion Passenger"],"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"],"X-Tracker-Client-Pinger-Interval":["12"]},"body":{"encoding":"UTF-8","string":"{\"kind\":\"story\",\"id\":66728004,\"created_at\":\"2014-02-17T00:00:00Z\",\"updated_at\":\"2016-05-24T22:30:07Z\",\"story_type\":\"bug\",\"name\":\"Some product photos not scaled properly when browsing products++++++++\",\"description\":\"+++++++++\",\"current_state\":\"started\",\"requested_by_id\":1266314,\"url\":\"https://www.pivotaltracker.com/story/show/66728004\",\"project_id\":1027488,\"owner_ids\":[1266314,1266316],\"owners\":[{\"kind\":\"person\",\"id\":1266314,\"name\":\"Tracker API User1\",\"email\":\"forestcarlisle+trackerapi1@gmail.com\",\"initials\":\"TU1\",\"username\":\"trackerapi1\"},{\"kind\":\"person\",\"id\":1266316,\"name\":\"Tracker API User2\",\"email\":\"forestcarlisle+trackerapi2@gmail.com\",\"initials\":\"TU2\",\"username\":\"trackerapi2\"}],\"labels\":[{\"id\":11049868,\"project_id\":1027488,\"kind\":\"label\",\"name\":\"label1\",\"created_at\":\"2015-03-07T12:51:39Z\",\"updated_at\":\"2015-03-07T12:51:39Z\"},{\"id\":11049870,\"project_id\":1027488,\"kind\":\"label\",\"name\":\"label2\",\"created_at\":\"2015-03-07T12:51:39Z\",\"updated_at\":\"2015-03-07T12:51:39Z\"},{\"id\":14060665,\"project_id\":1027488,\"kind\":\"label\",\"name\":\"super-special-label\",\"created_at\":\"2016-02-12T23:45:13Z\",\"updated_at\":\"2016-02-12T23:45:13Z\"}],\"owned_by_id\":1266314}"},"http_version":null},"recorded_at":"Wed, 25 May 2016 02:39:30 GMT"}],"recorded_with":"VCR 3.0.2"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/my/workspaces/375106","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.7 (x86_64-darwin14.0; ruby) TrackerApi/1.1.1 Faraday/0.9.2"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Content-Type":["application/json; charset=utf-8"],"Status":["200 OK"],"Cache-Control":["max-age=0, private, must-revalidate"],"Date":["Wed, 25 May 2016 02:27:50 GMT"],"X-Request-Id":["053ec593d3e5d88b17ad2197fa9300ec"],"X-UA-Compatible":["IE=Edge,chrome=1"],"ETag":["\"f99a89b7ccb408ba3825caea4c88e1b0\""],"X-Runtime":["0.065733"],"X-Rack-Cache":["miss"],"X-Powered-By":["Phusion Passenger Enterprise"],"Server":["nginx + Phusion Passenger"],"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"],"X-Tracker-Client-Pinger-Interval":["12"]},"body":{"encoding":"UTF-8","string":"{\"kind\":\"workspace\",\"id\":375106,\"name\":\"Multi-Project Workspace\",\"person_id\":1266314,\"project_ids\":[1027488]}"},"http_version":null},"recorded_at":"Wed, 25 May 2016 02:27:50 GMT"}],"recorded_with":"VCR 3.0.2"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/my/workspaces/581707?fields=%3Adefault%2Cprojects%28id%2Cname%29","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.7 (x86_64-darwin14.0; ruby) TrackerApi/1.1.1 Faraday/0.9.2"],"X-TrackerToken":["ab4c5895f57995bb7547986eacf91160"]}},"response":{"status":{"code":200,"message":null},"headers":{"Content-Type":["application/json; charset=utf-8"],"Status":["200 OK"],"Cache-Control":["max-age=0, private, must-revalidate"],"Date":["Wed, 25 May 2016 02:27:49 GMT"],"X-Request-Id":["1010962fe376409c1e8e83de9b3c05be"],"X-UA-Compatible":["IE=Edge,chrome=1"],"ETag":["\"58110b19fda6dfb316c0b93fff8aab95\""],"X-Runtime":["0.052909"],"X-Rack-Cache":["miss"],"X-Powered-By":["Phusion Passenger Enterprise"],"Server":["nginx + Phusion Passenger"],"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"],"X-Tracker-Client-Pinger-Interval":["12"]},"body":{"encoding":"UTF-8","string":"{\"kind\":\"workspace\",\"projects\":[{\"id\":1027488,\"name\":\"My Sample Project\"},{\"id\":1027492,\"name\":\"My Sample Project\"}],\"id\":581707,\"name\":\"Multi-Project Workspace\",\"person_id\":1266316,\"project_ids\":[1027488,1027492]}"},"http_version":null},"recorded_at":"Wed, 25 May 2016 02:27:48 GMT"}],"recorded_with":"VCR 3.0.2"}
@@ -0,0 +1,26 @@
1
+ require_relative 'minitest_helper'
2
+
3
+ describe TrackerApi::Resources::Workspace do
4
+ let(:pt_user) { PT_USER_2 }
5
+ let(:client) { TrackerApi::Client.new token: pt_user[:token] }
6
+ let(:workspace_id) { pt_user[:workspace_id] }
7
+ let(:workspace) { VCR.use_cassette('get workspace') { client.workspace(workspace_id) } }
8
+
9
+ describe '.projects' do
10
+ it 'gets all projects for this workspace' do
11
+ VCR.use_cassette('get workspace projects', record: :new_episodes) do
12
+ workspace = client.workspace(pt_user[:workspace_id], fields: ':default,projects(id,name)')
13
+ projects = workspace.projects
14
+
15
+ projects.wont_be_empty
16
+
17
+ projects.size.must_equal 2
18
+ projects.first.must_be_instance_of TrackerApi::Resources::Project
19
+
20
+ pt_user[:project_ids].must_include projects.first.id
21
+ pt_user[:project_ids].must_include projects.last.id
22
+ end
23
+ end
24
+
25
+ end
26
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tracker_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Forest Carlisle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-04 00:00:00.000000000 Z
11
+ date: 2016-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -239,6 +239,8 @@ files:
239
239
  - lib/tracker_api/endpoints/story_owners.rb
240
240
  - lib/tracker_api/endpoints/task.rb
241
241
  - lib/tracker_api/endpoints/tasks.rb
242
+ - lib/tracker_api/endpoints/workspace.rb
243
+ - lib/tracker_api/endpoints/workspaces.rb
242
244
  - lib/tracker_api/error.rb
243
245
  - lib/tracker_api/logger.rb
244
246
  - lib/tracker_api/resources/account.rb
@@ -259,6 +261,7 @@ files:
259
261
  - lib/tracker_api/resources/story.rb
260
262
  - lib/tracker_api/resources/task.rb
261
263
  - lib/tracker_api/resources/time_zone.rb
264
+ - lib/tracker_api/resources/workspace.rb
262
265
  - lib/tracker_api/version.rb
263
266
  - lib/virtus/attribute/nullify_blank.rb
264
267
  - lib/virtus/dirty_attribute.rb
@@ -278,6 +281,7 @@ files:
278
281
  - test/vcr/cassettes/create_task.json
279
282
  - test/vcr/cassettes/get_all_notifications.json
280
283
  - test/vcr/cassettes/get_all_projects.json
284
+ - test/vcr/cassettes/get_all_workspaces.json
281
285
  - test/vcr/cassettes/get_another_story.json
282
286
  - test/vcr/cassettes/get_current_iteration.json
283
287
  - test/vcr/cassettes/get_done_iterations.json
@@ -295,17 +299,21 @@ files:
295
299
  - test/vcr/cassettes/get_story_activity.json
296
300
  - test/vcr/cassettes/get_story_comments.json
297
301
  - test/vcr/cassettes/get_story_owners.json
302
+ - test/vcr/cassettes/get_story_with_owners.json
298
303
  - test/vcr/cassettes/get_story_with_tasks.json
299
304
  - test/vcr/cassettes/get_tasks.json
300
305
  - test/vcr/cassettes/get_tasks_for_story.json
301
306
  - test/vcr/cassettes/get_tasks_when_stories_filtered.json
302
307
  - test/vcr/cassettes/get_unscheduled_stories.json
303
308
  - test/vcr/cassettes/get_unscheduled_story.json
309
+ - test/vcr/cassettes/get_workspace.json
310
+ - test/vcr/cassettes/get_workspace_projects.json
304
311
  - test/vcr/cassettes/save_story.json
305
312
  - test/vcr/cassettes/save_story_with_multiple_changes.json
306
313
  - test/vcr/cassettes/save_story_with_new_label.json
307
314
  - test/vcr/cassettes/save_task.json
308
315
  - test/vcr/cassettes/update_story_to_create_activity.json
316
+ - test/workspace_test.rb
309
317
  - tracker_api.gemspec
310
318
  homepage: https://github.com/dashofcode/tracker_api
311
319
  licenses:
@@ -347,6 +355,7 @@ test_files:
347
355
  - test/vcr/cassettes/create_task.json
348
356
  - test/vcr/cassettes/get_all_notifications.json
349
357
  - test/vcr/cassettes/get_all_projects.json
358
+ - test/vcr/cassettes/get_all_workspaces.json
350
359
  - test/vcr/cassettes/get_another_story.json
351
360
  - test/vcr/cassettes/get_current_iteration.json
352
361
  - test/vcr/cassettes/get_done_iterations.json
@@ -364,14 +373,18 @@ test_files:
364
373
  - test/vcr/cassettes/get_story_activity.json
365
374
  - test/vcr/cassettes/get_story_comments.json
366
375
  - test/vcr/cassettes/get_story_owners.json
376
+ - test/vcr/cassettes/get_story_with_owners.json
367
377
  - test/vcr/cassettes/get_story_with_tasks.json
368
378
  - test/vcr/cassettes/get_tasks.json
369
379
  - test/vcr/cassettes/get_tasks_for_story.json
370
380
  - test/vcr/cassettes/get_tasks_when_stories_filtered.json
371
381
  - test/vcr/cassettes/get_unscheduled_stories.json
372
382
  - test/vcr/cassettes/get_unscheduled_story.json
383
+ - test/vcr/cassettes/get_workspace.json
384
+ - test/vcr/cassettes/get_workspace_projects.json
373
385
  - test/vcr/cassettes/save_story.json
374
386
  - test/vcr/cassettes/save_story_with_multiple_changes.json
375
387
  - test/vcr/cassettes/save_story_with_new_label.json
376
388
  - test/vcr/cassettes/save_task.json
377
389
  - test/vcr/cassettes/update_story_to_create_activity.json
390
+ - test/workspace_test.rb