{"action":"created","comment":{"url":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/comments/29985831","id":29985831,"diff_hunk":"@@ -780,68 +780,189 @@ function renderHistogramGraph(hgram) {\n     $(\"#description\").text(hgram.description()).show();\n     $('#histogram').show();\n   }\n+  \n+  // Compute chart data values\n+  var total = hgram.count();\n+  var tooltipLabels = {};\n+  var labels = hgram.map(function (count, start, end, index) {\n+    var label = fmt(start);\n+    tooltipLabels[label] = fmt(count) + \" hits (\" + Math.round(100 * count / total, 2) + \"%) between \" + start + \" and \" + end;\n+    return label;\n+  });\n+  var data = hgram.map(function (count, start, end, index) { return count; });\n+  \n+  // Plot the data using Chartjs\n+  var ctx = document.getElementById(\"histogram\").getContext(\"2d\");\n+  Chart.defaults.global.responsive = true;\n+  Chart.defaults.global.animation = false;\n+  if (gCurrentHistogramPlot !== null) {\n+    gCurrentHistogramPlot.destroy();\n+  }\n+  gCurrentHistogramPlot = new Chart(ctx).Bar({\n+    labels: labels,\n+    datasets: [{\n+      fillColor: \"rgba(151, 187, 205, 0.5)\",\n+      data: data,\n+    }]\n+  }, {\n+    barValueSpacing : 2,\n+    barDatasetSpacing : 0,\n+    barShowStroke: false,\n+    scaleLabel: function(valuesObject) { return fmt(valuesObject.value); },\n+    tooltipFontSize: 10,\n+    tooltipTemplate: function(valuesObject) { return tooltipLabels[valuesObject.label] || valuesObject.label; },\n+  });\n+  \n+  // Assign random colors to make it easy to differentiate between bars\n+  gCurrentHistogramPlot.datasets[0].bars.forEach(function(bar) {\n+    bar.fillColor = \"hsla(\" + Math.floor(Math.random() * 256) + \", 80%, 70%, 0.3)\";\n+  });\n+  gCurrentHistogramPlot.update();\n+}\n \n-  nv.addGraph(function () {\n-    var total = hgram.count();\n-    var vals = hgram.map(function (count, start, end, index) {\n-      return {\n-        x: [start, end],\n-        y: count,\n-        percent: count / total\n-      };\n-    });\n-\n-    var data = [{\n-      key: \"Count\",\n-      values: vals,\n-      color: \"#0000ff\"\n-    }];\n-    var chart = histogramchart().margin({\n-      top: 20,\n-      right: 80,\n-      bottom: 40,\n-      left: 80\n-    });\n-\n-    chart.yAxis.tickFormat(fmt);\n-    chart.xAxis.tickFormat(function (bucket) {\n-      return fmt(bucket[0]);\n-    });\n-\n-    d3.select(\"#histogram\").datum(data).transition().duration(500).call(chart);\n-    nv.utils.windowResize(\n-      function() {\n-        chart.update();\n-      }\n-    );\n-    return chart;\n+var gCurrentHistogramEvolutionPlots = null;\n+var gUserSelectedRange = false;\n+function renderHistogramEvolution(lines, minDate, maxDate) {\n+  var drawnLines = lines.filter(function(line) { return !line.disabled; });\n+  \n+  // Filter out the points that are outside of the time range\n+  var filteredDatasets = drawnLines.map(function (line) {\n+    return {\n+      label: line.key,\n+      strokeColor: line.color,\n+      data: line.values.filter(function(point) { return point.x >= minDate && point.x <= maxDate; }),\n+    };\n+  })\n+  \n+  // Plot the data using Chartjs\n+  if (gCurrentHistogramEvolutionPlots !== null) {\n+    gCurrentHistogramEvolutionPlots.destroy();\n+  }\n+  var ctx = document.getElementById(\"evolution\").getContext(\"2d\");\n+  Chart.defaults.global.responsive = true;\n+  gCurrentHistogramEvolutionPlots = new Chart(ctx).Scatter(filteredDatasets, {\n+    animation: false,\n+    scaleType: \"date\",\n+    scaleLabel: function(valuesObject) { return fmt(valuesObject.value); },\n+    tooltipFontSize: 10,\n+    tooltipTemplate: function(valuesObject) {\n+      return valuesObject.datasetLabel + \" - \" + fmt(valuesObject.y) + \" on \" + valuesObject.argLabel;\n+    },\n+    multiTooltipTemplate: function(valuesObject) {\n+      return valuesObject.datasetLabel + \" - \" + fmt(valuesObject.y) + \" on \" + valuesObject.argLabel;\n+    },\n+    bezierCurveTension: 0.3,\n+    pointDotStrokeWidth: 0,\n+    pointDotRadius: 3,\n   });\n }\n \n-var renderHistogramTime = null;\n-var lastHistogramEvos = null;\n-var _exportHgram = null;\n-var _lastBlobUrl = null;\n+var gPreviousBlobUrl = null;\n // Generate download on mousedown\n $('#export-link').mousedown(function () {\n   if (_lastBlobUrl) {\n-    URL.revokeObjectURL(_lastBlobUrl);\n-    _lastBlobUrl = null;\n+    URL.revokeObjectURL(gPreviousBlobUrl);\n+    gPreviousBlobUrl = null;\n   }\n   var csv = \"start,\\tend,\\tcount\\n\";\n-  csv += _exportHgram.map(function (count, start, end, index) {\n+  csv += gCurrentHistogram.map(function (count, start, end, index) {\n     return [start, end, count].join(\",\\t\");\n   }).join(\"\\n\");\n \n-  _lastBlobUrl = URL.createObjectURL(new Blob([csv]));\n-  $('#export-link')[0].href = _lastBlobUrl;\n-  $('#export-link')[0].download = _exportHgram.measure() + \".csv\";\n-  event('click','download csv', 'download csv');\n+  gPreviousBlobUrl = URL.createObjectURL(new Blob([csv]));\n+  $('#export-link')[0].href = gPreviousBlobUrl;\n+  $('#export-link')[0].download = gCurrentHistogram.measure() + \".csv\";\n+  event('click', 'download csv', 'download csv');\n });\n \n-var hasReportedDateRangeSelectorUsedInThisSession = false;\n+var gHasReportedDateRangeSelectorUsedInThisSession = false;\n+var gDrawTimer = null;\n+function updateRendering(hgramEvo, lines) {\n+  // Filter dates\n+  var dates = hgramEvo.dates();\n+  var start = dates[0], end = dates[dates.length - 1];\n+\n+  // Update the start and end range and update the selection if necessary\n+  var picker = $(\"#dateRange\").data(\"daterangepicker\");\n+  var startMoment = moment(start), endMoment = moment(end);\n+  picker.setOptions({\n+    format: \"MM/DD/YYYY h:mm A\",","path":"src/dashboard.js","position":358,"original_position":358,"commit_id":"6ec139317e3b6c1e84529104fcb23b3710273046","original_commit_id":"6ec139317e3b6c1e84529104fcb23b3710273046","user":{"login":"vdjeric","id":1521786,"avatar_url":"https://avatars.githubusercontent.com/u/1521786?v=3","gravatar_id":"","url":"https://api.github.com/users/vdjeric","html_url":"https://github.com/vdjeric","followers_url":"https://api.github.com/users/vdjeric/followers","following_url":"https://api.github.com/users/vdjeric/following{/other_user}","gists_url":"https://api.github.com/users/vdjeric/gists{/gist_id}","starred_url":"https://api.github.com/users/vdjeric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vdjeric/subscriptions","organizations_url":"https://api.github.com/users/vdjeric/orgs","repos_url":"https://api.github.com/users/vdjeric/repos","events_url":"https://api.github.com/users/vdjeric/events{/privacy}","received_events_url":"https://api.github.com/users/vdjeric/received_events","type":"User","site_admin":false},"body":"I don't think we need time for the picker.. maybe just a tooltip to explain that the range is inclusive\r\nIn particular, the Nightly with buildID \"May 8\" is generated shortly after midnight of May 9th based on Eastern time.. so let's not mention times","created_at":"2015-05-08T23:54:10Z","updated_at":"2015-05-08T23:54:10Z","html_url":"https://github.com/mozilla/telemetry-dashboard/pull/71#discussion_r29985831","pull_request_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/71","_links":{"self":{"href":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/comments/29985831"},"html":{"href":"https://github.com/mozilla/telemetry-dashboard/pull/71#discussion_r29985831"},"pull_request":{"href":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/71"}}},"pull_request":{"url":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/71","id":35030708,"html_url":"https://github.com/mozilla/telemetry-dashboard/pull/71","diff_url":"https://github.com/mozilla/telemetry-dashboard/pull/71.diff","patch_url":"https://github.com/mozilla/telemetry-dashboard/pull/71.patch","issue_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/issues/71","number":71,"state":"open","locked":false,"title":"Replace d3.js with Chart.js and ","user":{"login":"Uberi","id":437196,"avatar_url":"https://avatars.githubusercontent.com/u/437196?v=3","gravatar_id":"","url":"https://api.github.com/users/Uberi","html_url":"https://github.com/Uberi","followers_url":"https://api.github.com/users/Uberi/followers","following_url":"https://api.github.com/users/Uberi/following{/other_user}","gists_url":"https://api.github.com/users/Uberi/gists{/gist_id}","starred_url":"https://api.github.com/users/Uberi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Uberi/subscriptions","organizations_url":"https://api.github.com/users/Uberi/orgs","repos_url":"https://api.github.com/users/Uberi/repos","events_url":"https://api.github.com/users/Uberi/events{/privacy}","received_events_url":"https://api.github.com/users/Uberi/received_events","type":"User","site_admin":false},"body":"* Chartjs results in higher-quality graphs.\r\n    * That means no more overlapping labels in histograms!\r\n    * Multi-tooltips are essentially legends that show up on hovering over the graph - the legend panel on the right is made unnecessary and is removed.\r\n    * Added explicit date selector for graphs.\r\n    * Histogram tooltips are positioned better, right over the bars they correspond to.\r\n* Lighter page overall.\r\n    * Removed d3 entirely.\r\n    * Our custom d3-based graphing addons are no longer needed, which makes the codebase a lot smaller.\r\n* Refactored the updating code and made style a bit more consistent.\r\n\r\nThe commit history is a little messy right now, should I squash them?","created_at":"2015-05-08T17:48:53Z","updated_at":"2015-05-08T23:54:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5357e24cc5fd3def015859f53eb16212b739eaa2","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/71/commits","review_comments_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/71/comments","review_comment_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/issues/71/comments","statuses_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/statuses/6ec139317e3b6c1e84529104fcb23b3710273046","head":{"label":"Uberi:chart-library","ref":"chart-library","sha":"6ec139317e3b6c1e84529104fcb23b3710273046","user":{"login":"Uberi","id":437196,"avatar_url":"https://avatars.githubusercontent.com/u/437196?v=3","gravatar_id":"","url":"https://api.github.com/users/Uberi","html_url":"https://github.com/Uberi","followers_url":"https://api.github.com/users/Uberi/followers","following_url":"https://api.github.com/users/Uberi/following{/other_user}","gists_url":"https://api.github.com/users/Uberi/gists{/gist_id}","starred_url":"https://api.github.com/users/Uberi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Uberi/subscriptions","organizations_url":"https://api.github.com/users/Uberi/orgs","repos_url":"https://api.github.com/users/Uberi/repos","events_url":"https://api.github.com/users/Uberi/events{/privacy}","received_events_url":"https://api.github.com/users/Uberi/received_events","type":"User","site_admin":false},"repo":{"id":35124109,"name":"telemetry-dashboard","full_name":"Uberi/telemetry-dashboard","owner":{"login":"Uberi","id":437196,"avatar_url":"https://avatars.githubusercontent.com/u/437196?v=3","gravatar_id":"","url":"https://api.github.com/users/Uberi","html_url":"https://github.com/Uberi","followers_url":"https://api.github.com/users/Uberi/followers","following_url":"https://api.github.com/users/Uberi/following{/other_user}","gists_url":"https://api.github.com/users/Uberi/gists{/gist_id}","starred_url":"https://api.github.com/users/Uberi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Uberi/subscriptions","organizations_url":"https://api.github.com/users/Uberi/orgs","repos_url":"https://api.github.com/users/Uberi/repos","events_url":"https://api.github.com/users/Uberi/events{/privacy}","received_events_url":"https://api.github.com/users/Uberi/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Uberi/telemetry-dashboard","description":"Web-frontend for aggregated telemetry data","fork":true,"url":"https://api.github.com/repos/Uberi/telemetry-dashboard","forks_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/forks","keys_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/teams","hooks_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/hooks","issue_events_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/issues/events{/number}","events_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/events","assignees_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/assignees{/user}","branches_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/branches{/branch}","tags_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/tags","blobs_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/git/refs{/sha}","trees_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/statuses/{sha}","languages_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/languages","stargazers_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/stargazers","contributors_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/contributors","subscribers_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/subscribers","subscription_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/subscription","commits_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/commits{/sha}","git_commits_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/git/commits{/sha}","comments_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/comments{/number}","issue_comment_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/issues/comments{/number}","contents_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/contents/{+path}","compare_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/merges","archive_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/downloads","issues_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/issues{/number}","pulls_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/pulls{/number}","milestones_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/milestones{/number}","notifications_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/labels{/name}","releases_url":"https://api.github.com/repos/Uberi/telemetry-dashboard/releases{/id}","created_at":"2015-05-05T21:08:18Z","updated_at":"2015-05-05T21:28:11Z","pushed_at":"2015-05-08T18:20:32Z","git_url":"git://github.com/Uberi/telemetry-dashboard.git","ssh_url":"git@github.com:Uberi/telemetry-dashboard.git","clone_url":"https://github.com/Uberi/telemetry-dashboard.git","svn_url":"https://github.com/Uberi/telemetry-dashboard","homepage":"telemetry.mozilla.org","size":3947,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mozilla:master","ref":"master","sha":"717cc9b9ea8383253ebe23ed2a7dd573b52ef942","user":{"login":"mozilla","id":131524,"avatar_url":"https://avatars.githubusercontent.com/u/131524?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"repo":{"id":9757100,"name":"telemetry-dashboard","full_name":"mozilla/telemetry-dashboard","owner":{"login":"mozilla","id":131524,"avatar_url":"https://avatars.githubusercontent.com/u/131524?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mozilla/telemetry-dashboard","description":"Web-frontend for aggregated telemetry data","fork":false,"url":"https://api.github.com/repos/mozilla/telemetry-dashboard","forks_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/forks","keys_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/teams","hooks_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/hooks","issue_events_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/issues/events{/number}","events_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/events","assignees_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/assignees{/user}","branches_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/branches{/branch}","tags_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/tags","blobs_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/git/refs{/sha}","trees_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/statuses/{sha}","languages_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/languages","stargazers_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/stargazers","contributors_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/contributors","subscribers_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/subscribers","subscription_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/subscription","commits_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/commits{/sha}","git_commits_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/git/commits{/sha}","comments_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/comments{/number}","issue_comment_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/issues/comments{/number}","contents_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/contents/{+path}","compare_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/merges","archive_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/downloads","issues_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/issues{/number}","pulls_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls{/number}","milestones_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/milestones{/number}","notifications_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/labels{/name}","releases_url":"https://api.github.com/repos/mozilla/telemetry-dashboard/releases{/id}","created_at":"2013-04-29T20:16:51Z","updated_at":"2015-04-01T17:15:22Z","pushed_at":"2015-05-08T23:21:38Z","git_url":"git://github.com/mozilla/telemetry-dashboard.git","ssh_url":"git@github.com:mozilla/telemetry-dashboard.git","clone_url":"https://github.com/mozilla/telemetry-dashboard.git","svn_url":"https://github.com/mozilla/telemetry-dashboard","homepage":"telemetry.mozilla.org","size":4560,"stargazers_count":10,"watchers_count":10,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":21,"mirror_url":null,"open_issues_count":6,"forks":21,"open_issues":6,"watchers":10,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/71"},"html":{"href":"https://github.com/mozilla/telemetry-dashboard/pull/71"},"issue":{"href":"https://api.github.com/repos/mozilla/telemetry-dashboard/issues/71"},"comments":{"href":"https://api.github.com/repos/mozilla/telemetry-dashboard/issues/71/comments"},"review_comments":{"href":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/71/comments"},"review_comment":{"href":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mozilla/telemetry-dashboard/pulls/71/commits"},"statuses":{"href":"https://api.github.com/repos/mozilla/telemetry-dashboard/statuses/6ec139317e3b6c1e84529104fcb23b3710273046"}}}}