{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/comments/95702750","pull_request_review_id":16262032,"id":95702750,"diff_hunk":"@@ -0,0 +1,204 @@\n+/**\n+ * @license\n+ * Copyright 2016 Google Inc. All rights reserved.\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *     http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+'use strict';\n+\n+const log = require('../../../lighthouse-core/lib/log.js');\n+\n+class Metrics {\n+\n+  constructor(traceEvents, auditResults) {\n+    this._traceEvents = traceEvents;\n+    this._auditResults = auditResults;\n+    this._fakeEvents = [];\n+  }\n+\n+  /**\n+   * Returns simplified representation of all metrics\n+   * @return {!Array<{getTs: Function, id: string, name: string}>} metrics to consider\n+   */\n+  static get metricsDefinitions() {\n+    return [\n+      {\n+        name: 'Navigation Start',\n+        id: 'navstart',\n+        getTs: auditResults => {\n+          const fmpExt = auditResults['first-meaningful-paint'].extendedInfo;\n+          return fmpExt.value.timestamps.navStart;\n+        }\n+      },\n+      {\n+        name: 'First Contentful Paint',\n+        id: 'ttfcp',\n+        getTs: auditResults => {\n+          const fmpExt = auditResults['first-meaningful-paint'].extendedInfo;\n+          return fmpExt.value.timestamps.fCP;\n+        }\n+      },\n+      {\n+        name: 'First Meaningful Paint',\n+        id: 'ttfmp',\n+        getTs: auditResults => {\n+          const fmpExt = auditResults['first-meaningful-paint'].extendedInfo;\n+          return fmpExt.value.timestamps.fMP;\n+        }\n+      },\n+      {\n+        name: 'Perceptual Speed Index',\n+        id: 'psi',\n+        getTs: auditResults => {\n+          const siExt = auditResults['speed-index-metric'].extendedInfo;\n+          return siExt.value.timestamps.perceptualSpeedIndex;\n+        }\n+      },\n+      {\n+        name: 'First Visual Change',\n+        id: 'fv',\n+        getTs: auditResults => {\n+          const siExt = auditResults['speed-index-metric'].extendedInfo;\n+          return siExt.value.timestamps.firstVisualChange;\n+        }\n+      },\n+      {\n+        name: 'Visually Complete 85%',\n+        id: 'vc85',\n+        getTs: auditResults => {\n+          const siExt = auditResults['time-to-interactive'].extendedInfo;\n+          return siExt.value.timestamps.visuallyReady;\n+        }\n+      },\n+      {\n+        name: 'Visually Complete 100%',\n+        id: 'vc',\n+        getTs: auditResults => {\n+          const siExt = auditResults['speed-index-metric'].extendedInfo;\n+          return siExt.value.timestamps.visuallyComplete;\n+        }\n+      },\n+      {\n+        name: 'Time to Interactive',\n+        id: 'tti',\n+        getTs: auditResults => {\n+          const ttiExt = auditResults['time-to-interactive'].extendedInfo;\n+          return ttiExt.value.timestamps.timeToInteractive;\n+        }\n+      }\n+    ];\n+  }\n+\n+  /**\n+   * Returns simplified representation of all metrics' timestamps from monotonic clock\n+   * @param {!Array<!AuditResult>} auditResults\n+   * @return {!Array<{ts: number, id: string, name: string}>} metrics to consider\n+   */\n+  gatherMetrics(auditResults) {\n+    const metricDfns = Metrics.metricsDefinitions;\n+    const resolvedMetrics = [];\n+    metricDfns.forEach(metric => {\n+      // try/catch in case auditResults is missing an audit result\n+      try {\n+        resolvedMetrics.push({\n+          id: metric.id,\n+          name: metric.name,\n+          ts: metric.getTs(auditResults)\n+        });\n+      } catch (e) {\n+        log.error('metrics-evts', `${metric.name} timestamp not found: ${e.message}`);\n+      }\n+    });\n+    return resolvedMetrics;\n+  }\n+\n+  /**\n+   * Getter for our navigationStart trace event\n+   */\n+  get navigationStartEvt() {\n+    if (!this._navigationStartEvt) {\n+      const filteredEvents = this._traceEvents.filter(e => {\n+        return e.name === 'TracingStartedInPage' || e.cat === 'blink.user_timing';\n+      });\n+\n+      const tracingStartedEvt = filteredEvents.filter(e => e.name === 'TracingStartedInPage')[0];\n+      const navigationStartEvt = filteredEvents.filter(e => {\n+        return e.name === 'navigationStart' &&\n+            e.pid === tracingStartedEvt.pid && e.tid === tracingStartedEvt.tid;\n+      })[0];\n+      this._navigationStartEvt = navigationStartEvt;\n+    }\n+    return this._navigationStartEvt;\n+  }\n+\n+\n+  /**\n+   * Constructs performance.measure trace events, which have start/end events as follows:\n+   *     { \"pid\": 89922,\"tid\":1295,\"ts\":77176783452,\"ph\":\"b\",\"cat\":\"blink.user_timing\",\"name\":\"innermeasure\",\"args\":{},\"tts\":1257886,\"id\":\"0xe66c67\"}\n+   *     { \"pid\": 89922,\"tid\":1295,\"ts\":77176882592,\"ph\":\"e\",\"cat\":\"blink.user_timing\",\"name\":\"innermeasure\",\"args\":{},\"tts\":1257898,\"id\":\"0xe66c67\"}\n+   * @param  {!Object} metric\n+   * @param  {number} navStartTs\n+   * @return {Array} Pair of trace events (start/end)","path":"lighthouse-core/lib/traces/metrics-evts.js","position":151,"original_position":151,"commit_id":"9de452e2b08210dcc42eaeaa24411f86a5768c6a","original_commit_id":"9de452e2b08210dcc42eaeaa24411f86a5768c6a","user":{"login":"brendankenny","id":316891,"avatar_url":"https://avatars.githubusercontent.com/u/316891?v=3","gravatar_id":"","url":"https://api.github.com/users/brendankenny","html_url":"https://github.com/brendankenny","followers_url":"https://api.github.com/users/brendankenny/followers","following_url":"https://api.github.com/users/brendankenny/following{/other_user}","gists_url":"https://api.github.com/users/brendankenny/gists{/gist_id}","starred_url":"https://api.github.com/users/brendankenny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brendankenny/subscriptions","organizations_url":"https://api.github.com/users/brendankenny/orgs","repos_url":"https://api.github.com/users/brendankenny/repos","events_url":"https://api.github.com/users/brendankenny/events{/privacy}","received_events_url":"https://api.github.com/users/brendankenny/received_events","type":"User","site_admin":false},"body":"`{!Array}`","created_at":"2017-01-12T00:18:54Z","updated_at":"2017-01-12T00:49:24Z","html_url":"https://github.com/GoogleChrome/lighthouse/pull/1446#discussion_r95702750","pull_request_url":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/1446","_links":{"self":{"href":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/comments/95702750"},"html":{"href":"https://github.com/GoogleChrome/lighthouse/pull/1446#discussion_r95702750"},"pull_request":{"href":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/1446"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/1446","id":100820190,"html_url":"https://github.com/GoogleChrome/lighthouse/pull/1446","diff_url":"https://github.com/GoogleChrome/lighthouse/pull/1446.diff","patch_url":"https://github.com/GoogleChrome/lighthouse/pull/1446.patch","issue_url":"https://api.github.com/repos/GoogleChrome/lighthouse/issues/1446","number":1446,"state":"open","locked":false,"title":"Inject Lighthouse metrics back into trace for viewing","user":{"login":"paulirish","id":39191,"avatar_url":"https://avatars.githubusercontent.com/u/39191?v=3","gravatar_id":"","url":"https://api.github.com/users/paulirish","html_url":"https://github.com/paulirish","followers_url":"https://api.github.com/users/paulirish/followers","following_url":"https://api.github.com/users/paulirish/following{/other_user}","gists_url":"https://api.github.com/users/paulirish/gists{/gist_id}","starred_url":"https://api.github.com/users/paulirish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulirish/subscriptions","organizations_url":"https://api.github.com/users/paulirish/orgs","repos_url":"https://api.github.com/users/paulirish/repos","events_url":"https://api.github.com/users/paulirish/events{/privacy}","received_events_url":"https://api.github.com/users/paulirish/received_events","type":"User","site_admin":false},"body":"Fixes #616 \r\n\r\nHere's a preview of what this patch gives us:\r\n![image](https://cloud.githubusercontent.com/assets/39191/21796487/f35ad136-d6bd-11e6-9447-2260adcf1d65.png)\r\n\r\nLive example: https://chromedevtools.github.io/timeline-viewer/?loadTimelineFromURL=https://www.dropbox.com/s/wqzll3jjbdseooe/hypem.com_01-05-2017_7-33-42_PM-0.trace.json?dl=0\r\n\r\nIn short: the lighthouse metrics like \"First meaningful paint\", \"Time to Interactive\", etc are mocked out as _User Timing_ measures, such that they can be viewed in the devtools timeline. The these user timing measures are added right to the trace, so if you saved it with `--save-assets`, your `hostname.datetime.trace.json` file has the good stuff.\r\n\r\nAdditionally, this opens up other tools like [pwmetrics](https://github.com/paulirish/pwmetrics) to consume the metrics easier without [so much reinterpretation](https://github.com/paulirish/pwmetrics/blob/master/lib/metrics.js) of the audit results. cc @denar90 \r\n\r\n","created_at":"2017-01-10T06:57:19Z","updated_at":"2017-01-12T00:49:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"092c7aa5694234d0518f05fbb4d6db0c794b9af1","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/1446/commits","review_comments_url":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/1446/comments","review_comment_url":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleChrome/lighthouse/issues/1446/comments","statuses_url":"https://api.github.com/repos/GoogleChrome/lighthouse/statuses/9de452e2b08210dcc42eaeaa24411f86a5768c6a","head":{"label":"GoogleChrome:exportmetricstotrace","ref":"exportmetricstotrace","sha":"9de452e2b08210dcc42eaeaa24411f86a5768c6a","user":{"login":"GoogleChrome","id":1778935,"avatar_url":"https://avatars.githubusercontent.com/u/1778935?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleChrome","html_url":"https://github.com/GoogleChrome","followers_url":"https://api.github.com/users/GoogleChrome/followers","following_url":"https://api.github.com/users/GoogleChrome/following{/other_user}","gists_url":"https://api.github.com/users/GoogleChrome/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleChrome/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleChrome/subscriptions","organizations_url":"https://api.github.com/users/GoogleChrome/orgs","repos_url":"https://api.github.com/users/GoogleChrome/repos","events_url":"https://api.github.com/users/GoogleChrome/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleChrome/received_events","type":"Organization","site_admin":false},"repo":{"id":53370988,"name":"lighthouse","full_name":"GoogleChrome/lighthouse","owner":{"login":"GoogleChrome","id":1778935,"avatar_url":"https://avatars.githubusercontent.com/u/1778935?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleChrome","html_url":"https://github.com/GoogleChrome","followers_url":"https://api.github.com/users/GoogleChrome/followers","following_url":"https://api.github.com/users/GoogleChrome/following{/other_user}","gists_url":"https://api.github.com/users/GoogleChrome/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleChrome/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleChrome/subscriptions","organizations_url":"https://api.github.com/users/GoogleChrome/orgs","repos_url":"https://api.github.com/users/GoogleChrome/repos","events_url":"https://api.github.com/users/GoogleChrome/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleChrome/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GoogleChrome/lighthouse","description":"Auditing, performance metrics, and best practices for Progressive Web Apps","fork":false,"url":"https://api.github.com/repos/GoogleChrome/lighthouse","forks_url":"https://api.github.com/repos/GoogleChrome/lighthouse/forks","keys_url":"https://api.github.com/repos/GoogleChrome/lighthouse/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleChrome/lighthouse/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleChrome/lighthouse/teams","hooks_url":"https://api.github.com/repos/GoogleChrome/lighthouse/hooks","issue_events_url":"https://api.github.com/repos/GoogleChrome/lighthouse/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleChrome/lighthouse/events","assignees_url":"https://api.github.com/repos/GoogleChrome/lighthouse/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleChrome/lighthouse/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleChrome/lighthouse/tags","blobs_url":"https://api.github.com/repos/GoogleChrome/lighthouse/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleChrome/lighthouse/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleChrome/lighthouse/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleChrome/lighthouse/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleChrome/lighthouse/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleChrome/lighthouse/languages","stargazers_url":"https://api.github.com/repos/GoogleChrome/lighthouse/stargazers","contributors_url":"https://api.github.com/repos/GoogleChrome/lighthouse/contributors","subscribers_url":"https://api.github.com/repos/GoogleChrome/lighthouse/subscribers","subscription_url":"https://api.github.com/repos/GoogleChrome/lighthouse/subscription","commits_url":"https://api.github.com/repos/GoogleChrome/lighthouse/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleChrome/lighthouse/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleChrome/lighthouse/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleChrome/lighthouse/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleChrome/lighthouse/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleChrome/lighthouse/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleChrome/lighthouse/merges","archive_url":"https://api.github.com/repos/GoogleChrome/lighthouse/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleChrome/lighthouse/downloads","issues_url":"https://api.github.com/repos/GoogleChrome/lighthouse/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleChrome/lighthouse/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleChrome/lighthouse/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleChrome/lighthouse/labels{/name}","releases_url":"https://api.github.com/repos/GoogleChrome/lighthouse/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleChrome/lighthouse/deployments","created_at":"2016-03-08T01:03:11Z","updated_at":"2017-01-12T00:06:00Z","pushed_at":"2017-01-12T00:13:29Z","git_url":"git://github.com/GoogleChrome/lighthouse.git","ssh_url":"git@github.com:GoogleChrome/lighthouse.git","clone_url":"https://github.com/GoogleChrome/lighthouse.git","svn_url":"https://github.com/GoogleChrome/lighthouse","homepage":"","size":9725,"stargazers_count":6463,"watchers_count":6463,"language":"JavaScript","has_issues":true,"has_downloads":false,"has_wiki":false,"has_pages":true,"forks_count":234,"mirror_url":null,"open_issues_count":169,"forks":234,"open_issues":169,"watchers":6463,"default_branch":"master"}},"base":{"label":"GoogleChrome:master","ref":"master","sha":"929d0a81b0d2788b4c82fcff85527f7a79271536","user":{"login":"GoogleChrome","id":1778935,"avatar_url":"https://avatars.githubusercontent.com/u/1778935?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleChrome","html_url":"https://github.com/GoogleChrome","followers_url":"https://api.github.com/users/GoogleChrome/followers","following_url":"https://api.github.com/users/GoogleChrome/following{/other_user}","gists_url":"https://api.github.com/users/GoogleChrome/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleChrome/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleChrome/subscriptions","organizations_url":"https://api.github.com/users/GoogleChrome/orgs","repos_url":"https://api.github.com/users/GoogleChrome/repos","events_url":"https://api.github.com/users/GoogleChrome/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleChrome/received_events","type":"Organization","site_admin":false},"repo":{"id":53370988,"name":"lighthouse","full_name":"GoogleChrome/lighthouse","owner":{"login":"GoogleChrome","id":1778935,"avatar_url":"https://avatars.githubusercontent.com/u/1778935?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleChrome","html_url":"https://github.com/GoogleChrome","followers_url":"https://api.github.com/users/GoogleChrome/followers","following_url":"https://api.github.com/users/GoogleChrome/following{/other_user}","gists_url":"https://api.github.com/users/GoogleChrome/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleChrome/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleChrome/subscriptions","organizations_url":"https://api.github.com/users/GoogleChrome/orgs","repos_url":"https://api.github.com/users/GoogleChrome/repos","events_url":"https://api.github.com/users/GoogleChrome/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleChrome/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GoogleChrome/lighthouse","description":"Auditing, performance metrics, and best practices for Progressive Web Apps","fork":false,"url":"https://api.github.com/repos/GoogleChrome/lighthouse","forks_url":"https://api.github.com/repos/GoogleChrome/lighthouse/forks","keys_url":"https://api.github.com/repos/GoogleChrome/lighthouse/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleChrome/lighthouse/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleChrome/lighthouse/teams","hooks_url":"https://api.github.com/repos/GoogleChrome/lighthouse/hooks","issue_events_url":"https://api.github.com/repos/GoogleChrome/lighthouse/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleChrome/lighthouse/events","assignees_url":"https://api.github.com/repos/GoogleChrome/lighthouse/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleChrome/lighthouse/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleChrome/lighthouse/tags","blobs_url":"https://api.github.com/repos/GoogleChrome/lighthouse/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleChrome/lighthouse/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleChrome/lighthouse/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleChrome/lighthouse/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleChrome/lighthouse/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleChrome/lighthouse/languages","stargazers_url":"https://api.github.com/repos/GoogleChrome/lighthouse/stargazers","contributors_url":"https://api.github.com/repos/GoogleChrome/lighthouse/contributors","subscribers_url":"https://api.github.com/repos/GoogleChrome/lighthouse/subscribers","subscription_url":"https://api.github.com/repos/GoogleChrome/lighthouse/subscription","commits_url":"https://api.github.com/repos/GoogleChrome/lighthouse/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleChrome/lighthouse/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleChrome/lighthouse/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleChrome/lighthouse/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleChrome/lighthouse/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleChrome/lighthouse/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleChrome/lighthouse/merges","archive_url":"https://api.github.com/repos/GoogleChrome/lighthouse/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleChrome/lighthouse/downloads","issues_url":"https://api.github.com/repos/GoogleChrome/lighthouse/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleChrome/lighthouse/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleChrome/lighthouse/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleChrome/lighthouse/labels{/name}","releases_url":"https://api.github.com/repos/GoogleChrome/lighthouse/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleChrome/lighthouse/deployments","created_at":"2016-03-08T01:03:11Z","updated_at":"2017-01-12T00:06:00Z","pushed_at":"2017-01-12T00:13:29Z","git_url":"git://github.com/GoogleChrome/lighthouse.git","ssh_url":"git@github.com:GoogleChrome/lighthouse.git","clone_url":"https://github.com/GoogleChrome/lighthouse.git","svn_url":"https://github.com/GoogleChrome/lighthouse","homepage":"","size":9725,"stargazers_count":6463,"watchers_count":6463,"language":"JavaScript","has_issues":true,"has_downloads":false,"has_wiki":false,"has_pages":true,"forks_count":234,"mirror_url":null,"open_issues_count":169,"forks":234,"open_issues":169,"watchers":6463,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/1446"},"html":{"href":"https://github.com/GoogleChrome/lighthouse/pull/1446"},"issue":{"href":"https://api.github.com/repos/GoogleChrome/lighthouse/issues/1446"},"comments":{"href":"https://api.github.com/repos/GoogleChrome/lighthouse/issues/1446/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/1446/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleChrome/lighthouse/pulls/1446/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleChrome/lighthouse/statuses/9de452e2b08210dcc42eaeaa24411f86a5768c6a"}}}}
{"actor":{"display_login":"brendankenny"}}