tracker_api 1.7.1 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -0
- data/lib/tracker_api.rb +8 -0
- data/lib/tracker_api/client.rb +10 -31
- data/lib/tracker_api/endpoints/attachment.rb +38 -0
- data/lib/tracker_api/endpoints/attachments.rb +22 -0
- data/lib/tracker_api/endpoints/comment.rb +9 -2
- data/lib/tracker_api/file_utility.rb +16 -0
- data/lib/tracker_api/resources/activity.rb +1 -1
- data/lib/tracker_api/resources/comment.rb +35 -0
- data/lib/tracker_api/resources/epic.rb +9 -0
- data/lib/tracker_api/resources/file_attachment.rb +37 -0
- data/lib/tracker_api/resources/story.rb +23 -6
- data/lib/tracker_api/version.rb +1 -1
- data/lib/virtus/attribute/nullify_blank.rb +1 -1
- data/test/comment_test.rb +42 -0
- data/test/error_test.rb +41 -0
- data/test/file_attachment_test.rb +19 -0
- data/test/story_test.rb +0 -4
- data/test/vcr/cassettes/create_attachments.json +1 -0
- data/test/vcr/cassettes/create_comment.json +1 -1
- data/test/vcr/cassettes/create_comment_with_attachment.json +1 -0
- data/test/vcr/cassettes/create_story_comment.json +1 -1
- data/test/vcr/cassettes/delete_an_attachment.json +1 -0
- data/test/vcr/cassettes/delete_attachments.json +1 -0
- data/test/vcr/cassettes/delete_comment.json +1 -0
- data/test/vcr/cassettes/delete_comments.json +1 -0
- data/test/vcr/cassettes/get_story_in_epic.json +1 -1
- data/tracker_api.gemspec +2 -1
- metadata +40 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b93cdb4a9ba207f6a81cdf67cebfddcdf2f3e99b
|
4
|
+
data.tar.gz: de0f6b60cd0b86cf669fa499efae9acdacd472e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 992fbbca70adb9c0b3ff361eefae0b18d672e74c733d874d8fab8938b336266a8005c8d4c9579a00dfd0ec8d27ef54169174cd2be1c420cf9aa0f3cf9fe0ef0b
|
7
|
+
data.tar.gz: d265ae95db9afb5e32d795e2beee4bfad199abb37840d00d8661909fefcef6129cd73f1a540275cc8bd9dee1413278da8526b47652c1984d2b4255c64bd89916
|
data/README.md
CHANGED
@@ -68,9 +68,20 @@ comments = story.comments # co
|
|
68
68
|
|
69
69
|
comment = story.create_comment(text: "Use the force!") # Create a new comment on the story
|
70
70
|
|
71
|
+
comment = story.create_comment(text: "Use the force again !", # Create a new comment on the story with
|
72
|
+
files: ['path/to/an/existing/file']) # file attachments
|
73
|
+
|
71
74
|
comment.text += " (please be careful)"
|
72
75
|
comment.save # Update text of an existing comment
|
76
|
+
comment.delete # Delete an existing comment
|
77
|
+
|
78
|
+
comment.create_attachments(files: ['path/to/an/existing/file']) # Add attachments to existing comment
|
79
|
+
comment.delete_attachments # Delete all attachments from a comment
|
73
80
|
|
81
|
+
attachments = comment.attachments # Get attachments associated with a comment
|
82
|
+
attachments.first.delete # Delete a specific attachment
|
83
|
+
|
84
|
+
comment.attachments(reload: true) # Re-load the attachments after modification
|
74
85
|
task = story.tasks.first # Get story tasks
|
75
86
|
task.complete = true
|
76
87
|
task.save # Mark a task complete
|
@@ -95,6 +106,10 @@ client.project(project_id).stories(fields: ':default,tasks') # Eage
|
|
95
106
|
story.comments(fields: ':default,person') # Eagerly get comments and the person that made the comment for a story
|
96
107
|
```
|
97
108
|
|
109
|
+
## Error Handling
|
110
|
+
`TrackerApi::Errors::ClientError` is raised for 4xx HTTP status codes
|
111
|
+
`TrackerApi::Errors::ServerError` is raised for 5xx HTTP status codes
|
112
|
+
|
98
113
|
## Warning
|
99
114
|
|
100
115
|
Direct mutation of an attribute value skips coercion and dirty tracking. Please use direct assignment or the specialized add_* methods to get expected behavior.
|
@@ -118,6 +133,7 @@ story.save
|
|
118
133
|
|
119
134
|
- Add missing resources and endpoints
|
120
135
|
- Add create, update, delete for resources
|
136
|
+
- Error handling for [error responses](https://www.pivotaltracker.com/help/api#Error_Responses)
|
121
137
|
|
122
138
|
## Semantic Versioning
|
123
139
|
http://semver.org/
|
data/lib/tracker_api.rb
CHANGED
@@ -3,6 +3,8 @@ require 'tracker_api/version'
|
|
3
3
|
# dependencies
|
4
4
|
require 'faraday'
|
5
5
|
require 'faraday_middleware'
|
6
|
+
require 'pathname'
|
7
|
+
require 'mimemagic'
|
6
8
|
|
7
9
|
if defined?(ActiveSupport)
|
8
10
|
require 'active_support/core_ext/object/blank'
|
@@ -26,9 +28,12 @@ module TrackerApi
|
|
26
28
|
autoload :Error, 'tracker_api/error'
|
27
29
|
autoload :Client, 'tracker_api/client'
|
28
30
|
autoload :Logger, 'tracker_api/logger'
|
31
|
+
autoload :FileUtility, 'tracker_api/file_utility'
|
29
32
|
|
30
33
|
module Errors
|
31
34
|
class UnexpectedData < StandardError; end
|
35
|
+
class ClientError < Error; end
|
36
|
+
class ServerError < Error; end
|
32
37
|
end
|
33
38
|
|
34
39
|
module Endpoints
|
@@ -55,6 +60,8 @@ module TrackerApi
|
|
55
60
|
autoload :Webhook, 'tracker_api/endpoints/webhook'
|
56
61
|
autoload :Webhooks, 'tracker_api/endpoints/webhooks'
|
57
62
|
autoload :StoryTransitions, 'tracker_api/endpoints/story_transitions'
|
63
|
+
autoload :Attachment, 'tracker_api/endpoints/attachment'
|
64
|
+
autoload :Attachments, 'tracker_api/endpoints/attachments'
|
58
65
|
end
|
59
66
|
|
60
67
|
module Resources
|
@@ -85,5 +92,6 @@ module TrackerApi
|
|
85
92
|
autoload :Comment, 'tracker_api/resources/comment'
|
86
93
|
autoload :Webhook, 'tracker_api/resources/webhook'
|
87
94
|
autoload :StoryTransition, 'tracker_api/resources/story_transition'
|
95
|
+
autoload :FileAttachment, 'tracker_api/resources/file_attachment'
|
88
96
|
end
|
89
97
|
end
|
data/lib/tracker_api/client.rb
CHANGED
@@ -48,40 +48,15 @@ module TrackerApi
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
#
|
51
|
+
# HTTP requests methods
|
52
52
|
#
|
53
53
|
# @param path [String] The path, relative to api endpoint
|
54
54
|
# @param options [Hash] Query and header params for request
|
55
55
|
# @return [Faraday::Response]
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
# Make a HTTP POST request
|
61
|
-
#
|
62
|
-
# @param path [String] The path, relative to api endpoint
|
63
|
-
# @param options [Hash] Query and header params for request
|
64
|
-
# @return [Faraday::Response]
|
65
|
-
def post(path, options = {})
|
66
|
-
request(:post, parse_query_and_convenience_headers(path, options))
|
67
|
-
end
|
68
|
-
|
69
|
-
# Make a HTTP PUT request
|
70
|
-
#
|
71
|
-
# @param path [String] The path, relative to api endpoint
|
72
|
-
# @param options [Hash] Query and header params for request
|
73
|
-
# @return [Faraday::Response]
|
74
|
-
def put(path, options = {})
|
75
|
-
request(:put, parse_query_and_convenience_headers(path, options))
|
76
|
-
end
|
77
|
-
|
78
|
-
# Make a HTTP DELETE request
|
79
|
-
#
|
80
|
-
# @param path [String] The path, relative to api endpoint
|
81
|
-
# @param options [Hash] Query and header params for request
|
82
|
-
# @return [Faraday::Response]
|
83
|
-
def delete(path, options = {})
|
84
|
-
request(:delete, parse_query_and_convenience_headers(path, options))
|
56
|
+
%i{get post patch put delete}.each do |verb|
|
57
|
+
define_method verb do |path, options = {}|
|
58
|
+
request(verb, parse_query_and_convenience_headers(path, options))
|
59
|
+
end
|
85
60
|
end
|
86
61
|
|
87
62
|
# Make one or more HTTP GET requests, optionally fetching
|
@@ -248,7 +223,11 @@ module TrackerApi
|
|
248
223
|
end
|
249
224
|
response
|
250
225
|
rescue Faraday::Error::ClientError => e
|
251
|
-
|
226
|
+
case e.response[:status]
|
227
|
+
when 400..499 then raise TrackerApi::Errors::ClientError.new(e)
|
228
|
+
when 500..599 then raise TrackerApi::Errors::ServerError.new(e)
|
229
|
+
else raise "Expected 4xx or 5xx HTTP status code"
|
230
|
+
end
|
252
231
|
end
|
253
232
|
|
254
233
|
class Pagination
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
module Endpoints
|
3
|
+
class Attachment
|
4
|
+
attr_accessor :client
|
5
|
+
|
6
|
+
def initialize(client)
|
7
|
+
@client = client
|
8
|
+
end
|
9
|
+
|
10
|
+
def create(comment, file)
|
11
|
+
data = client.post("/projects/#{comment.project_id}/uploads", body: FileUtility.get_file_upload(file)).body
|
12
|
+
Resources::FileAttachment.new({ comment: comment }.merge(data))
|
13
|
+
end
|
14
|
+
|
15
|
+
# TODO : Discuss before implementing this as it orphans the file.
|
16
|
+
# It deletes source, but the file name appears in the comments
|
17
|
+
# def delete(comment, file_attachment_id)
|
18
|
+
# client.delete("/projects/#{comment.project_id}/stories/#{comment.story_id}/comments/#{comment.id}/file_attachments/#{file_attachment_id}").body
|
19
|
+
# end
|
20
|
+
|
21
|
+
def get(comment)
|
22
|
+
data = client.get("/projects/#{comment.project_id}/stories/#{comment.story_id}/comments/#{comment.id}?fields=file_attachments").body["file_attachments"]
|
23
|
+
raise Errors::UnexpectedData, 'Array of file attachments expected' unless data.is_a? Array
|
24
|
+
|
25
|
+
data.map do |file_attachment|
|
26
|
+
Resources::FileAttachment.new({ comment: comment }.merge(file_attachment))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# TODO : Implement this properly.
|
31
|
+
# This results in either content of the file or an S3 link.
|
32
|
+
# the S3 link is also present in big_url attribute.
|
33
|
+
# def download(download_path)
|
34
|
+
# client.get(download_path, url: '').body
|
35
|
+
# end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
module Endpoints
|
3
|
+
class Attachments
|
4
|
+
attr_accessor :client
|
5
|
+
|
6
|
+
def initialize(client)
|
7
|
+
@client = client
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
def create(comment, files)
|
12
|
+
return [] if files.to_a.empty?
|
13
|
+
#Check files before upload to make it all or none.
|
14
|
+
FileUtility.check_files_exist(files)
|
15
|
+
attachment = Endpoints::Attachment.new(client)
|
16
|
+
files.map do | file |
|
17
|
+
attachment.create(comment, file)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -15,13 +15,20 @@ module TrackerApi
|
|
15
15
|
def update(comment, params={})
|
16
16
|
raise ArgumentError, 'Valid comment required to update.' unless comment.instance_of?(Resources::Comment)
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
path = "/projects/#{comment.project_id}/stories/#{comment.story_id}/comments/#{comment.id}"
|
19
|
+
path += "?fields=:default,file_attachments" if params.represented.file_attachment_ids_to_add.present? || params.represented.file_attachment_ids_to_remove.present?
|
20
|
+
data = client.put(path, params: params).body
|
20
21
|
|
21
22
|
comment.attributes = data
|
22
23
|
comment.clean!
|
23
24
|
comment
|
24
25
|
end
|
26
|
+
|
27
|
+
def delete(comment)
|
28
|
+
raise ArgumentError, 'Valid comment required to update.' unless comment.instance_of?(Resources::Comment)
|
29
|
+
|
30
|
+
client.delete("/projects/#{comment.project_id}/stories/#{comment.story_id}/comments/#{comment.id}").body
|
31
|
+
end
|
25
32
|
end
|
26
33
|
end
|
27
34
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
class FileUtility
|
3
|
+
class << self
|
4
|
+
def get_file_upload(file)
|
5
|
+
mime_type = MimeMagic.by_path(file)
|
6
|
+
{ :file => Faraday::UploadIO.new(file, mime_type) }
|
7
|
+
end
|
8
|
+
|
9
|
+
def check_files_exist(files)
|
10
|
+
files.each do | file |
|
11
|
+
raise ArgumentError, 'Attachment file not found.' unless Pathname.new(file).exist?
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -14,7 +14,10 @@ module TrackerApi
|
|
14
14
|
attribute :created_at, DateTime
|
15
15
|
attribute :updated_at, DateTime
|
16
16
|
attribute :file_attachment_ids, [Integer]
|
17
|
+
attribute :file_attachments, [FileAttachment]
|
17
18
|
attribute :google_attachment_ids, [Integer]
|
19
|
+
attribute :file_attachment_ids_to_add, [Integer]
|
20
|
+
attribute :file_attachment_ids_to_remove, [Integer]
|
18
21
|
attribute :commit_identifier, String
|
19
22
|
attribute :commit_type, String
|
20
23
|
attribute :kind, String
|
@@ -24,6 +27,8 @@ module TrackerApi
|
|
24
27
|
|
25
28
|
property :id
|
26
29
|
property :text
|
30
|
+
collection :file_attachment_ids_to_add
|
31
|
+
collection :file_attachment_ids_to_remove
|
27
32
|
end
|
28
33
|
|
29
34
|
def save
|
@@ -31,6 +36,36 @@ module TrackerApi
|
|
31
36
|
|
32
37
|
Endpoints::Comment.new(client).update(self, UpdateRepresenter.new(Comment.new(self.dirty_attributes)))
|
33
38
|
end
|
39
|
+
|
40
|
+
def delete
|
41
|
+
raise ArgumentError, 'Cannot delete a comment with an unknown story_id.' if story_id.nil?
|
42
|
+
|
43
|
+
Endpoints::Comment.new(client).delete(self)
|
44
|
+
end
|
45
|
+
|
46
|
+
# @param [Hash] params attributes to create the comment with
|
47
|
+
# @return [Comment] newly created Comment
|
48
|
+
def create_attachments(params)
|
49
|
+
self.file_attachment_ids_to_add = Endpoints::Attachments.new(client).create(self, params[:files]).collect(&:id)
|
50
|
+
save
|
51
|
+
end
|
52
|
+
|
53
|
+
def delete_attachments(attachment_ids = nil)
|
54
|
+
self.file_attachment_ids_to_remove = attachment_ids || attachments.collect(&:id)
|
55
|
+
save
|
56
|
+
end
|
57
|
+
|
58
|
+
# Provides a list of all the attachments on the comment.
|
59
|
+
#
|
60
|
+
# @reload Boolean to reload the attachments
|
61
|
+
# @return [Array[FileAttachments]]
|
62
|
+
def attachments(reload: false)
|
63
|
+
if !reload && @file_attachments.present?
|
64
|
+
@file_attachments
|
65
|
+
else
|
66
|
+
@file_attachments = Endpoints::Attachment.new(client).get(self)
|
67
|
+
end
|
68
|
+
end
|
34
69
|
end
|
35
70
|
end
|
36
71
|
end
|
@@ -34,6 +34,15 @@ module TrackerApi
|
|
34
34
|
|
35
35
|
Endpoints::Epic.new(client).update(self, UpdateRepresenter.new(self))
|
36
36
|
end
|
37
|
+
|
38
|
+
# @param [Hash] params attributes to create the comment with
|
39
|
+
# @return [Comment] newly created Comment
|
40
|
+
def create_comment(params)
|
41
|
+
files = params.delete(:files)
|
42
|
+
comment = Endpoints::Comment.new(client).create(project_id, id, params)
|
43
|
+
comment.create_attachments(files: files) if files.present?
|
44
|
+
comment
|
45
|
+
end
|
37
46
|
end
|
38
47
|
end
|
39
48
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module TrackerApi
|
2
|
+
module Resources
|
3
|
+
class FileAttachment
|
4
|
+
include Shared::Base
|
5
|
+
|
6
|
+
attribute :comment, Comment
|
7
|
+
|
8
|
+
attribute :id, Integer
|
9
|
+
attribute :big_url, String
|
10
|
+
attribute :content_type, String
|
11
|
+
attribute :created_at, DateTime
|
12
|
+
attribute :download_url, String
|
13
|
+
attribute :filename, String
|
14
|
+
attribute :height, Integer
|
15
|
+
attribute :kind, String
|
16
|
+
attribute :size, Integer
|
17
|
+
attribute :thumbnail_url, String
|
18
|
+
attribute :thumbnailable, Boolean
|
19
|
+
attribute :uploaded, Boolean
|
20
|
+
attribute :uploader_id, Integer
|
21
|
+
attribute :width, Integer
|
22
|
+
|
23
|
+
def delete
|
24
|
+
comment.delete_attachments([id])
|
25
|
+
end
|
26
|
+
|
27
|
+
# TODO : Implement download properly.
|
28
|
+
# Look at Attchment#download for more details
|
29
|
+
# The big_url actually has the AWS S3 link for the file
|
30
|
+
# def download
|
31
|
+
# file_data = Endpoints::Attachment.new(comment.client).download(download_url)
|
32
|
+
# File.open(filename, 'wb') { |fp| fp.write(file_data) }
|
33
|
+
# end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
@@ -21,7 +21,7 @@ module TrackerApi
|
|
21
21
|
attribute :integration_id, Integer
|
22
22
|
attribute :kind, String
|
23
23
|
attribute :label_ids, [Integer]
|
24
|
-
attribute :labels, [Label]
|
24
|
+
attribute :labels, [Label]
|
25
25
|
attribute :name, String
|
26
26
|
attribute :owned_by_id, Integer # deprecated!
|
27
27
|
attribute :owned_by, Person
|
@@ -54,7 +54,20 @@ module TrackerApi
|
|
54
54
|
property :deadline
|
55
55
|
property :requested_by_id
|
56
56
|
property :owner_ids, if: ->(_) { !owner_ids.blank? }
|
57
|
-
|
57
|
+
|
58
|
+
# Use render_empty: false to address: https://github.com/dashofcode/tracker_api/issues/110
|
59
|
+
# - The default value of the labels attribute in Resources::Story is an empty array.
|
60
|
+
# - If the value of labels is not change (i.e. not dirty) then when a new Story
|
61
|
+
# is created from the dirty attributes in the save method the labels attributes becomes
|
62
|
+
# an empty array again. render_empty: false keeps this from rendering in the json passed
|
63
|
+
# in the API PUT request. It is is empty then the labels will be cleared.
|
64
|
+
# - The next issue is that there is no way to delete all the labels from a Story with
|
65
|
+
# the current implementation.
|
66
|
+
#
|
67
|
+
# NOTE: There are two solutions: 1) remove dirty tracking 2) rewrite without virtus
|
68
|
+
# SEE: https://github.com/dashofcode/tracker_api/pull/98
|
69
|
+
collection :labels, class: Label, decorator: Label::UpdateRepresenter, render_empty: false
|
70
|
+
|
58
71
|
property :integration_id
|
59
72
|
property :external_id
|
60
73
|
end
|
@@ -108,11 +121,11 @@ module TrackerApi
|
|
108
121
|
#
|
109
122
|
# @param [Hash] params
|
110
123
|
# @return [Array[Comment]]
|
111
|
-
def comments(
|
112
|
-
if
|
124
|
+
def comments(reload: false)
|
125
|
+
if !reload && @comments.present?
|
113
126
|
@comments
|
114
127
|
else
|
115
|
-
@comments = Endpoints::Comments.new(client).get(project_id, id
|
128
|
+
@comments = Endpoints::Comments.new(client).get(project_id, id)
|
116
129
|
end
|
117
130
|
end
|
118
131
|
|
@@ -161,12 +174,16 @@ module TrackerApi
|
|
161
174
|
# @param [Hash] params attributes to create the comment with
|
162
175
|
# @return [Comment] newly created Comment
|
163
176
|
def create_comment(params)
|
164
|
-
|
177
|
+
files = params.delete(:files)
|
178
|
+
comment = Endpoints::Comment.new(client).create(project_id, id, params)
|
179
|
+
comment.create_attachments(files: files) if files.present?
|
180
|
+
comment
|
165
181
|
end
|
166
182
|
|
167
183
|
# Save changes to an existing Story.
|
168
184
|
def save
|
169
185
|
raise ArgumentError, 'Can not update a story with an unknown project_id.' if project_id.nil?
|
186
|
+
return self unless dirty?
|
170
187
|
|
171
188
|
Endpoints::Story.new(client).update(self, UpdateRepresenter.new(Story.new(self.dirty_attributes)))
|
172
189
|
end
|
data/lib/tracker_api/version.rb
CHANGED
data/test/comment_test.rb
CHANGED
@@ -21,6 +21,18 @@ describe TrackerApi::Resources::Comment do
|
|
21
21
|
comment.clean?.must_equal true
|
22
22
|
end
|
23
23
|
|
24
|
+
it 'can create a comment with file attachment' do
|
25
|
+
text = "Test creating a comment"
|
26
|
+
comment = nil
|
27
|
+
files = [File.expand_path('../Gemfile', File.dirname(__FILE__))]
|
28
|
+
VCR.use_cassette('create comment with attachment', record: :new_episodes) do
|
29
|
+
comment = story.create_comment(text: text, files: files)
|
30
|
+
end
|
31
|
+
comment.text.must_equal text
|
32
|
+
comment.attachments.size.must_equal 1
|
33
|
+
comment.clean?.must_equal true
|
34
|
+
end
|
35
|
+
|
24
36
|
it 'can update an existing comment' do
|
25
37
|
new_text = "#{existing_comment.text}+"
|
26
38
|
existing_comment.text = new_text
|
@@ -32,4 +44,34 @@ describe TrackerApi::Resources::Comment do
|
|
32
44
|
existing_comment.text.must_equal new_text
|
33
45
|
existing_comment.clean?.must_equal true
|
34
46
|
end
|
47
|
+
|
48
|
+
it 'can create attachments in a comment' do
|
49
|
+
files = [File.expand_path('../Gemfile', File.dirname(__FILE__))]
|
50
|
+
VCR.use_cassette('create attachments', record: :new_episodes) do
|
51
|
+
existing_comment.create_attachments(files: files)
|
52
|
+
existing_comment.attachments.size.must_equal 1
|
53
|
+
existing_comment.clean?.must_equal true
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'can delete attachments in a comment' do
|
58
|
+
files = [File.expand_path('../Gemfile', File.dirname(__FILE__))]
|
59
|
+
VCR.use_cassette('delete attachments', record: :new_episodes) do
|
60
|
+
existing_comment.create_attachments(files: files)
|
61
|
+
existing_comment.attachments.size.must_equal 1
|
62
|
+
existing_comment.delete_attachments
|
63
|
+
existing_comment.attachments.size.must_equal 0
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'can delete a comment' do
|
68
|
+
VCR.use_cassette('delete comment', record: :new_episodes) do
|
69
|
+
current_story = project.story(story_id)
|
70
|
+
new_comment_id = current_story.create_comment(text: "test comment").id
|
71
|
+
current_story.comments.last.id.must_equal new_comment_id
|
72
|
+
current_story.comments.last.delete
|
73
|
+
current_story = project.story(story_id)
|
74
|
+
current_story.comments.last.id.wont_equal new_comment_id
|
75
|
+
end
|
76
|
+
end
|
35
77
|
end
|
data/test/error_test.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require_relative 'minitest_helper'
|
2
|
+
|
3
|
+
describe TrackerApi::Error do
|
4
|
+
let(:pt_user) { PT_USER_1 }
|
5
|
+
let(:client) { TrackerApi::Client.new token: pt_user[:token] }
|
6
|
+
let(:options) { { url: nil, headers: nil } }
|
7
|
+
|
8
|
+
it 'raises ClientError for 4xx HTTP status codes' do
|
9
|
+
(400..499).each do |status_code|
|
10
|
+
mock_faraday_error(status_code)
|
11
|
+
assert_raises TrackerApi::Errors::ClientError do
|
12
|
+
client.send(:request, :get, options)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'raises ServerError for 5xx HTTP status codes' do
|
18
|
+
(500..599).each do |status_code|
|
19
|
+
mock_faraday_error(status_code)
|
20
|
+
assert_raises TrackerApi::Errors::ServerError do
|
21
|
+
client.send(:request, :get, options)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'raises RuntimeError for HTTP status codes < 400 and > 500' do
|
27
|
+
[399, 600].each do |status_code|
|
28
|
+
mock_faraday_error(status_code)
|
29
|
+
assert_raises RuntimeError, "Expected 4xx or 5xx HTTP status code" do
|
30
|
+
client.send(:request, :get, options)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Simulate the error Faraday will raise with a specific HTTP status code so
|
36
|
+
# we can test our rescuing of those errors
|
37
|
+
def mock_faraday_error(status_code)
|
38
|
+
::Faraday::Connection.any_instance.stubs(:get).
|
39
|
+
raises(::Faraday::Error::ClientError.new(nil, { status: status_code}))
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative 'minitest_helper'
|
2
|
+
|
3
|
+
describe TrackerApi::Resources::FileAttachment 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
|
+
let(:story_id) { '66728004' }
|
9
|
+
let(:story) { VCR.use_cassette('get story') { project.story(story_id) } }
|
10
|
+
|
11
|
+
it 'can be deleted' do
|
12
|
+
VCR.use_cassette('delete an attachment', record: :new_episodes) do
|
13
|
+
comment_with_attachments = story.create_comment(text: "test comment", files: [File.expand_path('../Gemfile', File.dirname(__FILE__))])
|
14
|
+
comment_with_attachments.attachments(reload: true).size.must_equal 1
|
15
|
+
comment_with_attachments.attachments.first.delete
|
16
|
+
comment_with_attachments.attachments(reload: true).size.must_equal 1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/test/story_test.rb
CHANGED
@@ -79,10 +79,6 @@ describe TrackerApi::Resources::Story do
|
|
79
79
|
original_labels = story_in_epic.labels
|
80
80
|
original_label_list = story_in_epic.label_list
|
81
81
|
|
82
|
-
VCR.use_cassette('create story comment', record: :new_episodes) do
|
83
|
-
story_in_epic.create_comment text: "This is a test comment."
|
84
|
-
end
|
85
|
-
|
86
82
|
story_in_epic.estimate = 2
|
87
83
|
story_in_epic.current_state = 'started'
|
88
84
|
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/uploads","body":{"encoding":"UTF-8","string":"-------------RubyMultipartPost-f92971c29179f1c8600d3c801d111643\r\nContent-Disposition: form-data; name=\"file\"; filename=\"Gemfile\"\r\nContent-Length: 144\r\nContent-Type: \r\nContent-Transfer-Encoding: binary\r\n\r\nsource 'https://rubygems.org'\n\n# Specify your gem's dependencies in tracker_api.gemspec\ngemspec\n\ngem 'coveralls', group: :test, require: false\n\n\r\n-------------RubyMultipartPost-f92971c29179f1c8600d3c801d111643--\r\n\r\n"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["multipart/form-data; boundary=-----------RubyMultipartPost-f92971c29179f1c8600d3c801d111643"],"Content-Length":["419"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["text/html; charset=utf-8"],"Date":["Mon, 12 Jun 2017 00:38:00 GMT"],"Etag":["\"a8b9a877d3f14ac48a476eaeb4f35435\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["c1138d0db7a079badade2f17f867e4a3"],"X-Runtime":["0.759489"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["249"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["bb5923e0-4375-4f87-4840-7a190c15dddf"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["256"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"file_attachment\",\"id\":80978531,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T00:38:00Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80978531/download\",\"uploaded\":false,\"big_url\":\"#\",\"thumbnail_url\":\"#\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 00:38:02 GMT"},{"request":{"method":"put","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/120836920?fields=%3Adefault%2Cfile_attachments","body":{"encoding":"UTF-8","string":"{\"text\":\"This is a comment.+++\",\"file_attachment_ids_to_add\":[80978531]}"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 00:38:03 GMT"],"Etag":["\"548b5ab503974ac018634913e32d2470\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["bffffc79c6383a4707f91c4ce99dc29a"],"X-Runtime":["0.770136"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["251"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["97a2d369-aee0-4ef4-4b77-1bac61e9d31c"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["176"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"id\":120836920,\"story_id\":66728004,\"text\":\"This is a comment.+++\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:13:55Z\",\"updated_at\":\"2017-06-12T00:38:03Z\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 00:38:03 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/120836920?fields=file_attachments","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 00:39:15 GMT"],"Etag":["\"67297da329b710a401c06c8a8041af2b\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["e4ac99a72e254147411303f276501bbd"],"X-Runtime":["0.087594"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["251"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["1fbcc6ba-e694-4df3-7bf2-ebf775a817d1"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["1047"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"file_attachments\":[{\"kind\":\"file_attachment\",\"id\":80978531,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T00:38:00Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80978531/download\",\"uploaded\":true,\"big_url\":\"https://s3.amazonaws.com/prod.tracker2/resource/80978531/Gemfile_big?response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJEX3ET63U5T77TYA%2F20170612%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170612T003915Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e7ec11a96a7993cc00e05d157e401535e9e3bed337a89030e4d521d37aba1a4c\",\"thumbnail_url\":\"https://s3.amazonaws.com/prod.tracker2/resource/80978531/Gemfile_thumb?response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJEX3ET63U5T77TYA%2F20170612%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170612T003915Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8aaa3de2adab6ff6334e9cb5dab80d5fedb053505cb6ed6a4f3834861283b106\"}],\"id\":120836920}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 00:39:15 GMT"}],"recorded_with":"VCR 3.0.3"}
|
@@ -1 +1 @@
|
|
1
|
-
{"http_interactions":[{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"UTF-8","string":"{\"text\":\"Test creating a comment\"}"},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.0 Faraday/0.9.2"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Wed, 03 May 2017 23:29:39 GMT"],"Etag":["\"da92c553a8b55689359d240720a6f827\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["6d3b5cb0981a0bc97a2d9f0961324dcc"],"X-Runtime":["0.205489"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["232"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["dadd7537-fe99-477d-653f-1951652b588e"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["178"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"id\":170363243,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:29:39Z\",\"updated_at\":\"2017-05-03T23:29:39Z\"}"},"http_version":null},"recorded_at":"Wed, 03 May 2017 23:29:39 GMT"}],"recorded_with":"VCR
|
1
|
+
{"http_interactions":[{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"UTF-8","string":"{\"text\":\"Test creating a comment\"}"},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.0 Faraday/0.9.2"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Wed, 03 May 2017 23:29:39 GMT"],"Etag":["\"da92c553a8b55689359d240720a6f827\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["6d3b5cb0981a0bc97a2d9f0961324dcc"],"X-Runtime":["0.205489"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["232"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["dadd7537-fe99-477d-653f-1951652b588e"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["178"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"id\":170363243,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:29:39Z\",\"updated_at\":\"2017-05-03T23:29:39Z\"}"},"http_version":null},"recorded_at":"Wed, 03 May 2017 23:29:39 GMT"},{"request":{"method":"put","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/170363243","body":{"encoding":"UTF-8","string":"{}"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":400,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["no-cache"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 00:26:32 GMT"],"Server":["nginx + Phusion Passenger"],"Status":["400 Bad Request"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["bb9626e763089e372c20ed1f559a11a3"],"X-Runtime":["0.033398"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["ca7a904a-4c12-4513-68c8-b8a57e549abc"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["336"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"code\":\"invalid_parameter\",\"kind\":\"error\",\"error\":\"One or more request parameters was missing or invalid.\",\"general_problem\":\"this endpoint requires at least one of the following parameters: attachment_ids_to_remove, attachments_to_add, file_attachment_ids_to_add, file_attachment_ids_to_remove, google_attachment_ids_to_remove, text\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 00:26:32 GMT"}],"recorded_with":"VCR 3.0.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"UTF-8","string":"{\"text\":\"Test creating a comment\"}"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 00:26:33 GMT"],"Etag":["\"9dda396ee224c3f93cf6f3be29f80485\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["452d4de82b33b44859cb65ab066f2f13"],"X-Runtime":["0.217096"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["247"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["631eaad3-3b87-432f-432c-60a25fbf5c08"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["178"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"id\":173608993,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T00:26:32Z\",\"updated_at\":\"2017-06-12T00:26:32Z\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 00:26:33 GMT"},{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/uploads","body":{"encoding":"UTF-8","string":"-------------RubyMultipartPost-4971773737ecf554696d1ee47a4823e4\r\nContent-Disposition: form-data; name=\"file\"; filename=\"Gemfile\"\r\nContent-Length: 144\r\nContent-Type: \r\nContent-Transfer-Encoding: binary\r\n\r\nsource 'https://rubygems.org'\n\n# Specify your gem's dependencies in tracker_api.gemspec\ngemspec\n\ngem 'coveralls', group: :test, require: false\n\n\r\n-------------RubyMultipartPost-4971773737ecf554696d1ee47a4823e4--\r\n\r\n"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["multipart/form-data; boundary=-----------RubyMultipartPost-4971773737ecf554696d1ee47a4823e4"],"Content-Length":["419"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["text/html; charset=utf-8"],"Date":["Mon, 12 Jun 2017 00:26:34 GMT"],"Etag":["\"ee1c20be02be104aca3828b971b4a9c3\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["8f3a8669ee9c2aa65a5ed866f3f45779"],"X-Runtime":["0.612263"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["247"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["7e4da523-e419-4182-53dc-6c8fe0a1aa60"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["256"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"file_attachment\",\"id\":80978495,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T00:26:33Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80978495/download\",\"uploaded\":false,\"big_url\":\"#\",\"thumbnail_url\":\"#\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 00:26:34 GMT"},{"request":{"method":"put","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/173608993?fields=%3Adefault%2Cfile_attachments","body":{"encoding":"UTF-8","string":"{\"file_attachment_ids_to_add\":[80978495]}"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 00:26:34 GMT"],"Etag":["\"2ff28be74a2168f5549472c305467c10\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["d45f4dc83fef95504ace7b97668c9f13"],"X-Runtime":["0.268861"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["248"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["b017eef5-a8f7-4dcc-5c9f-36b30b904cc3"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["456"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"file_attachments\":[{\"kind\":\"file_attachment\",\"id\":80978495,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T00:26:33Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80978495/download\",\"uploaded\":false,\"big_url\":\"#\",\"thumbnail_url\":\"#\"}],\"id\":173608993,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T00:26:32Z\",\"updated_at\":\"2017-06-12T00:26:34Z\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 00:26:34 GMT"}],"recorded_with":"VCR 3.0.3"}
|
@@ -1 +1 @@
|
|
1
|
-
{"http_interactions":[{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728030/comments","body":{"encoding":"UTF-8","string":"{\"text\":\"This is a test comment.\"}"},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.
|
1
|
+
{"http_interactions":[{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728030/comments","body":{"encoding":"UTF-8","string":"{\"text\":\"This is a test comment.\"}"},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.1 Faraday/0.9.2"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Wed, 09 Aug 2017 22:02:51 GMT"],"Etag":["\"dda3e3dc085f4c98ff5f20fa92abf0ee\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["c5ee798d0eaea73fe5df666bf14ca615"],"X-Runtime":["0.286458"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["294"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["ffae63d3-492f-49db-4eb4-81f7ba85633b"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["178"],"Via":["1.1 google"],"Alt-Svc":["clear"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"id\":178211829,\"story_id\":66728030,\"text\":\"This is a test comment.\",\"person_id\":1266314,\"created_at\":\"2017-08-09T22:02:51Z\",\"updated_at\":\"2017-08-09T22:02:51Z\"}"},"http_version":null},"recorded_at":"Wed, 09 Aug 2017 22:02:57 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"UTF-8","string":"{\"text\":\"test comment\"}"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:32:05 GMT"],"Etag":["\"41563e5f526f1848b15c73c0e35da4d1\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["15f2a2b7c1afc750ed4bc4a9afd345eb"],"X-Runtime":["0.247018"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["274"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["1e6356c1-5099-4c60-731a-9795c8ee7f09"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["167"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"id\":173612961,\"story_id\":66728004,\"text\":\"test comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T04:32:05Z\",\"updated_at\":\"2017-06-12T04:32:05Z\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:32:05 GMT"},{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/uploads","body":{"encoding":"UTF-8","string":"-------------RubyMultipartPost-9d081de8e923a5f828bd19095e2d4614\r\nContent-Disposition: form-data; name=\"file\"; filename=\"Gemfile\"\r\nContent-Length: 144\r\nContent-Type: \r\nContent-Transfer-Encoding: binary\r\n\r\nsource 'https://rubygems.org'\n\n# Specify your gem's dependencies in tracker_api.gemspec\ngemspec\n\ngem 'coveralls', group: :test, require: false\n\n\r\n-------------RubyMultipartPost-9d081de8e923a5f828bd19095e2d4614--\r\n\r\n"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["multipart/form-data; boundary=-----------RubyMultipartPost-9d081de8e923a5f828bd19095e2d4614"],"Content-Length":["419"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["text/html; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:32:06 GMT"],"Etag":["\"668d416b586c3c528748c4c2e233a0da\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["e8798bd49ade52d16445406840c57697"],"X-Runtime":["0.690138"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["274"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["97f94c33-a3ef-4a1c-5ffc-bc3acfa17f69"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["256"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"file_attachment\",\"id\":80981051,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T04:32:06Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80981051/download\",\"uploaded\":false,\"big_url\":\"#\",\"thumbnail_url\":\"#\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:32:06 GMT"},{"request":{"method":"put","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/173612961?fields=%3Adefault%2Cfile_attachments","body":{"encoding":"UTF-8","string":"{\"file_attachment_ids_to_add\":[80981051]}"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:32:07 GMT"],"Etag":["\"2a3224d7487c35a703524109f9a6f727\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["ef50a1a6b2e974e6d1963d866f031183"],"X-Runtime":["0.242017"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["275"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["d4b02942-2a14-4bbb-5b59-2ec23d0b20d0"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["445"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"file_attachments\":[{\"kind\":\"file_attachment\",\"id\":80981051,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T04:32:06Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80981051/download\",\"uploaded\":false,\"big_url\":\"#\",\"thumbnail_url\":\"#\"}],\"id\":173612961,\"story_id\":66728004,\"text\":\"test comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T04:32:05Z\",\"updated_at\":\"2017-06-12T04:32:07Z\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:32:07 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/173612961?fields=file_attachments","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:35:19 GMT"],"Etag":["\"99e589a588c8942ef0fee8918334f509\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["df1a64a0d133cfaa26e4860d26fff982"],"X-Runtime":["0.053143"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["276"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["f60cfa8a-a7e5-492f-7e23-87ccf8310fe6"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["1047"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"file_attachments\":[{\"kind\":\"file_attachment\",\"id\":80981051,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T04:32:06Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80981051/download\",\"uploaded\":true,\"big_url\":\"https://s3.amazonaws.com/prod.tracker2/resource/80981051/Gemfile_big?response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJEX3ET63U5T77TYA%2F20170612%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170612T043519Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=4d56cd218c2118fc8ecbe1a85f61a1a580e55d5a3005560e92840417cfb15456\",\"thumbnail_url\":\"https://s3.amazonaws.com/prod.tracker2/resource/80981051/Gemfile_thumb?response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJEX3ET63U5T77TYA%2F20170612%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170612T043519Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d00de998df6c5ed301c9fc84b5d7889b19f55da0ffd169bc0596e06a7ef39212\"}],\"id\":173612961}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:35:19 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/173612961?fields=file_attachments","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:35:22 GMT"],"Etag":["\"99e589a588c8942ef0fee8918334f509\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["b152a48bc83e3fdc30a2b2476abe2136"],"X-Runtime":["0.039146"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["276"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["424956d8-fb29-47da-67be-81ae11805b88"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["1047"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"file_attachments\":[{\"kind\":\"file_attachment\",\"id\":80981051,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T04:32:06Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80981051/download\",\"uploaded\":true,\"big_url\":\"https://s3.amazonaws.com/prod.tracker2/resource/80981051/Gemfile_big?response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJEX3ET63U5T77TYA%2F20170612%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170612T043519Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=4d56cd218c2118fc8ecbe1a85f61a1a580e55d5a3005560e92840417cfb15456\",\"thumbnail_url\":\"https://s3.amazonaws.com/prod.tracker2/resource/80981051/Gemfile_thumb?response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJEX3ET63U5T77TYA%2F20170612%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170612T043519Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d00de998df6c5ed301c9fc84b5d7889b19f55da0ffd169bc0596e06a7ef39212\"}],\"id\":173612961}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:35:22 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/173612961?fields=file_attachments","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:35:24 GMT"],"Etag":["\"99e589a588c8942ef0fee8918334f509\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["27ce8539c1aabd5c68cddc78487bb4eb"],"X-Runtime":["0.040199"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["276"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["9a969e64-dd8a-4eab-5e4b-36d2e7688ced"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["1047"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"file_attachments\":[{\"kind\":\"file_attachment\",\"id\":80981051,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T04:32:06Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80981051/download\",\"uploaded\":true,\"big_url\":\"https://s3.amazonaws.com/prod.tracker2/resource/80981051/Gemfile_big?response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJEX3ET63U5T77TYA%2F20170612%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170612T043519Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=4d56cd218c2118fc8ecbe1a85f61a1a580e55d5a3005560e92840417cfb15456\",\"thumbnail_url\":\"https://s3.amazonaws.com/prod.tracker2/resource/80981051/Gemfile_thumb?response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJEX3ET63U5T77TYA%2F20170612%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170612T043519Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d00de998df6c5ed301c9fc84b5d7889b19f55da0ffd169bc0596e06a7ef39212\"}],\"id\":173612961}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:35:24 GMT"},{"request":{"method":"put","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/173612961?fields=%3Adefault%2Cfile_attachments","body":{"encoding":"UTF-8","string":"{\"file_attachment_ids_to_remove\":[80981051]}"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:36:28 GMT"],"Etag":["\"083511cb26d157694ae7271dee2e8505\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["4294da1f152d4294ee10f60706d10dec"],"X-Runtime":["0.221678"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["277"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["4834e483-a596-44b1-6669-4e8ef9edf255"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["189"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"file_attachments\":[],\"id\":173612961,\"story_id\":66728004,\"text\":\"test comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T04:32:05Z\",\"updated_at\":\"2017-06-12T04:36:28Z\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:36:28 GMT"}],"recorded_with":"VCR 3.0.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/uploads","body":{"encoding":"UTF-8","string":"-------------RubyMultipartPost-e71ba1127ef9ed2ec4fde8f7880298c3\r\nContent-Disposition: form-data; name=\"file\"; filename=\"Gemfile\"\r\nContent-Length: 144\r\nContent-Type: \r\nContent-Transfer-Encoding: binary\r\n\r\nsource 'https://rubygems.org'\n\n# Specify your gem's dependencies in tracker_api.gemspec\ngemspec\n\ngem 'coveralls', group: :test, require: false\n\n\r\n-------------RubyMultipartPost-e71ba1127ef9ed2ec4fde8f7880298c3--\r\n\r\n"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["multipart/form-data; boundary=-----------RubyMultipartPost-e71ba1127ef9ed2ec4fde8f7880298c3"],"Content-Length":["419"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["text/html; charset=utf-8"],"Date":["Mon, 12 Jun 2017 03:47:36 GMT"],"Etag":["\"86ede73aac9ecc4d5588eda2ccbc2818\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["6f6980b71782ac39fca091273526155f"],"X-Runtime":["0.755678"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["267"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["a8e2b681-474f-4bdd-41d7-19d4b9a71b05"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["256"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"file_attachment\",\"id\":80980447,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T03:47:35Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80980447/download\",\"uploaded\":false,\"big_url\":\"#\",\"thumbnail_url\":\"#\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 03:47:36 GMT"},{"request":{"method":"put","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/120836920?fields=%3Adefault%2Cfile_attachments","body":{"encoding":"UTF-8","string":"{\"file_attachment_ids_to_add\":[80980447]}"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 03:47:37 GMT"],"Etag":["\"d8e22f1a89e6f112418dffc9e4e1c9ec\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["5e8bed6ad9e1b953ab31379c767c2eff"],"X-Runtime":["0.252265"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["268"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["a6203ab7-9817-4f61-7102-7ab438b99dda"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["454"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"file_attachments\":[{\"kind\":\"file_attachment\",\"id\":80980447,\"filename\":\"Gemfile\",\"created_at\":\"2017-06-12T03:47:35Z\",\"uploader_id\":1266314,\"thumbnailable\":false,\"size\":144,\"download_url\":\"/file_attachments/80980447/download\",\"uploaded\":false,\"big_url\":\"#\",\"thumbnail_url\":\"#\"}],\"id\":120836920,\"story_id\":66728004,\"text\":\"This is a comment.+++\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:13:55Z\",\"updated_at\":\"2017-06-12T03:47:37Z\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 03:47:37 GMT"},{"request":{"method":"put","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/120836920?fields=%3Adefault%2Cfile_attachments","body":{"encoding":"UTF-8","string":"{\"file_attachment_ids_to_remove\":[80980447]}"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 03:47:38 GMT"],"Etag":["\"9a54d4be19aca5671ef5e2ddbaf3297c\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["56f21b1590d98b0b0f24766ea098dc61"],"X-Runtime":["0.234891"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["269"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["c5a95f67-7b90-4c70-4ac7-de424f4b7bc4"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["198"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"file_attachments\":[],\"id\":120836920,\"story_id\":66728004,\"text\":\"This is a comment.+++\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:13:55Z\",\"updated_at\":\"2017-06-12T03:47:37Z\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 03:47:38 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/120836920?fields=file_attachments","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 03:47:38 GMT"],"Etag":["\"b579761d6d39646cda5c21c8d061abfa\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["51d2b1192eeadd236741f5046d67a673"],"X-Runtime":["0.063679"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["269"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["fac0b9a4-d015-4770-4e0f-4193a18ca05c"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["38"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"file_attachments\":[],\"id\":120836920}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 03:47:38 GMT"}],"recorded_with":"VCR 3.0.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.1 Faraday/0.13.0"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Thu, 07 Sep 2017 19:20:28 GMT"],"Etag":["\"14e5386d20bcf42e6463dc93be787e76\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["e49c28d4b0904dfbaccc4f3886274558"],"X-Runtime":["0.033555"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["374"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["295d3cbf-181b-41a5-552f-68ec0d0d5612"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["564"],"Via":["1.1 google"],"Alt-Svc":["clear"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"story\",\"id\":66728004,\"created_at\":\"2014-02-17T00:00:00Z\",\"updated_at\":\"2017-09-07T19:19:18Z\",\"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],\"labels\":[{\"id\":11049870,\"project_id\":1027488,\"kind\":\"label\",\"name\":\"label2\",\"created_at\":\"2015-03-07T12:51:39Z\",\"updated_at\":\"2015-03-07T12:51:39Z\"}],\"owned_by_id\":1266314}"},"http_version":null},"recorded_at":"Thu, 07 Sep 2017 19:20:29 GMT"},{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"UTF-8","string":"{\"text\":\"test comment\"}"},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.1 Faraday/0.13.0"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Thu, 07 Sep 2017 19:20:29 GMT"],"Etag":["\"0c3769a293507027104d2dbbfd1eda01\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["e347ed6bda67e96c1ed67baf7c9752d1"],"X-Runtime":["0.355775"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["375"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["cdf3493b-eb29-4373-61e8-84c78c464bf2"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["167"],"Via":["1.1 google"],"Alt-Svc":["clear"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"id\":179393464,\"story_id\":66728004,\"text\":\"test comment\",\"person_id\":1266314,\"created_at\":\"2017-09-07T19:20:29Z\",\"updated_at\":\"2017-09-07T19:20:29Z\"}"},"http_version":null},"recorded_at":"Thu, 07 Sep 2017 19:20:30 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.1 Faraday/0.13.0"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Thu, 07 Sep 2017 19:20:29 GMT"],"Etag":["\"4f5107262e0d2d51fba801682ddaa4d2\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["25855886838120df1d29ed2effee31eb"],"X-Runtime":["0.047079"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["375"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["594d26d2-46d6-4da1-70f2-3e4667838656"],"X-Xss-Protection":["1; mode=block"],"Via":["1.1 google"],"Alt-Svc":["clear"]},"body":{"encoding":"ASCII-8BIT","string":"[{\"kind\":\"comment\",\"id\":120836920,\"story_id\":66728004,\"text\":\"This is a comment.+++\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:13:55Z\",\"updated_at\":\"2017-06-12T03:47:37Z\"},{\"kind\":\"comment\",\"id\":120836938,\"story_id\":66728004,\"text\":\"This is another comment.\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:14:04Z\",\"updated_at\":\"2015-12-17T22:14:04Z\"},{\"kind\":\"comment\",\"id\":155658605,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2016-11-16T14:17:47Z\",\"updated_at\":\"2016-11-16T14:17:47Z\"},{\"kind\":\"comment\",\"id\":170362899,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:23:33Z\",\"updated_at\":\"2017-05-03T23:23:33Z\"},{\"kind\":\"comment\",\"id\":170363243,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:29:39Z\",\"updated_at\":\"2017-05-03T23:29:39Z\"},{\"kind\":\"comment\",\"id\":173608993,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T00:26:32Z\",\"updated_at\":\"2017-06-12T02:13:39Z\"},{\"kind\":\"comment\",\"id\":173610235,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T02:16:13Z\",\"updated_at\":\"2017-06-12T02:16:15Z\"},{\"kind\":\"comment\",\"id\":173610269,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T02:19:10Z\",\"updated_at\":\"2017-06-12T02:19:13Z\"},{\"kind\":\"comment\",\"id\":173611341,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T03:19:55Z\",\"updated_at\":\"2017-06-12T03:19:58Z\"},{\"kind\":\"comment\",\"id\":173611767,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T03:41:24Z\",\"updated_at\":\"2017-06-12T03:41:26Z\"},{\"kind\":\"comment\",\"id\":173612961,\"story_id\":66728004,\"text\":\"test comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T04:32:05Z\",\"updated_at\":\"2017-06-12T04:36:28Z\"},{\"kind\":\"comment\",\"id\":179393464,\"story_id\":66728004,\"text\":\"test comment\",\"person_id\":1266314,\"created_at\":\"2017-09-07T19:20:29Z\",\"updated_at\":\"2017-09-07T19:20:29Z\"}]"},"http_version":null},"recorded_at":"Thu, 07 Sep 2017 19:20:30 GMT"},{"request":{"method":"delete","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/179393464","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.1 Faraday/0.13.0"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":204,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["no-cache"],"Date":["Thu, 07 Sep 2017 19:20:30 GMT"],"Server":["nginx + Phusion Passenger"],"Status":["204 No Content"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["9740f3c9404a26381790f312c9da3ddf"],"X-Runtime":["0.189029"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["376"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["228ebcf2-53c7-4145-7971-2f9628d275b3"],"X-Xss-Protection":["1; mode=block"],"Via":["1.1 google"],"Alt-Svc":["clear"]},"body":{"encoding":"ASCII-8BIT","string":""},"http_version":null},"recorded_at":"Thu, 07 Sep 2017 19:20:30 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.1 Faraday/0.13.0"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Thu, 07 Sep 2017 19:20:30 GMT"],"Etag":["\"d8da990917651efa7ea4e048e4d69315\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["f62ad56fab351ba9cad68a6133c499f8"],"X-Runtime":["0.071403"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["376"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["f668c421-4b19-4a68-43f0-770b775dd517"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["564"],"Via":["1.1 google"],"Alt-Svc":["clear"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"story\",\"id\":66728004,\"created_at\":\"2014-02-17T00:00:00Z\",\"updated_at\":\"2017-09-07T19:20:29Z\",\"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],\"labels\":[{\"id\":11049870,\"project_id\":1027488,\"kind\":\"label\",\"name\":\"label2\",\"created_at\":\"2015-03-07T12:51:39Z\",\"updated_at\":\"2015-03-07T12:51:39Z\"}],\"owned_by_id\":1266314}"},"http_version":null},"recorded_at":"Thu, 07 Sep 2017 19:20:31 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.1 Faraday/0.13.0"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Thu, 07 Sep 2017 19:20:30 GMT"],"Etag":["\"8c0485d534b5a7734cc751bb40948b99\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["1612f25034523401af55f2ca36118724"],"X-Runtime":["0.071299"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["376"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["c1d15d77-eada-4930-7272-bf051d9ce028"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["1958"],"Via":["1.1 google"],"Alt-Svc":["clear"]},"body":{"encoding":"ASCII-8BIT","string":"[{\"kind\":\"comment\",\"id\":120836920,\"story_id\":66728004,\"text\":\"This is a comment.+++\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:13:55Z\",\"updated_at\":\"2017-06-12T03:47:37Z\"},{\"kind\":\"comment\",\"id\":120836938,\"story_id\":66728004,\"text\":\"This is another comment.\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:14:04Z\",\"updated_at\":\"2015-12-17T22:14:04Z\"},{\"kind\":\"comment\",\"id\":155658605,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2016-11-16T14:17:47Z\",\"updated_at\":\"2016-11-16T14:17:47Z\"},{\"kind\":\"comment\",\"id\":170362899,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:23:33Z\",\"updated_at\":\"2017-05-03T23:23:33Z\"},{\"kind\":\"comment\",\"id\":170363243,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:29:39Z\",\"updated_at\":\"2017-05-03T23:29:39Z\"},{\"kind\":\"comment\",\"id\":173608993,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T00:26:32Z\",\"updated_at\":\"2017-06-12T02:13:39Z\"},{\"kind\":\"comment\",\"id\":173610235,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T02:16:13Z\",\"updated_at\":\"2017-06-12T02:16:15Z\"},{\"kind\":\"comment\",\"id\":173610269,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T02:19:10Z\",\"updated_at\":\"2017-06-12T02:19:13Z\"},{\"kind\":\"comment\",\"id\":173611341,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T03:19:55Z\",\"updated_at\":\"2017-06-12T03:19:58Z\"},{\"kind\":\"comment\",\"id\":173611767,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T03:41:24Z\",\"updated_at\":\"2017-06-12T03:41:26Z\"},{\"kind\":\"comment\",\"id\":173612961,\"story_id\":66728004,\"text\":\"test comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T04:32:05Z\",\"updated_at\":\"2017-06-12T04:36:28Z\"}]"},"http_version":null},"recorded_at":"Thu, 07 Sep 2017 19:20:31 GMT"}],"recorded_with":"VCR 2.9.3"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:07:14 GMT"],"Etag":["\"2cd092417cc39196e024d60eca4def51\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["b1595d423abeeeb3fbc97bba7fa6a0f7"],"X-Runtime":["0.048613"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["271"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["cff295b2-d392-4a81-4011-83eb4917e418"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["857"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"story\",\"id\":66728004,\"created_at\":\"2014-02-17T00:00:00Z\",\"updated_at\":\"2017-06-12T04:04:41Z\",\"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],\"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":"Mon, 12 Jun 2017 04:07:14 GMT"},{"request":{"method":"post","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"UTF-8","string":"{\"text\":\"test comment\"}"},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:07:15 GMT"],"Etag":["\"690da1f5aa7d5d77f2b84757b62d5a74\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["3c0c84cd5052e5f1d0821700721e73e4"],"X-Runtime":["0.357093"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["272"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["34a416f9-75c7-4ef1-6d87-e2b3a8715b94"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["167"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"id\":173612365,\"story_id\":66728004,\"text\":\"test comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T04:07:15Z\",\"updated_at\":\"2017-06-12T04:07:15Z\"}"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:07:15 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:07:15 GMT"],"Etag":["\"d4f26a8176147c7f26f8ba7d9e96bb10\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["76ff95f02d0a46b0e8910c6dd1816316"],"X-Runtime":["0.039079"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["272"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["1fc891c9-eb71-4e53-77d5-9e4eea0eed7c"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["1958"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"[{\"kind\":\"comment\",\"id\":120836920,\"story_id\":66728004,\"text\":\"This is a comment.+++\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:13:55Z\",\"updated_at\":\"2017-06-12T03:47:37Z\"},{\"kind\":\"comment\",\"id\":120836938,\"story_id\":66728004,\"text\":\"This is another comment.\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:14:04Z\",\"updated_at\":\"2015-12-17T22:14:04Z\"},{\"kind\":\"comment\",\"id\":155658605,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2016-11-16T14:17:47Z\",\"updated_at\":\"2016-11-16T14:17:47Z\"},{\"kind\":\"comment\",\"id\":170362899,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:23:33Z\",\"updated_at\":\"2017-05-03T23:23:33Z\"},{\"kind\":\"comment\",\"id\":170363243,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:29:39Z\",\"updated_at\":\"2017-05-03T23:29:39Z\"},{\"kind\":\"comment\",\"id\":173608993,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T00:26:32Z\",\"updated_at\":\"2017-06-12T02:13:39Z\"},{\"kind\":\"comment\",\"id\":173610235,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T02:16:13Z\",\"updated_at\":\"2017-06-12T02:16:15Z\"},{\"kind\":\"comment\",\"id\":173610269,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T02:19:10Z\",\"updated_at\":\"2017-06-12T02:19:13Z\"},{\"kind\":\"comment\",\"id\":173611341,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T03:19:55Z\",\"updated_at\":\"2017-06-12T03:19:58Z\"},{\"kind\":\"comment\",\"id\":173611767,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T03:41:24Z\",\"updated_at\":\"2017-06-12T03:41:26Z\"},{\"kind\":\"comment\",\"id\":173612365,\"story_id\":66728004,\"text\":\"test comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T04:07:15Z\",\"updated_at\":\"2017-06-12T04:07:15Z\"}]"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:07:15 GMT"},{"request":{"method":"delete","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments/173612365","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":204,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["no-cache"],"Date":["Mon, 12 Jun 2017 04:07:16 GMT"],"Server":["nginx + Phusion Passenger"],"Status":["204 No Content"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["invalidate, pass"],"X-Request-Id":["c56f43831c92d87ae6ac40229212050c"],"X-Runtime":["0.205759"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["273"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["7b4a7033-c274-4f52-6d66-281a3bfa88f5"],"X-Xss-Protection":["1; mode=block"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":""},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:07:16 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:07:16 GMT"],"Etag":["\"eec3b265138bb1155a01183e508d2dc8\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["086d2386852bb5b5226c7a3e18f94fd9"],"X-Runtime":["0.034774"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["273"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["37991ea4-0b56-4272-6aa9-a50e43ef8f03"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["857"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"story\",\"id\":66728004,\"created_at\":\"2014-02-17T00:00:00Z\",\"updated_at\":\"2017-06-12T04:07:15Z\",\"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],\"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":"Mon, 12 Jun 2017 04:07:16 GMT"},{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728004/comments","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.1.2 (x86_64-darwin16.0; ruby) TrackerApi/1.7.1 Faraday/0.12.1"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Mon, 12 Jun 2017 04:07:16 GMT"],"Etag":["\"f91060aa48f154a44408da1da7f2d96b\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["0962d415aac240d888d2804805562cc0"],"X-Runtime":["0.040993"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["273"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["fbeaf102-1e6d-42b8-670e-eb7236d7400c"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["1790"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"[{\"kind\":\"comment\",\"id\":120836920,\"story_id\":66728004,\"text\":\"This is a comment.+++\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:13:55Z\",\"updated_at\":\"2017-06-12T03:47:37Z\"},{\"kind\":\"comment\",\"id\":120836938,\"story_id\":66728004,\"text\":\"This is another comment.\",\"person_id\":1266314,\"created_at\":\"2015-12-17T22:14:04Z\",\"updated_at\":\"2015-12-17T22:14:04Z\"},{\"kind\":\"comment\",\"id\":155658605,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2016-11-16T14:17:47Z\",\"updated_at\":\"2016-11-16T14:17:47Z\"},{\"kind\":\"comment\",\"id\":170362899,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:23:33Z\",\"updated_at\":\"2017-05-03T23:23:33Z\"},{\"kind\":\"comment\",\"id\":170363243,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:29:39Z\",\"updated_at\":\"2017-05-03T23:29:39Z\"},{\"kind\":\"comment\",\"id\":173608993,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T00:26:32Z\",\"updated_at\":\"2017-06-12T02:13:39Z\"},{\"kind\":\"comment\",\"id\":173610235,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T02:16:13Z\",\"updated_at\":\"2017-06-12T02:16:15Z\"},{\"kind\":\"comment\",\"id\":173610269,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T02:19:10Z\",\"updated_at\":\"2017-06-12T02:19:13Z\"},{\"kind\":\"comment\",\"id\":173611341,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T03:19:55Z\",\"updated_at\":\"2017-06-12T03:19:58Z\"},{\"kind\":\"comment\",\"id\":173611767,\"story_id\":66728004,\"text\":\"Test creating a comment\",\"person_id\":1266314,\"created_at\":\"2017-06-12T03:41:24Z\",\"updated_at\":\"2017-06-12T03:41:26Z\"}]"},"http_version":null},"recorded_at":"Mon, 12 Jun 2017 04:07:16 GMT"}],"recorded_with":"VCR 3.0.3"}
|
@@ -1 +1 @@
|
|
1
|
-
{"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728030","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.
|
1
|
+
{"http_interactions":[{"request":{"method":"get","uri":"https://www.pivotaltracker.com/services/v5/projects/1027488/stories/66728030","body":{"encoding":"US-ASCII","string":""},"headers":{"User-Agent":["Ruby/2.3.1 (x86_64-darwin15; ruby) TrackerApi/1.7.1 Faraday/0.9.2"],"X-TrackerToken":["d55c3bc1f74346b843ca84ba340b29bf"]}},"response":{"status":{"code":200,"message":null},"headers":{"Access-Control-Allow-Credentials":["false"],"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"],"Access-Control-Allow-Methods":["GET, POST, PUT, DELETE, OPTIONS"],"Access-Control-Allow-Origin":["*"],"Cache-Control":["max-age=0, private, must-revalidate"],"Content-Type":["application/json; charset=utf-8"],"Date":["Thu, 10 Aug 2017 00:43:48 GMT"],"Etag":["\"ad00e2519a528a75040db99754645a00\""],"Server":["nginx + Phusion Passenger"],"Status":["200 OK"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains; preload"],"X-Content-Type-Options":["nosniff"],"X-Powered-By":["Phusion Passenger Enterprise"],"X-Rack-Cache":["miss"],"X-Request-Id":["9cf32ccf6c3d7c7a9ef006f20ade805b"],"X-Runtime":["0.038823"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["307"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["7fee37f6-76fe-4ec5-4b1b-9f05ff3d471f"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["650"],"Via":["1.1 google"],"Alt-Svc":["clear"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"story\",\"id\":66728030,\"created_at\":\"2014-02-17T00:00:00Z\",\"updated_at\":\"2017-08-09T23:58:18Z\",\"estimate\":3,\"story_type\":\"feature\",\"name\":\"Admin can review all order questions and send responses to shoppers\",\"current_state\":\"started\",\"requested_by_id\":1266314,\"url\":\"https://www.pivotaltracker.com/story/show/66728030\",\"project_id\":1027488,\"owner_ids\":[],\"labels\":[{\"id\":7849080,\"project_id\":1027488,\"kind\":\"label\",\"name\":\"admin\",\"created_at\":\"2014-03-02T07:11:04Z\",\"updated_at\":\"2014-03-02T07:11:04Z\"},{\"id\":7849094,\"project_id\":1027488,\"kind\":\"label\",\"name\":\"orders\",\"created_at\":\"2014-03-02T07:11:05Z\",\"updated_at\":\"2014-03-02T07:11:05Z\"}]}"},"http_version":null},"recorded_at":"Thu, 10 Aug 2017 00:43:54 GMT"}],"recorded_with":"VCR 2.9.3"}
|
data/tracker_api.gemspec
CHANGED
@@ -28,10 +28,11 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.add_dependency 'addressable'
|
30
30
|
spec.add_dependency 'virtus'
|
31
|
-
spec.add_dependency 'faraday'
|
31
|
+
spec.add_dependency 'faraday'
|
32
32
|
spec.add_dependency 'faraday_middleware'
|
33
33
|
spec.add_dependency 'excon'
|
34
34
|
spec.add_dependency 'equalizer'
|
35
35
|
spec.add_dependency 'representable'
|
36
36
|
spec.add_dependency 'multi_json'
|
37
|
+
spec.add_dependency 'mimemagic'
|
37
38
|
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.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Forest Carlisle
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -126,16 +126,16 @@ dependencies:
|
|
126
126
|
name: faraday
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - "
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0
|
131
|
+
version: '0'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - "
|
136
|
+
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0
|
138
|
+
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: faraday_middleware
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -206,6 +206,20 @@ dependencies:
|
|
206
206
|
- - ">="
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: mimemagic
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :runtime
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
209
223
|
description: This gem allows you to easily use the Pivotal Tracker v5 API.
|
210
224
|
email:
|
211
225
|
- forestcarlisle@gmail.com
|
@@ -224,6 +238,8 @@ files:
|
|
224
238
|
- lib/tracker_api.rb
|
225
239
|
- lib/tracker_api/client.rb
|
226
240
|
- lib/tracker_api/endpoints/activity.rb
|
241
|
+
- lib/tracker_api/endpoints/attachment.rb
|
242
|
+
- lib/tracker_api/endpoints/attachments.rb
|
227
243
|
- lib/tracker_api/endpoints/comment.rb
|
228
244
|
- lib/tracker_api/endpoints/comments.rb
|
229
245
|
- lib/tracker_api/endpoints/epic.rb
|
@@ -247,6 +263,7 @@ files:
|
|
247
263
|
- lib/tracker_api/endpoints/workspace.rb
|
248
264
|
- lib/tracker_api/endpoints/workspaces.rb
|
249
265
|
- lib/tracker_api/error.rb
|
266
|
+
- lib/tracker_api/file_utility.rb
|
250
267
|
- lib/tracker_api/logger.rb
|
251
268
|
- lib/tracker_api/resources/account.rb
|
252
269
|
- lib/tracker_api/resources/activity.rb
|
@@ -254,6 +271,7 @@ files:
|
|
254
271
|
- lib/tracker_api/resources/comment.rb
|
255
272
|
- lib/tracker_api/resources/epic.rb
|
256
273
|
- lib/tracker_api/resources/epics_search_result.rb
|
274
|
+
- lib/tracker_api/resources/file_attachment.rb
|
257
275
|
- lib/tracker_api/resources/iteration.rb
|
258
276
|
- lib/tracker_api/resources/label.rb
|
259
277
|
- lib/tracker_api/resources/me.rb
|
@@ -278,6 +296,8 @@ files:
|
|
278
296
|
- lib/virtus/dirty_attribute/session.rb
|
279
297
|
- test/client_test.rb
|
280
298
|
- test/comment_test.rb
|
299
|
+
- test/error_test.rb
|
300
|
+
- test/file_attachment_test.rb
|
281
301
|
- test/minitest_helper.rb
|
282
302
|
- test/project_test.rb
|
283
303
|
- test/story_test.rb
|
@@ -287,11 +307,17 @@ files:
|
|
287
307
|
- test/vcr/cassettes/client_get_limited_stories_with_no_pagination.json
|
288
308
|
- test/vcr/cassettes/client_get_single_epic_by_epic_id.json
|
289
309
|
- test/vcr/cassettes/client_get_single_story_by_story_id.json
|
310
|
+
- test/vcr/cassettes/create_attachments.json
|
290
311
|
- test/vcr/cassettes/create_comment.json
|
312
|
+
- test/vcr/cassettes/create_comment_with_attachment.json
|
291
313
|
- test/vcr/cassettes/create_story.json
|
292
314
|
- test/vcr/cassettes/create_story_comment.json
|
293
315
|
- test/vcr/cassettes/create_story_with_lengthy_params.json
|
294
316
|
- test/vcr/cassettes/create_task.json
|
317
|
+
- test/vcr/cassettes/delete_an_attachment.json
|
318
|
+
- test/vcr/cassettes/delete_attachments.json
|
319
|
+
- test/vcr/cassettes/delete_comment.json
|
320
|
+
- test/vcr/cassettes/delete_comments.json
|
295
321
|
- test/vcr/cassettes/get_all_notifications.json
|
296
322
|
- test/vcr/cassettes/get_all_projects.json
|
297
323
|
- test/vcr/cassettes/get_all_workspaces.json
|
@@ -418,6 +444,8 @@ summary: API client for the Pivotal Tracker v5 API
|
|
418
444
|
test_files:
|
419
445
|
- test/client_test.rb
|
420
446
|
- test/comment_test.rb
|
447
|
+
- test/error_test.rb
|
448
|
+
- test/file_attachment_test.rb
|
421
449
|
- test/minitest_helper.rb
|
422
450
|
- test/project_test.rb
|
423
451
|
- test/story_test.rb
|
@@ -427,11 +455,17 @@ test_files:
|
|
427
455
|
- test/vcr/cassettes/client_get_limited_stories_with_no_pagination.json
|
428
456
|
- test/vcr/cassettes/client_get_single_epic_by_epic_id.json
|
429
457
|
- test/vcr/cassettes/client_get_single_story_by_story_id.json
|
458
|
+
- test/vcr/cassettes/create_attachments.json
|
430
459
|
- test/vcr/cassettes/create_comment.json
|
460
|
+
- test/vcr/cassettes/create_comment_with_attachment.json
|
431
461
|
- test/vcr/cassettes/create_story.json
|
432
462
|
- test/vcr/cassettes/create_story_comment.json
|
433
463
|
- test/vcr/cassettes/create_story_with_lengthy_params.json
|
434
464
|
- test/vcr/cassettes/create_task.json
|
465
|
+
- test/vcr/cassettes/delete_an_attachment.json
|
466
|
+
- test/vcr/cassettes/delete_attachments.json
|
467
|
+
- test/vcr/cassettes/delete_comment.json
|
468
|
+
- test/vcr/cassettes/delete_comments.json
|
435
469
|
- test/vcr/cassettes/get_all_notifications.json
|
436
470
|
- test/vcr/cassettes/get_all_projects.json
|
437
471
|
- test/vcr/cassettes/get_all_workspaces.json
|