{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/comments/39698806","id":39698806,"diff_hunk":"@@ -82,6 +92,42 @@ SpanData.prototype.close = function() {\n };\n \n /**\n+ * Trace API expects stack frames to be a JSON string with the following\n+ * structure:\n+ * STACK_TRACE := { \"stack_frame\" : [ FRAMES ] }\n+ * FRAMES := { \"class_name\" : CLASS_NAME, \"file_name\" : FILE_NAME,\n+ *             \"line_number\" : LINE_NUMBER, \"method_name\" : METHOD_NAME }*\n+ *\n+ * While the API doesn't expect a columnNumber at this point, it does accept,\n+ * and ignore it.\n+ *\n+ * @param {string|undefined} className\n+ * @param {string|undefined} methodName\n+ * @param {string|undefined} fileName\n+ * @param {number|undefined} lineNumber\n+ * @param {number|undefined} columnNumber\n+ * @constructor @private\n+ */\n+function StackFrame(className, methodName, fileName, lineNumber, columnNumber) {\n+  if (className) {\n+    this.class_name = className;","path":"lib/span-data.js","position":47,"original_position":47,"commit_id":"db5c23a50e425e84fac1627f280be51c249512b2","original_commit_id":"db5c23a50e425e84fac1627f280be51c249512b2","user":{"login":"matthewloring","id":1485909,"avatar_url":"https://avatars.githubusercontent.com/u/1485909?v=3","gravatar_id":"","url":"https://api.github.com/users/matthewloring","html_url":"https://github.com/matthewloring","followers_url":"https://api.github.com/users/matthewloring/followers","following_url":"https://api.github.com/users/matthewloring/following{/other_user}","gists_url":"https://api.github.com/users/matthewloring/gists{/gist_id}","starred_url":"https://api.github.com/users/matthewloring/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthewloring/subscriptions","organizations_url":"https://api.github.com/users/matthewloring/orgs","repos_url":"https://api.github.com/users/matthewloring/repos","events_url":"https://api.github.com/users/matthewloring/events{/privacy}","received_events_url":"https://api.github.com/users/matthewloring/received_events","type":"User","site_admin":false},"body":"Note to future me: This path will be dead code as we currently do not provide class names. It is included to be faithful to the structure expected by the server.","created_at":"2015-09-16T23:45:25Z","updated_at":"2015-09-16T23:45:25Z","html_url":"https://github.com/GoogleCloudPlatform/cloud-trace-nodejs/pull/59#discussion_r39698806","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/59","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/comments/39698806"},"html":{"href":"https://github.com/GoogleCloudPlatform/cloud-trace-nodejs/pull/59#discussion_r39698806"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/59"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/59","id":44056743,"html_url":"https://github.com/GoogleCloudPlatform/cloud-trace-nodejs/pull/59","diff_url":"https://github.com/GoogleCloudPlatform/cloud-trace-nodejs/pull/59.diff","patch_url":"https://github.com/GoogleCloudPlatform/cloud-trace-nodejs/pull/59.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/issues/59","number":59,"state":"open","locked":false,"title":"Implement support for structured stack traces","user":{"login":"ofrobots","id":79017,"avatar_url":"https://avatars.githubusercontent.com/u/79017?v=3","gravatar_id":"","url":"https://api.github.com/users/ofrobots","html_url":"https://github.com/ofrobots","followers_url":"https://api.github.com/users/ofrobots/followers","following_url":"https://api.github.com/users/ofrobots/following{/other_user}","gists_url":"https://api.github.com/users/ofrobots/gists{/gist_id}","starred_url":"https://api.github.com/users/ofrobots/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofrobots/subscriptions","organizations_url":"https://api.github.com/users/ofrobots/orgs","repos_url":"https://api.github.com/users/ofrobots/repos","events_url":"https://api.github.com/users/ofrobots/events{/privacy}","received_events_url":"https://api.github.com/users/ofrobots/received_events","type":"User","site_admin":false},"body":"PTAL @matthewloring ","created_at":"2015-09-02T23:59:38Z","updated_at":"2015-09-16T23:45:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f54fbc0daf2efa86ec5b9b687978a8aeaa62d0f0","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/59/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/59/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/issues/59/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/statuses/db5c23a50e425e84fac1627f280be51c249512b2","head":{"label":"ofrobots:structured-stack","ref":"structured-stack","sha":"db5c23a50e425e84fac1627f280be51c249512b2","user":{"login":"ofrobots","id":79017,"avatar_url":"https://avatars.githubusercontent.com/u/79017?v=3","gravatar_id":"","url":"https://api.github.com/users/ofrobots","html_url":"https://github.com/ofrobots","followers_url":"https://api.github.com/users/ofrobots/followers","following_url":"https://api.github.com/users/ofrobots/following{/other_user}","gists_url":"https://api.github.com/users/ofrobots/gists{/gist_id}","starred_url":"https://api.github.com/users/ofrobots/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofrobots/subscriptions","organizations_url":"https://api.github.com/users/ofrobots/orgs","repos_url":"https://api.github.com/users/ofrobots/repos","events_url":"https://api.github.com/users/ofrobots/events{/privacy}","received_events_url":"https://api.github.com/users/ofrobots/received_events","type":"User","site_admin":false},"repo":{"id":41393941,"name":"cloud-trace-nodejs","full_name":"ofrobots/cloud-trace-nodejs","owner":{"login":"ofrobots","id":79017,"avatar_url":"https://avatars.githubusercontent.com/u/79017?v=3","gravatar_id":"","url":"https://api.github.com/users/ofrobots","html_url":"https://github.com/ofrobots","followers_url":"https://api.github.com/users/ofrobots/followers","following_url":"https://api.github.com/users/ofrobots/following{/other_user}","gists_url":"https://api.github.com/users/ofrobots/gists{/gist_id}","starred_url":"https://api.github.com/users/ofrobots/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofrobots/subscriptions","organizations_url":"https://api.github.com/users/ofrobots/orgs","repos_url":"https://api.github.com/users/ofrobots/repos","events_url":"https://api.github.com/users/ofrobots/events{/privacy}","received_events_url":"https://api.github.com/users/ofrobots/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ofrobots/cloud-trace-nodejs","description":"Experimental Node.js support for Google Cloud Trace","fork":true,"url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs","forks_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/forks","keys_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/teams","hooks_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/hooks","issue_events_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/issues/events{/number}","events_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/events","assignees_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/assignees{/user}","branches_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/branches{/branch}","tags_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/tags","blobs_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/git/refs{/sha}","trees_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/statuses/{sha}","languages_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/languages","stargazers_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/stargazers","contributors_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/contributors","subscribers_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/subscribers","subscription_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/subscription","commits_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/commits{/sha}","git_commits_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/git/commits{/sha}","comments_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/comments{/number}","issue_comment_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/issues/comments{/number}","contents_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/contents/{+path}","compare_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/merges","archive_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/downloads","issues_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/issues{/number}","pulls_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/pulls{/number}","milestones_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/milestones{/number}","notifications_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/labels{/name}","releases_url":"https://api.github.com/repos/ofrobots/cloud-trace-nodejs/releases{/id}","created_at":"2015-08-25T23:53:22Z","updated_at":"2015-08-25T23:53:22Z","pushed_at":"2015-09-16T23:30:48Z","git_url":"git://github.com/ofrobots/cloud-trace-nodejs.git","ssh_url":"git@github.com:ofrobots/cloud-trace-nodejs.git","clone_url":"https://github.com/ofrobots/cloud-trace-nodejs.git","svn_url":"https://github.com/ofrobots/cloud-trace-nodejs","homepage":"https://cloud.google.com/cloud-trace/","size":201,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:master","ref":"master","sha":"e14765294d8a87333abee85951868d306d2511d3","user":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":41170869,"name":"cloud-trace-nodejs","full_name":"GoogleCloudPlatform/cloud-trace-nodejs","owner":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GoogleCloudPlatform/cloud-trace-nodejs","description":"Experimental Node.js support for Google Cloud Trace","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/releases{/id}","created_at":"2015-08-21T18:23:09Z","updated_at":"2015-09-01T22:35:00Z","pushed_at":"2015-09-16T23:31:04Z","git_url":"git://github.com/GoogleCloudPlatform/cloud-trace-nodejs.git","ssh_url":"git@github.com:GoogleCloudPlatform/cloud-trace-nodejs.git","clone_url":"https://github.com/GoogleCloudPlatform/cloud-trace-nodejs.git","svn_url":"https://github.com/GoogleCloudPlatform/cloud-trace-nodejs","homepage":"https://cloud.google.com/cloud-trace/","size":449,"stargazers_count":2,"watchers_count":2,"language":"JavaScript","has_issues":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":12,"forks":4,"open_issues":12,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/59"},"html":{"href":"https://github.com/GoogleCloudPlatform/cloud-trace-nodejs/pull/59"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/issues/59"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/issues/59/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/59/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/pulls/59/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-trace-nodejs/statuses/db5c23a50e425e84fac1627f280be51c249512b2"}}}}