{"action":"created","comment":{"url":"https://api.github.com/repos/ampproject/amphtml/pulls/comments/84750675","pull_request_review_id":5506590,"id":84750675,"diff_hunk":"@@ -0,0 +1,454 @@\n+<!doctype html>\n+<html ⚡>\n+<head>\n+  <meta charset=\"utf-8\">\n+  <title>amp-bind</title>\n+  <link rel=\"canonical\" href=\"amps.html\">\n+  <meta name=\"viewport\" content=\"width=device-width,minimum-scale=1,initial-scale=1\">\n+  <link href=\"https://fonts.googleapis.com/css?family=Questrial\" rel=\"stylesheet\" type=\"text/css\">\n+  <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>\n+\n+  <script async src=\"https://cdn.ampproject.org/v0.js\"></script>\n+  <script async custom-element=\"amp-accordion\" src=\"https://cdn.ampproject.org/v0/amp-accordion-0.1.js\"></script>\n+  <script async custom-element=\"amp-bind\" src=\"https://cdn.ampproject.org/v0/amp-bind-0.1.js\"></script>\n+  <script async custom-element=\"amp-carousel\" src=\"https://cdn.ampproject.org/v0/amp-carousel-0.1.js\"></script>\n+  <script async custom-element=\"amp-list\" src=\"https://cdn.ampproject.org/v0/amp-list-0.1.js\"></script>\n+  <script async custom-template=\"amp-mustache\" src=\"https://cdn.ampproject.org/v0/amp-mustache-0.1.js\"></script>\n+\n+  <style amp-custom>\n+    body {\n+      margin: auto;\n+      font-family: sans-serif;\n+    }\n+    h1.header {\n+      background-color: red;\n+      color: white;\n+      text-align: center;\n+      margin: 0;\n+      padding: 10px;\n+      font-size: 24px;\n+    }\n+    .container {\n+      padding: 0 10px;\n+    }\n+    button.buy {\n+      margin: 20px 0;\n+      width: 100%;\n+      padding: 10px;\n+      background-color: green;\n+      color: white;\n+      font-weight: bold;\n+    }\n+    button[disabled] {\n+      background-color: red;\n+    }\n+    .thumbnails, .color {\n+      margin-top: 10px;\n+    }\n+    .thumbnails amp-img {\n+      border: solid 2px transparent;\n+      padding: 2px;\n+    }\n+    .thumbnails amp-img[selected] {\n+      border: solid 2px gray;\n+    }\n+    .thumbnails amp-img[out-of-stock] {\n+      background-color: red;\n+    }\n+    amp-accordion {\n+      margin-top: 10px;\n+    }\n+    .sizes button {\n+      display: block;\n+      width: 100%;\n+      border: solid 1px gray;\n+      padding: 5px;\n+      background-color: #eee;\n+    }\n+    .change-size {\n+      display: block;\n+      width: 200px;\n+      height: 30px;\n+      padding: 5px;\n+      background-color: #666;\n+      color: white;\n+    }\n+    button[hidden] {\n+      display: none;\n+    }\n+    p[hidden] {\n+      display:none;\n+    }\n+  </style>\n+</head>\n+\n+<body>\n+  <h1 class=\"header\">AMPWEAR</h1>\n+  <div class=\"container\">\n+    <h2>MEN'S COTTON SHORT SLEEVE T-SHIRT</h2>\n+\n+    <amp-bind-dataset layout=nodisplay>\n+      <script type=\"application/json\">\n+        {\n+          \"items\": [\n+            {\n+              \"id\": \"0\",\n+              \"name\": \"09 BLACK\",\n+              \"image\": \"./shirts/black.jpeg\",\n+              \"sizes\": [\"S\", \"L\"]\n+            },\n+            {\n+              \"id\": \"1\",\n+              \"name\": \"34 BROWN\",\n+              \"image\": \"./shirts/brown.jpeg\",\n+              \"sizes\": [\"M\", \"L\"]\n+            },\n+            {\n+              \"id\": \"2\",\n+              \"name\": \"03 GRAY\",\n+              \"image\": \"./shirts/gray.jpeg\",\n+              \"sizes\": [\"S\"]\n+            },\n+            {\n+              \"id\": \"3\",\n+              \"name\": \"69 NAVY\",\n+              \"image\": \"./shirts/navy.jpeg\",\n+              \"sizes\": [\"S\", \"L\"]\n+            },\n+            {\n+              \"id\": \"4\",\n+              \"name\": \"19 WINE\",\n+              \"image\": \"./shirts/wine.jpeg\",\n+              \"sizes\": []\n+            },\n+            {\n+              \"id\": \"5\",\n+              \"name\": \"61 BLUE\",\n+              \"image\": \"./shirts/blue.jpeg\",\n+              \"sizes\": [\"L\"]\n+            },\n+            {\n+              \"id\": \"6\",\n+              \"name\": \"59 DARK GREEN\",\n+              \"image\": \"./shirts/dark-green.jpeg\",\n+              \"sizes\": [\"S\"]\n+            },\n+            {\n+              \"id\": \"7\",\n+              \"name\": \"02 LIGHT GRAY\",\n+              \"image\": \"./shirts/light-gray.jpeg\",\n+              \"sizes\": [\"S\", \"M\", \"L\"]\n+            },\n+            {\n+              \"id\": \"8\",\n+              \"name\": \"00 WHITE\",\n+              \"image\": \"./shirts/white.jpeg\",\n+              \"sizes\": []\n+            }\n+          ]\n+        }\n+      </script>\n+    </amp-bind-dataset>\n+\n+    <!--\n+    <amp-carousel slide=0 id=\"carousel-1\" width=1 height=1 layout=responsive type=slides controls\n+        bind-attr=\"{slide: selected}\"\n+        on=\"slidechange:setState({selected: ampEventData})\">\n+    -->\n+    <amp-carousel slide=0 id=\"carousel-1\" width=1 height=1 layout=responsive type=slides controls>\n+      <amp-bind-attribute layout=nodisplay","path":"examples/bind-shopping.amp.html","position":159,"original_position":159,"commit_id":"d64eebfeacf6e58c396ff84900397d291842c94c","original_commit_id":"d64eebfeacf6e58c396ff84900397d291842c94c","user":{"login":"choumx","id":20525523,"avatar_url":"https://avatars.githubusercontent.com/u/20525523?v=3","gravatar_id":"","url":"https://api.github.com/users/choumx","html_url":"https://github.com/choumx","followers_url":"https://api.github.com/users/choumx/followers","following_url":"https://api.github.com/users/choumx/following{/other_user}","gists_url":"https://api.github.com/users/choumx/gists{/gist_id}","starred_url":"https://api.github.com/users/choumx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/choumx/subscriptions","organizations_url":"https://api.github.com/users/choumx/orgs","repos_url":"https://api.github.com/users/choumx/repos","events_url":"https://api.github.com/users/choumx/events{/privacy}","received_events_url":"https://api.github.com/users/choumx/received_events","type":"User","site_admin":false},"body":"> What does this \"bind\" do exactly? Changes the selected slide of a carousel?\r\n\r\nYes, it updates the carousel's currently displayed slide when the local state var `selected` changes.","created_at":"2016-10-24T18:22:03Z","updated_at":"2016-10-24T18:59:53Z","html_url":"https://github.com/ampproject/amphtml/pull/5760#discussion_r84750675","pull_request_url":"https://api.github.com/repos/ampproject/amphtml/pulls/5760","_links":{"self":{"href":"https://api.github.com/repos/ampproject/amphtml/pulls/comments/84750675"},"html":{"href":"https://github.com/ampproject/amphtml/pull/5760#discussion_r84750675"},"pull_request":{"href":"https://api.github.com/repos/ampproject/amphtml/pulls/5760"}}},"pull_request":{"url":"https://api.github.com/repos/ampproject/amphtml/pulls/5760","id":90452603,"html_url":"https://github.com/ampproject/amphtml/pull/5760","diff_url":"https://github.com/ampproject/amphtml/pull/5760.diff","patch_url":"https://github.com/ampproject/amphtml/pull/5760.patch","issue_url":"https://api.github.com/repos/ampproject/amphtml/issues/5760","number":5760,"state":"open","locked":false,"title":"DO NOT SUBMIT: Bind syntax proposal","user":{"login":"choumx","id":20525523,"avatar_url":"https://avatars.githubusercontent.com/u/20525523?v=3","gravatar_id":"","url":"https://api.github.com/users/choumx","html_url":"https://github.com/choumx","followers_url":"https://api.github.com/users/choumx/followers","following_url":"https://api.github.com/users/choumx/following{/other_user}","gists_url":"https://api.github.com/users/choumx/gists{/gist_id}","starred_url":"https://api.github.com/users/choumx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/choumx/subscriptions","organizations_url":"https://api.github.com/users/choumx/orgs","repos_url":"https://api.github.com/users/choumx/repos","events_url":"https://api.github.com/users/choumx/events{/privacy}","received_events_url":"https://api.github.com/users/choumx/received_events","type":"User","site_admin":false},"body":"# Bind syntax\r\n\r\nThis PR contains two HTML files that describe a sample e-commerce product page. The sample page contains a hero carousel for the product with color and size options. See [video demo](https://drive.google.com/open?id=0Bxatm4FLOzANaEx2Y0NxVWFsV0k).\r\n\r\n1. **bind-shopping.amp.html**\r\n    - Uses element-per-binding via `<amp-bind-event>`, `<amp-bind-attribute>`, etc. \r\n    - Minified char count: **10,424**\r\n\r\n2. **bind-shopping.proposal.amp.html**\r\n    - Replaces the binding elements with custom attributes `bind-attr`, `bind-class`, etc. \r\n    - Minified char count: **7,945**\r\n\r\n## Proposal\r\n(2) is my proposal. It combines ideas from React and Angular data binding and offers a concise, familiar syntax that's **2479** chars smaller than (1) after minimization.\r\n\r\n**One-way binding**: user actions update the page's local state (a single JSON object), and the state of elements on the page are updated when the local state is updated. \r\n\r\n### Update local state\r\nUpdating local state happens via AMP's existing `on=\"\"` attribute with a new function `setState()` [borrowed from React](https://facebook.github.io/react/docs/react-component.html#setstate):\r\n\r\n> `<button on=\"tap:setState({ foo: 'bar' })\"></button>`\r\n\r\n`setState()` takes an JS object as a parameter and merges it into the local state. This also avoids assignment operator in expressions.\r\n\r\n### Propagating local state updates to elements\r\nAs in Dima's original design, there are three ways an element can react to state updates: textContent, attributes and classes.\r\n\r\n> `<p bind-text=\"Value of foo: {foo}\"></p>`\r\n> `<button bind-attr=\"{someAttribute: foo}\"></button>`\r\n> `<button bind-class=\"{someClass: foo === bar}\"></button>`\r\n\r\n`bind-text` takes a string with expressions embedded in `{}` (string interpolation). The values of `bind-attr` and `bind-class` must be expressions that evaluate to either a string, an array of strings, or an object that maps attribute/class to a string or truthy/falsy (for toggling).\r\n\r\nUsing custom attributes avoids \"flash of unbound content\". Being able to pass an object allows binding multiple attributes or classes in a single `bind-attr` or `bind-class`. This scheme is similar to Angular's [ngClass](https://docs.angularjs.org/api/ng/directive/ngClass).\r\n\r\n**Optional:** We can also add convenience bindings with string interpolation for select attributes, e.g.:\r\n\r\n> `<amp-img bind-src=\"http://foo.com/{bar}\"`></amp-img>\r\n\r\nThis is syntactically nicer than:\r\n\r\n> `<amp-img bind-attr=\"{src: 'http://foo.com/' + bar}\"></amp-img>`\r\n\r\n### Caveats\r\n- This approach requires a one-time DOM scan to detect all bindings. This may have performance implications, but may be fine assuming that digest/evaluations are scheduled after initial layout\r\n- The character count delta could be significantly reduced with better templating, e.g. maybe use `amp-list` for the thumbnails to reduce markup dupe\r\n\r\n### Out of scope (for V1)\r\n- Updating local state with XHRs (`amp-fresh`?)\r\n- Binding to `window` state, e.g. reacting to scroll events or media query expressions\r\n- Combining expressions and actions i.e. `BindAction` (all element updates must first mutate local state)","created_at":"2016-10-21T22:15:28Z","updated_at":"2016-10-24T18:59:54Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8a574b99677dcb74934e71f41dfc0eea0328814b","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ampproject/amphtml/pulls/5760/commits","review_comments_url":"https://api.github.com/repos/ampproject/amphtml/pulls/5760/comments","review_comment_url":"https://api.github.com/repos/ampproject/amphtml/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ampproject/amphtml/issues/5760/comments","statuses_url":"https://api.github.com/repos/ampproject/amphtml/statuses/d64eebfeacf6e58c396ff84900397d291842c94c","head":{"label":"choumx:bind-syntax","ref":"bind-syntax","sha":"d64eebfeacf6e58c396ff84900397d291842c94c","user":{"login":"choumx","id":20525523,"avatar_url":"https://avatars.githubusercontent.com/u/20525523?v=3","gravatar_id":"","url":"https://api.github.com/users/choumx","html_url":"https://github.com/choumx","followers_url":"https://api.github.com/users/choumx/followers","following_url":"https://api.github.com/users/choumx/following{/other_user}","gists_url":"https://api.github.com/users/choumx/gists{/gist_id}","starred_url":"https://api.github.com/users/choumx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/choumx/subscriptions","organizations_url":"https://api.github.com/users/choumx/orgs","repos_url":"https://api.github.com/users/choumx/repos","events_url":"https://api.github.com/users/choumx/events{/privacy}","received_events_url":"https://api.github.com/users/choumx/received_events","type":"User","site_admin":false},"repo":{"id":63805137,"name":"amphtml","full_name":"choumx/amphtml","owner":{"login":"choumx","id":20525523,"avatar_url":"https://avatars.githubusercontent.com/u/20525523?v=3","gravatar_id":"","url":"https://api.github.com/users/choumx","html_url":"https://github.com/choumx","followers_url":"https://api.github.com/users/choumx/followers","following_url":"https://api.github.com/users/choumx/following{/other_user}","gists_url":"https://api.github.com/users/choumx/gists{/gist_id}","starred_url":"https://api.github.com/users/choumx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/choumx/subscriptions","organizations_url":"https://api.github.com/users/choumx/orgs","repos_url":"https://api.github.com/users/choumx/repos","events_url":"https://api.github.com/users/choumx/events{/privacy}","received_events_url":"https://api.github.com/users/choumx/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/choumx/amphtml","description":"AMP HTML source code, samples, and documentation.  See below for more info.","fork":true,"url":"https://api.github.com/repos/choumx/amphtml","forks_url":"https://api.github.com/repos/choumx/amphtml/forks","keys_url":"https://api.github.com/repos/choumx/amphtml/keys{/key_id}","collaborators_url":"https://api.github.com/repos/choumx/amphtml/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/choumx/amphtml/teams","hooks_url":"https://api.github.com/repos/choumx/amphtml/hooks","issue_events_url":"https://api.github.com/repos/choumx/amphtml/issues/events{/number}","events_url":"https://api.github.com/repos/choumx/amphtml/events","assignees_url":"https://api.github.com/repos/choumx/amphtml/assignees{/user}","branches_url":"https://api.github.com/repos/choumx/amphtml/branches{/branch}","tags_url":"https://api.github.com/repos/choumx/amphtml/tags","blobs_url":"https://api.github.com/repos/choumx/amphtml/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/choumx/amphtml/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/choumx/amphtml/git/refs{/sha}","trees_url":"https://api.github.com/repos/choumx/amphtml/git/trees{/sha}","statuses_url":"https://api.github.com/repos/choumx/amphtml/statuses/{sha}","languages_url":"https://api.github.com/repos/choumx/amphtml/languages","stargazers_url":"https://api.github.com/repos/choumx/amphtml/stargazers","contributors_url":"https://api.github.com/repos/choumx/amphtml/contributors","subscribers_url":"https://api.github.com/repos/choumx/amphtml/subscribers","subscription_url":"https://api.github.com/repos/choumx/amphtml/subscription","commits_url":"https://api.github.com/repos/choumx/amphtml/commits{/sha}","git_commits_url":"https://api.github.com/repos/choumx/amphtml/git/commits{/sha}","comments_url":"https://api.github.com/repos/choumx/amphtml/comments{/number}","issue_comment_url":"https://api.github.com/repos/choumx/amphtml/issues/comments{/number}","contents_url":"https://api.github.com/repos/choumx/amphtml/contents/{+path}","compare_url":"https://api.github.com/repos/choumx/amphtml/compare/{base}...{head}","merges_url":"https://api.github.com/repos/choumx/amphtml/merges","archive_url":"https://api.github.com/repos/choumx/amphtml/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/choumx/amphtml/downloads","issues_url":"https://api.github.com/repos/choumx/amphtml/issues{/number}","pulls_url":"https://api.github.com/repos/choumx/amphtml/pulls{/number}","milestones_url":"https://api.github.com/repos/choumx/amphtml/milestones{/number}","notifications_url":"https://api.github.com/repos/choumx/amphtml/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/choumx/amphtml/labels{/name}","releases_url":"https://api.github.com/repos/choumx/amphtml/releases{/id}","deployments_url":"https://api.github.com/repos/choumx/amphtml/deployments","created_at":"2016-07-20T18:33:46Z","updated_at":"2016-07-20T18:33:50Z","pushed_at":"2016-10-24T16:23:46Z","git_url":"git://github.com/choumx/amphtml.git","ssh_url":"git@github.com:choumx/amphtml.git","clone_url":"https://github.com/choumx/amphtml.git","svn_url":"https://github.com/choumx/amphtml","homepage":"https://ampproject.org","size":177738,"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":"ampproject:master","ref":"master","sha":"8772df89e01bdec2df92a30a60f73372985bda53","user":{"login":"ampproject","id":14114390,"avatar_url":"https://avatars.githubusercontent.com/u/14114390?v=3","gravatar_id":"","url":"https://api.github.com/users/ampproject","html_url":"https://github.com/ampproject","followers_url":"https://api.github.com/users/ampproject/followers","following_url":"https://api.github.com/users/ampproject/following{/other_user}","gists_url":"https://api.github.com/users/ampproject/gists{/gist_id}","starred_url":"https://api.github.com/users/ampproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ampproject/subscriptions","organizations_url":"https://api.github.com/users/ampproject/orgs","repos_url":"https://api.github.com/users/ampproject/repos","events_url":"https://api.github.com/users/ampproject/events{/privacy}","received_events_url":"https://api.github.com/users/ampproject/received_events","type":"Organization","site_admin":false},"repo":{"id":41766002,"name":"amphtml","full_name":"ampproject/amphtml","owner":{"login":"ampproject","id":14114390,"avatar_url":"https://avatars.githubusercontent.com/u/14114390?v=3","gravatar_id":"","url":"https://api.github.com/users/ampproject","html_url":"https://github.com/ampproject","followers_url":"https://api.github.com/users/ampproject/followers","following_url":"https://api.github.com/users/ampproject/following{/other_user}","gists_url":"https://api.github.com/users/ampproject/gists{/gist_id}","starred_url":"https://api.github.com/users/ampproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ampproject/subscriptions","organizations_url":"https://api.github.com/users/ampproject/orgs","repos_url":"https://api.github.com/users/ampproject/repos","events_url":"https://api.github.com/users/ampproject/events{/privacy}","received_events_url":"https://api.github.com/users/ampproject/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ampproject/amphtml","description":"AMP HTML source code, samples, and documentation.  See below for more info.","fork":false,"url":"https://api.github.com/repos/ampproject/amphtml","forks_url":"https://api.github.com/repos/ampproject/amphtml/forks","keys_url":"https://api.github.com/repos/ampproject/amphtml/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ampproject/amphtml/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ampproject/amphtml/teams","hooks_url":"https://api.github.com/repos/ampproject/amphtml/hooks","issue_events_url":"https://api.github.com/repos/ampproject/amphtml/issues/events{/number}","events_url":"https://api.github.com/repos/ampproject/amphtml/events","assignees_url":"https://api.github.com/repos/ampproject/amphtml/assignees{/user}","branches_url":"https://api.github.com/repos/ampproject/amphtml/branches{/branch}","tags_url":"https://api.github.com/repos/ampproject/amphtml/tags","blobs_url":"https://api.github.com/repos/ampproject/amphtml/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ampproject/amphtml/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ampproject/amphtml/git/refs{/sha}","trees_url":"https://api.github.com/repos/ampproject/amphtml/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ampproject/amphtml/statuses/{sha}","languages_url":"https://api.github.com/repos/ampproject/amphtml/languages","stargazers_url":"https://api.github.com/repos/ampproject/amphtml/stargazers","contributors_url":"https://api.github.com/repos/ampproject/amphtml/contributors","subscribers_url":"https://api.github.com/repos/ampproject/amphtml/subscribers","subscription_url":"https://api.github.com/repos/ampproject/amphtml/subscription","commits_url":"https://api.github.com/repos/ampproject/amphtml/commits{/sha}","git_commits_url":"https://api.github.com/repos/ampproject/amphtml/git/commits{/sha}","comments_url":"https://api.github.com/repos/ampproject/amphtml/comments{/number}","issue_comment_url":"https://api.github.com/repos/ampproject/amphtml/issues/comments{/number}","contents_url":"https://api.github.com/repos/ampproject/amphtml/contents/{+path}","compare_url":"https://api.github.com/repos/ampproject/amphtml/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ampproject/amphtml/merges","archive_url":"https://api.github.com/repos/ampproject/amphtml/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ampproject/amphtml/downloads","issues_url":"https://api.github.com/repos/ampproject/amphtml/issues{/number}","pulls_url":"https://api.github.com/repos/ampproject/amphtml/pulls{/number}","milestones_url":"https://api.github.com/repos/ampproject/amphtml/milestones{/number}","notifications_url":"https://api.github.com/repos/ampproject/amphtml/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ampproject/amphtml/labels{/name}","releases_url":"https://api.github.com/repos/ampproject/amphtml/releases{/id}","deployments_url":"https://api.github.com/repos/ampproject/amphtml/deployments","created_at":"2015-09-01T22:10:53Z","updated_at":"2016-10-24T18:01:49Z","pushed_at":"2016-10-24T18:41:05Z","git_url":"git://github.com/ampproject/amphtml.git","ssh_url":"git@github.com:ampproject/amphtml.git","clone_url":"https://github.com/ampproject/amphtml.git","svn_url":"https://github.com/ampproject/amphtml","homepage":"https://ampproject.org","size":218903,"stargazers_count":8887,"watchers_count":8887,"language":"JavaScript","has_issues":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":1350,"mirror_url":null,"open_issues_count":911,"forks":1350,"open_issues":911,"watchers":8887,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ampproject/amphtml/pulls/5760"},"html":{"href":"https://github.com/ampproject/amphtml/pull/5760"},"issue":{"href":"https://api.github.com/repos/ampproject/amphtml/issues/5760"},"comments":{"href":"https://api.github.com/repos/ampproject/amphtml/issues/5760/comments"},"review_comments":{"href":"https://api.github.com/repos/ampproject/amphtml/pulls/5760/comments"},"review_comment":{"href":"https://api.github.com/repos/ampproject/amphtml/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ampproject/amphtml/pulls/5760/commits"},"statuses":{"href":"https://api.github.com/repos/ampproject/amphtml/statuses/d64eebfeacf6e58c396ff84900397d291842c94c"}}}}
{"actor":{"display_login":"choumx"}}