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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cbd6533872fb55f68afdf21309b4187d7061b8a6
4
- data.tar.gz: 71b0f57265c1840a1271f3025406aef56896e5c5
3
+ metadata.gz: b93cdb4a9ba207f6a81cdf67cebfddcdf2f3e99b
4
+ data.tar.gz: de0f6b60cd0b86cf669fa499efae9acdacd472e5
5
5
  SHA512:
6
- metadata.gz: 88cff726815d37af8312853895bed38974eefb993d1bbc00050fcf63bf393f2d8a6618d1a72df6ae0cbf0a0124deff6ee48f9798bc13027da0bac8a73c31ca7f
7
- data.tar.gz: a1a864149b4175c72f345ff143b60f16dd2a992d848fd55fd39300287f71e5a0000a0eacdd30783d095d70927ecc2ffbf9207b48616fc62a98ea0a57f5657c06
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
@@ -48,40 +48,15 @@ module TrackerApi
48
48
  end
49
49
  end
50
50
 
51
- # Make a HTTP GET request
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
- def get(path, options = {})
57
- request(:get, parse_query_and_convenience_headers(path, options))
58
- end
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
- raise TrackerApi::Error.new(e)
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
- data = client.put("/projects/#{comment.project_id}/stories/#{comment.story_id}/comments/#{comment.id}",
19
- params: params).body
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
@@ -1,7 +1,7 @@
1
1
  module TrackerApi
2
2
  module Resources
3
3
  class Activity
4
- include Virtus.model
4
+ include Shared::Base
5
5
  include Equalizer.new(:guid)
6
6
 
7
7
  attribute :client
@@ -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], default: nil
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
- collection :labels, class: Label, decorator: Label::UpdateRepresenter, render_empty: true
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(params = {})
112
- if params.blank? && @comments.present?
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, params)
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
- Endpoints::Comment.new(client).create(project_id, id, params)
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
@@ -1,3 +1,3 @@
1
1
  module TrackerApi
2
- VERSION = '1.7.1'
2
+ VERSION = '1.8.0'
3
3
  end
@@ -14,7 +14,7 @@ module Virtus
14
14
  if !value_coerced?(output) && input.blank?
15
15
  nil
16
16
  # Added to nullify anything that is blank not just strings.
17
- elsif output.blank?
17
+ elsif output.blank? && output != false
18
18
  nil
19
19
  else
20
20
  output
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
@@ -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 2.9.3"}
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.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:45 GMT"],"Etag":["\"0ae883818e80288c11e26305f2b9d9de\""],"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":["3f4a528c8ca42da1af2a0949c3012633"],"X-Runtime":["0.154335"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["238"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["7cabdec2-5557-489c-46e5-bf1fc55621ac"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["178"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"comment\",\"id\":170363251,\"story_id\":66728030,\"text\":\"This is a test comment.\",\"person_id\":1266314,\"created_at\":\"2017-05-03T23:29:45Z\",\"updated_at\":\"2017-05-03T23:29:45Z\"}"},"http_version":null},"recorded_at":"Wed, 03 May 2017 23:29:45 GMT"}],"recorded_with":"VCR 2.9.3"}
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.0 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":["Wed, 03 May 2017 23:29:45 GMT"],"Etag":["\"1fd905e46c27c4c82fef34c22783bf3e\""],"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":["6ff827dfb4fc2bbf7eb887e83b285aec"],"X-Runtime":["0.035813"],"X-Tracker-Client-Pinger-Interval":["20"],"X-Tracker-Project-Version":["237"],"X-Ua-Compatible":["IE=Edge,chrome=1"],"X-Vcap-Request-Id":["e5b6fb6b-cf70-4614-5d67-0824b5d23cce"],"X-Xss-Protection":["1; mode=block"],"Content-Length":["650"],"Connection":["keep-alive"]},"body":{"encoding":"ASCII-8BIT","string":"{\"kind\":\"story\",\"id\":66728030,\"created_at\":\"2014-02-17T00:00:00Z\",\"updated_at\":\"2017-05-03T23:23:55Z\",\"estimate\":2,\"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":"Wed, 03 May 2017 23:29:45 GMT"}],"recorded_with":"VCR 2.9.3"}
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', '~> 0.9.0'
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.7.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-05-05 00:00:00.000000000 Z
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.9.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.9.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