{"action":"created","comment":{"url":"https://api.github.com/repos/PolymerLabs/polydev/pulls/comments/88027348","pull_request_review_id":8606857,"id":88027348,"diff_hunk":"@@ -0,0 +1,382 @@\n+/**\n+ * @license\n+ * Copyright (c) 2015 The Polymer Project Authors. All rights reserved.\n+ * This code may only be used under the BSD style license found at\n+ * http://polymer.github.io/LICENSE.txt\n+ * The complete set of authors may be found at\n+ * http://polymer.github.io/AUTHORS.txt\n+ * The complete set of contributors may be found at\n+ * http://polymer.github.io/CONTRIBUTORS.txt\n+ * Code distributed by Google as part of the polymer project is also\n+ * subject to an additional IP rights grant found at\n+ * http://polymer.github.io/PATENTS.txt\n+ */\n+\n+/** options passed to document.registerElement */\n+interface RegisterElementOptions {\n+  prototype?: {\n+    createdCallback?: Function;\n+\n+    attachedCallback?: Function;\n+    detachedCallback?: Function;\n+\n+    attributeChangedCallback?: Function;\n+\n+    _propertySetter?: Function;\n+    notifyPath?: Function;\n+  };\n+  extends?: string;\n+}\n+type CustomElementV0Constructor = {\n+  constructor(): HTMLElement\n+};\n+interface Document {\n+  registerElement?(tagName: string, options: RegisterElementOptions):\n+      CustomElementV0Constructor;\n+}\n+interface PolymerSubset {\n+  (): void;\n+  Async?: {\n+    //\n+    run(callback: Function, waitTime: number): void;\n+  };\n+  RenderStatus?: {\n+    //\n+    whenReady(cb: Function): void;\n+  };\n+}\n+interface Window {\n+  _printElementStats(): void;\n+  _getElementMeasures(): ElementMeasurement[];\n+  _summarizeRange(start: number, end: number): void;\n+\n+  customElements?: CustomElementsRegistry;\n+}\n+\n+interface CustomElementsRegistry {\n+  define(tagName: string, constructor: CustomElementV1Constructor):\n+      CustomElementV1Constructor;\n+}\n+\n+interface CustomElementV1Constructor {\n+  new (): V1CustomElement;\n+}\n+\n+interface V1CustomElement extends HTMLElement {\n+  connectedCallback?(): void;\n+  disconnectedCallback?(): void;\n+  attributeChangedCallback?(): void;\n+}\n+\n+interface ElementMeasurement {\n+  tagName: string;\n+  operation: string;\n+  elementId: number|undefined;\n+  duration: number;\n+  start: number;\n+  end: number;\n+}\n+\n+type CallbackName = 'register' | 'created' | 'attached' | 'detached' |\n+    'attributeChanged' | 'data';\n+\n+interface Console {\n+  timeStamp(label: string): void;\n+}\n+\n+(() => {\n+  'use strict';\n+\n+  // No point without the measurement APIs we need (or polyfills thereof).\n+  if (!window.performance || !window.performance.mark ||\n+      !window.performance.measure) {\n+    return;\n+  }\n+\n+  const prefix = '🐰💫 ';\n+\n+  function makeMeasurement<R>(\n+      operation: string, tagName: string, counter: number | null,\n+      cb: () => R): R {\n+    const counterSuffix = counter == null ? '' : ` ${counter}`;\n+    const startMark = `${prefix}start ${operation} ${tagName}${counterSuffix}`;\n+    const endMark = `${prefix}end ${operation} ${tagName}${counterSuffix}`;\n+    const measure = `${prefix}${operation} ${tagName}${counterSuffix}`;\n+\n+    window.performance.mark(\n+        `${prefix}start ${operation} ${tagName}${counterSuffix}`);\n+    try {\n+      return cb();\n+    } finally {\n+      window.performance.mark(endMark);\n+      window.performance.measure(measure, startMark, endMark);\n+    }\n+  };\n+\n+  const idSymbol = Symbol('id');\n+\n+  const originalRegisterElement = document.registerElement;\n+  if (originalRegisterElement) {\n+    const boundRegisterElement: typeof originalRegisterElement =\n+        originalRegisterElement.bind(document);\n+    function wrappedRegisterElement(\n+        tagName: string, options: RegisterElementOptions) {\n+      const maybeProto = options.prototype;\n+      if (!maybeProto) {\n+        return boundRegisterElement(tagName, options);\n+      }\n+      const proto = maybeProto;\n+      let elementCounter = 0;\n+      const originalCreate = proto.createdCallback || (() => undefined);\n+\n+      function wrap(name: string, fullName: string) {\n+        const original = proto[fullName] || (() => undefined);\n+        proto[fullName] = function(this: any) {\n+          const counter: number = this[idSymbol];\n+\n+          return makeMeasurement(\n+              name, tagName, counter, () => original.apply(this, arguments));\n+        };\n+      }\n+\n+      proto.createdCallback = function(this: any) {\n+        const counter = elementCounter++;\n+        this[idSymbol] = counter\n+\n+        const result = makeMeasurement(\n+            'created', tagName, counter, () => originalCreate.apply(this));\n+\n+        const originalPropertySetter = this._propertySetter;\n+        this._propertySetter = function(this: any) {\n+          return makeMeasurement(\n+              'data', tagName, counter,\n+              () => originalPropertySetter.apply(this, arguments));\n+        };\n+        const originalNotifyPath = this.notifyPath;\n+        this.notifyPath = function(this: any) {\n+          return makeMeasurement(\n+              'data', tagName, counter,\n+              () => originalNotifyPath.apply(this, arguments));\n+        };\n+\n+        return result;\n+      };\n+      wrap('connected', 'attachedCallback');\n+      wrap('disconnected', 'detachedCallback');\n+      wrap('attributeChanged', 'attributeChangedCallback');\n+\n+      return makeMeasurement(\n+          'registered', tagName, null,\n+          () => boundRegisterElement(tagName, options));\n+    }\n+    document.registerElement = wrappedRegisterElement;\n+  }\n+\n+  if (window.customElements) {\n+    const originalDefine = window.customElements.define;\n+    const boundDefine: typeof originalDefine =\n+        originalDefine.bind(window.customElements);\n+    let elementCounter = 0;\n+\n+    function wrappedDefineElement(\n+        tagName: string,\n+        constructor: CustomElementV1Constructor): CustomElementV1Constructor {\n+      let wrappedConstructor: CustomElementV1Constructor =\n+          class extends constructor {\n+        constructor() {\n+          const counter = elementCounter++;\n+          const startMark = `${prefix}start created ${tagName} ${counter}`;\n+          const endMark = `${prefix}end created ${tagName} ${counter}`;\n+          const measure = `${prefix}created ${tagName} ${counter}`;\n+\n+          window.performance.mark(startMark);\n+          try {\n+            super();\n+          } finally {\n+            window.performance.mark(endMark);\n+            window.performance.measure(measure, startMark, endMark);","path":"src/document-context/measure-custom-elements.ts","position":197,"original_position":197,"commit_id":"881fdb2a449b2cf260c09b5d78b6339a32eaef20","original_commit_id":"bdfb247d099fea91892d1c23434362ce21e7d9c6","user":{"login":"rictic","id":1659,"avatar_url":"https://avatars.githubusercontent.com/u/1659?v=3","gravatar_id":"","url":"https://api.github.com/users/rictic","html_url":"https://github.com/rictic","followers_url":"https://api.github.com/users/rictic/followers","following_url":"https://api.github.com/users/rictic/following{/other_user}","gists_url":"https://api.github.com/users/rictic/gists{/gist_id}","starred_url":"https://api.github.com/users/rictic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rictic/subscriptions","organizations_url":"https://api.github.com/users/rictic/orgs","repos_url":"https://api.github.com/users/rictic/repos","events_url":"https://api.github.com/users/rictic/events{/privacy}","received_events_url":"https://api.github.com/users/rictic/received_events","type":"User","site_admin":false},"body":"no clear way to ensure that it gets called before the timeline is closed when doing that asynchronously","created_at":"2016-11-15T14:33:09Z","updated_at":"2016-11-15T14:46:25Z","html_url":"https://github.com/PolymerLabs/polydev/pull/35#discussion_r88027348","pull_request_url":"https://api.github.com/repos/PolymerLabs/polydev/pulls/35","_links":{"self":{"href":"https://api.github.com/repos/PolymerLabs/polydev/pulls/comments/88027348"},"html":{"href":"https://github.com/PolymerLabs/polydev/pull/35#discussion_r88027348"},"pull_request":{"href":"https://api.github.com/repos/PolymerLabs/polydev/pulls/35"}}},"pull_request":{"url":"https://api.github.com/repos/PolymerLabs/polydev/pulls/35","id":84418901,"html_url":"https://github.com/PolymerLabs/polydev/pull/35","diff_url":"https://github.com/PolymerLabs/polydev/pull/35.diff","patch_url":"https://github.com/PolymerLabs/polydev/pull/35.patch","issue_url":"https://api.github.com/repos/PolymerLabs/polydev/issues/35","number":35,"state":"open","locked":false,"title":"Revamp polydev around the devtools timeline APIs","user":{"login":"rictic","id":1659,"avatar_url":"https://avatars.githubusercontent.com/u/1659?v=3","gravatar_id":"","url":"https://api.github.com/users/rictic","html_url":"https://github.com/rictic","followers_url":"https://api.github.com/users/rictic/followers","following_url":"https://api.github.com/users/rictic/following{/other_user}","gists_url":"https://api.github.com/users/rictic/gists{/gist_id}","starred_url":"https://api.github.com/users/rictic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rictic/subscriptions","organizations_url":"https://api.github.com/users/rictic/orgs","repos_url":"https://api.github.com/users/rictic/repos","events_url":"https://api.github.com/users/rictic/events{/privacy}","received_events_url":"https://api.github.com/users/rictic/received_events","type":"User","site_admin":false},"body":"Adds:\n- easy visualization of performance impact of custom elements\n  inline with other performance information in browser timeline\n  devtools\n- support for Custom Elements v0\n- tests\n\nRemoves:\n- 'Polymer' panel in devtools.\n  - The data model changed significantly so that code will need\n    to be rewritten significantly.\n  - ... and I kind don't believe in the feature that much.\n    Being able to visualize the impact in the timeline seems\n    superior to aggregate statistics.\n- Async tracking with zones.\n  - I'd like to add this back. The zones API has changed completely,\n    and it uses a decent amount of idiosyncratic terminology without\n    defining any of it. Yay. Just needs some sweat, and this is useful\n    as is.\n","created_at":"2016-09-08T05:59:04Z","updated_at":"2016-11-15T14:46:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4fe8e2048e93f9210ac62e1ea1859cd73c9c2af8","assignee":{"login":"justinfagnani","id":522948,"avatar_url":"https://avatars.githubusercontent.com/u/522948?v=3","gravatar_id":"","url":"https://api.github.com/users/justinfagnani","html_url":"https://github.com/justinfagnani","followers_url":"https://api.github.com/users/justinfagnani/followers","following_url":"https://api.github.com/users/justinfagnani/following{/other_user}","gists_url":"https://api.github.com/users/justinfagnani/gists{/gist_id}","starred_url":"https://api.github.com/users/justinfagnani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinfagnani/subscriptions","organizations_url":"https://api.github.com/users/justinfagnani/orgs","repos_url":"https://api.github.com/users/justinfagnani/repos","events_url":"https://api.github.com/users/justinfagnani/events{/privacy}","received_events_url":"https://api.github.com/users/justinfagnani/received_events","type":"User","site_admin":false},"assignees":[{"login":"justinfagnani","id":522948,"avatar_url":"https://avatars.githubusercontent.com/u/522948?v=3","gravatar_id":"","url":"https://api.github.com/users/justinfagnani","html_url":"https://github.com/justinfagnani","followers_url":"https://api.github.com/users/justinfagnani/followers","following_url":"https://api.github.com/users/justinfagnani/following{/other_user}","gists_url":"https://api.github.com/users/justinfagnani/gists{/gist_id}","starred_url":"https://api.github.com/users/justinfagnani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinfagnani/subscriptions","organizations_url":"https://api.github.com/users/justinfagnani/orgs","repos_url":"https://api.github.com/users/justinfagnani/repos","events_url":"https://api.github.com/users/justinfagnani/events{/privacy}","received_events_url":"https://api.github.com/users/justinfagnani/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/PolymerLabs/polydev/pulls/35/commits","review_comments_url":"https://api.github.com/repos/PolymerLabs/polydev/pulls/35/comments","review_comment_url":"https://api.github.com/repos/PolymerLabs/polydev/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PolymerLabs/polydev/issues/35/comments","statuses_url":"https://api.github.com/repos/PolymerLabs/polydev/statuses/881fdb2a449b2cf260c09b5d78b6339a32eaef20","head":{"label":"PolymerLabs:hacking","ref":"hacking","sha":"881fdb2a449b2cf260c09b5d78b6339a32eaef20","user":{"login":"PolymerLabs","id":5912903,"avatar_url":"https://avatars.githubusercontent.com/u/5912903?v=3","gravatar_id":"","url":"https://api.github.com/users/PolymerLabs","html_url":"https://github.com/PolymerLabs","followers_url":"https://api.github.com/users/PolymerLabs/followers","following_url":"https://api.github.com/users/PolymerLabs/following{/other_user}","gists_url":"https://api.github.com/users/PolymerLabs/gists{/gist_id}","starred_url":"https://api.github.com/users/PolymerLabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PolymerLabs/subscriptions","organizations_url":"https://api.github.com/users/PolymerLabs/orgs","repos_url":"https://api.github.com/users/PolymerLabs/repos","events_url":"https://api.github.com/users/PolymerLabs/events{/privacy}","received_events_url":"https://api.github.com/users/PolymerLabs/received_events","type":"Organization","site_admin":false},"repo":{"id":41890272,"name":"polydev","full_name":"PolymerLabs/polydev","owner":{"login":"PolymerLabs","id":5912903,"avatar_url":"https://avatars.githubusercontent.com/u/5912903?v=3","gravatar_id":"","url":"https://api.github.com/users/PolymerLabs","html_url":"https://github.com/PolymerLabs","followers_url":"https://api.github.com/users/PolymerLabs/followers","following_url":"https://api.github.com/users/PolymerLabs/following{/other_user}","gists_url":"https://api.github.com/users/PolymerLabs/gists{/gist_id}","starred_url":"https://api.github.com/users/PolymerLabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PolymerLabs/subscriptions","organizations_url":"https://api.github.com/users/PolymerLabs/orgs","repos_url":"https://api.github.com/users/PolymerLabs/repos","events_url":"https://api.github.com/users/PolymerLabs/events{/privacy}","received_events_url":"https://api.github.com/users/PolymerLabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PolymerLabs/polydev","description":"Polymer DevTools Extension","fork":false,"url":"https://api.github.com/repos/PolymerLabs/polydev","forks_url":"https://api.github.com/repos/PolymerLabs/polydev/forks","keys_url":"https://api.github.com/repos/PolymerLabs/polydev/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PolymerLabs/polydev/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PolymerLabs/polydev/teams","hooks_url":"https://api.github.com/repos/PolymerLabs/polydev/hooks","issue_events_url":"https://api.github.com/repos/PolymerLabs/polydev/issues/events{/number}","events_url":"https://api.github.com/repos/PolymerLabs/polydev/events","assignees_url":"https://api.github.com/repos/PolymerLabs/polydev/assignees{/user}","branches_url":"https://api.github.com/repos/PolymerLabs/polydev/branches{/branch}","tags_url":"https://api.github.com/repos/PolymerLabs/polydev/tags","blobs_url":"https://api.github.com/repos/PolymerLabs/polydev/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PolymerLabs/polydev/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PolymerLabs/polydev/git/refs{/sha}","trees_url":"https://api.github.com/repos/PolymerLabs/polydev/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PolymerLabs/polydev/statuses/{sha}","languages_url":"https://api.github.com/repos/PolymerLabs/polydev/languages","stargazers_url":"https://api.github.com/repos/PolymerLabs/polydev/stargazers","contributors_url":"https://api.github.com/repos/PolymerLabs/polydev/contributors","subscribers_url":"https://api.github.com/repos/PolymerLabs/polydev/subscribers","subscription_url":"https://api.github.com/repos/PolymerLabs/polydev/subscription","commits_url":"https://api.github.com/repos/PolymerLabs/polydev/commits{/sha}","git_commits_url":"https://api.github.com/repos/PolymerLabs/polydev/git/commits{/sha}","comments_url":"https://api.github.com/repos/PolymerLabs/polydev/comments{/number}","issue_comment_url":"https://api.github.com/repos/PolymerLabs/polydev/issues/comments{/number}","contents_url":"https://api.github.com/repos/PolymerLabs/polydev/contents/{+path}","compare_url":"https://api.github.com/repos/PolymerLabs/polydev/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PolymerLabs/polydev/merges","archive_url":"https://api.github.com/repos/PolymerLabs/polydev/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PolymerLabs/polydev/downloads","issues_url":"https://api.github.com/repos/PolymerLabs/polydev/issues{/number}","pulls_url":"https://api.github.com/repos/PolymerLabs/polydev/pulls{/number}","milestones_url":"https://api.github.com/repos/PolymerLabs/polydev/milestones{/number}","notifications_url":"https://api.github.com/repos/PolymerLabs/polydev/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PolymerLabs/polydev/labels{/name}","releases_url":"https://api.github.com/repos/PolymerLabs/polydev/releases{/id}","deployments_url":"https://api.github.com/repos/PolymerLabs/polydev/deployments","created_at":"2015-09-04T00:22:54Z","updated_at":"2016-11-15T11:39:06Z","pushed_at":"2016-10-28T19:51:52Z","git_url":"git://github.com/PolymerLabs/polydev.git","ssh_url":"git@github.com:PolymerLabs/polydev.git","clone_url":"https://github.com/PolymerLabs/polydev.git","svn_url":"https://github.com/PolymerLabs/polydev","homepage":"","size":71,"stargazers_count":79,"watchers_count":79,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":6,"mirror_url":null,"open_issues_count":21,"forks":6,"open_issues":21,"watchers":79,"default_branch":"master"}},"base":{"label":"PolymerLabs:master","ref":"master","sha":"88c9a250909d799bb507bfc49dc6a3922f952984","user":{"login":"PolymerLabs","id":5912903,"avatar_url":"https://avatars.githubusercontent.com/u/5912903?v=3","gravatar_id":"","url":"https://api.github.com/users/PolymerLabs","html_url":"https://github.com/PolymerLabs","followers_url":"https://api.github.com/users/PolymerLabs/followers","following_url":"https://api.github.com/users/PolymerLabs/following{/other_user}","gists_url":"https://api.github.com/users/PolymerLabs/gists{/gist_id}","starred_url":"https://api.github.com/users/PolymerLabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PolymerLabs/subscriptions","organizations_url":"https://api.github.com/users/PolymerLabs/orgs","repos_url":"https://api.github.com/users/PolymerLabs/repos","events_url":"https://api.github.com/users/PolymerLabs/events{/privacy}","received_events_url":"https://api.github.com/users/PolymerLabs/received_events","type":"Organization","site_admin":false},"repo":{"id":41890272,"name":"polydev","full_name":"PolymerLabs/polydev","owner":{"login":"PolymerLabs","id":5912903,"avatar_url":"https://avatars.githubusercontent.com/u/5912903?v=3","gravatar_id":"","url":"https://api.github.com/users/PolymerLabs","html_url":"https://github.com/PolymerLabs","followers_url":"https://api.github.com/users/PolymerLabs/followers","following_url":"https://api.github.com/users/PolymerLabs/following{/other_user}","gists_url":"https://api.github.com/users/PolymerLabs/gists{/gist_id}","starred_url":"https://api.github.com/users/PolymerLabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PolymerLabs/subscriptions","organizations_url":"https://api.github.com/users/PolymerLabs/orgs","repos_url":"https://api.github.com/users/PolymerLabs/repos","events_url":"https://api.github.com/users/PolymerLabs/events{/privacy}","received_events_url":"https://api.github.com/users/PolymerLabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PolymerLabs/polydev","description":"Polymer DevTools Extension","fork":false,"url":"https://api.github.com/repos/PolymerLabs/polydev","forks_url":"https://api.github.com/repos/PolymerLabs/polydev/forks","keys_url":"https://api.github.com/repos/PolymerLabs/polydev/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PolymerLabs/polydev/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PolymerLabs/polydev/teams","hooks_url":"https://api.github.com/repos/PolymerLabs/polydev/hooks","issue_events_url":"https://api.github.com/repos/PolymerLabs/polydev/issues/events{/number}","events_url":"https://api.github.com/repos/PolymerLabs/polydev/events","assignees_url":"https://api.github.com/repos/PolymerLabs/polydev/assignees{/user}","branches_url":"https://api.github.com/repos/PolymerLabs/polydev/branches{/branch}","tags_url":"https://api.github.com/repos/PolymerLabs/polydev/tags","blobs_url":"https://api.github.com/repos/PolymerLabs/polydev/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PolymerLabs/polydev/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PolymerLabs/polydev/git/refs{/sha}","trees_url":"https://api.github.com/repos/PolymerLabs/polydev/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PolymerLabs/polydev/statuses/{sha}","languages_url":"https://api.github.com/repos/PolymerLabs/polydev/languages","stargazers_url":"https://api.github.com/repos/PolymerLabs/polydev/stargazers","contributors_url":"https://api.github.com/repos/PolymerLabs/polydev/contributors","subscribers_url":"https://api.github.com/repos/PolymerLabs/polydev/subscribers","subscription_url":"https://api.github.com/repos/PolymerLabs/polydev/subscription","commits_url":"https://api.github.com/repos/PolymerLabs/polydev/commits{/sha}","git_commits_url":"https://api.github.com/repos/PolymerLabs/polydev/git/commits{/sha}","comments_url":"https://api.github.com/repos/PolymerLabs/polydev/comments{/number}","issue_comment_url":"https://api.github.com/repos/PolymerLabs/polydev/issues/comments{/number}","contents_url":"https://api.github.com/repos/PolymerLabs/polydev/contents/{+path}","compare_url":"https://api.github.com/repos/PolymerLabs/polydev/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PolymerLabs/polydev/merges","archive_url":"https://api.github.com/repos/PolymerLabs/polydev/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PolymerLabs/polydev/downloads","issues_url":"https://api.github.com/repos/PolymerLabs/polydev/issues{/number}","pulls_url":"https://api.github.com/repos/PolymerLabs/polydev/pulls{/number}","milestones_url":"https://api.github.com/repos/PolymerLabs/polydev/milestones{/number}","notifications_url":"https://api.github.com/repos/PolymerLabs/polydev/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PolymerLabs/polydev/labels{/name}","releases_url":"https://api.github.com/repos/PolymerLabs/polydev/releases{/id}","deployments_url":"https://api.github.com/repos/PolymerLabs/polydev/deployments","created_at":"2015-09-04T00:22:54Z","updated_at":"2016-11-15T11:39:06Z","pushed_at":"2016-10-28T19:51:52Z","git_url":"git://github.com/PolymerLabs/polydev.git","ssh_url":"git@github.com:PolymerLabs/polydev.git","clone_url":"https://github.com/PolymerLabs/polydev.git","svn_url":"https://github.com/PolymerLabs/polydev","homepage":"","size":71,"stargazers_count":79,"watchers_count":79,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":6,"mirror_url":null,"open_issues_count":21,"forks":6,"open_issues":21,"watchers":79,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/PolymerLabs/polydev/pulls/35"},"html":{"href":"https://github.com/PolymerLabs/polydev/pull/35"},"issue":{"href":"https://api.github.com/repos/PolymerLabs/polydev/issues/35"},"comments":{"href":"https://api.github.com/repos/PolymerLabs/polydev/issues/35/comments"},"review_comments":{"href":"https://api.github.com/repos/PolymerLabs/polydev/pulls/35/comments"},"review_comment":{"href":"https://api.github.com/repos/PolymerLabs/polydev/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PolymerLabs/polydev/pulls/35/commits"},"statuses":{"href":"https://api.github.com/repos/PolymerLabs/polydev/statuses/881fdb2a449b2cf260c09b5d78b6339a32eaef20"}}}}
{"actor":{"display_login":"rictic"}}