{"action":"created","comment":{"url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/comments/240783785","pull_request_review_id":183894019,"id":240783785,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MDc4Mzc4NQ==","diff_hunk":"@@ -0,0 +1,1022 @@\n+- Start Date: (fill me in with today's date, YYYY-MM-DD)\n+- RFC PR: (leave this empty)\n+- Ember Issue: (leave this empty)\n+\n+# Glimmer Components\n+\n+## Summary\n+\n+Glimmer components are a simpler, more ergonomic, and more declarative approach\n+to building components. They represent the sum of multiple years of design and\n+feature work by the community, which stemmed from the original RFCs and\n+discussions surrounding \"angle-bracket components\".\n+\n+This RFC proposes adding Glimmer components to Ember's public API, and making\n+them the default new app experience in Ember Octane.\n+\n+## First, a Bit of History\n+\n+As components became the standard for Single Page Apps (SPAs) several years\n+ago, and the Ember community began adopting them in earnest and converting from\n+Ember 1's primarily MVC oriented approach, there were many small and large\n+issues that cropped up with Ember's component API and usage: `{{curly-bracket}}`\n+syntax felt dated with the introduction of Web Components and other major\n+frameworks; the inability to specify or override HTML attributes led to API\n+explosions; the implicit wrapper element and customization fields (`tagName`,\n+`classNames`, et al.) felt burdensome and made templates difficult to read\n+compared to other frameworks; two way data-binding led to strange, hard to\n+predict data cycles within apps; and so on.\n+\n+From this came the original [Angle Bracket component\n+RFC](https://github.com/emberjs/rfcs/blob/0b32059b3704836e52c906a0ead64ac186c844d8/active/0000-component-unification.md).\n+The idea was simple: switch to the superior `<angle-bracket>` syntax of web\n+components, and solve all the other problems! Seems easy enough, right?\n+\n+As you can imagine, it was _not_ that easy. There was a flurry of discussion on\n+the original RFC, and many ideas were thrown around. This was seen as the _one_\n+chance Ember had to \"fix\" its component API, and the community did not want to\n+get it wrong and lock us into yet _another_ set of painful papercuts. After much\n+debate and lots of back and forth with the design, it was ultimately decided\n+that attempting to redesign components all at once, monolithically, was too\n+much. Instead, the individual ideas from that discussion could be broken out and\n+implemented in isolation, in a backwards compatible way, both incrementally\n+building a new, well thought out component API _and_ laying the groundwork in\n+the framework for future redesigns.\n+\n+Many of the features from these discussions which are core to Glimmer\n+components have already landed in Ember, including: Angle-bracket invocation,\n+named arguments, element modifiers, and component managers.\n+\n+Glimmer components are the final piece of that puzzle. They include the last\n+of the major features that were discussed during the original Angle Brackets\n+RFC, and holistically those features make a much simpler and more ergonomic\n+component API. Taken alone, they are an incremental change. Their individual\n+features aren't _that_ much more than what we currently have in Ember today. But\n+as a whole they represent the culmination of multiple years of design work and\n+discussion by the Ember community, and the collective attention to detail and\n+care of all of our community members.\n+\n+## Terminology\n+\n+* The **Glimmer VM** is the underlying rendering engine which is used by\n+  _Ember.js_ and _Glimmer.js_.\n+* **Glimmer.js** is a thin wrapper on top of the _Glimmer VM_ which exposes a\n+  much simpler API compared to Ember. Historically it has been used to prove out\n+  ideas and implementations before bringing them into Ember via RFC, and has\n+  been used to write applications which don't require the full feature set of\n+  Ember.\n+* **Glimmer components** are a newly proposed component API which draw from the\n+  experimental APIs provided in Glimmer.js, and Ember.js via\n+  [sparkles-component](https://github.com/rwjblue/sparkles-component).\n+* **Classic components** refer to the standard component API at the time of this\n+  RFC, which have been available in Ember in some form since v1.\n+* **Tracked properties** refer to a new method of change tracking which is being\n+  proposed in a separate RFC, parallel to this one.\n+\n+## Motivation\n+\n+Glimmer components are a simpler base component class that encourage template\n+oriented design, thinner class definitions, and functional/composable component\n+design. They are easier to understand in isolation, and require less knowledge\n+of the framework to use effectively.\n+\n+This example shows a component written with the classic component API:\n+\n+```hbs\n+<!-- templates/components/post.hbs -->\n+{{#if (eq this.type 'image'}}\n+  <img src={{@post.imageUrl}} title={{@post.imageTitle}}/>\n+{{/if}}\n+\n+{{@post.text}}\n+```\n+```js\n+// components/post.js\n+export default Component.extend({\n+  tagName: 'section',\n+  classNames: ['post'],\n+  classNameBindings: ['type'],\n+  ariaRole: 'region',\n+\n+  /* Arguments */\n+  post: null,\n+\n+  type: readOnly('post.type'),\n+\n+  didInsertElement() {\n+    if (this.post.type === 'image') {\n+      setupImageOverlay(this.element.querySelector('img'));\n+    }\n+  }\n+});\n+```\n+\n+And here is an equivalent component written with the Glimmer component API:\n+\n+```hbs\n+<!-- templates/components/post.hbs -->\n+<section ...attributes role=\"region\" type={{@post.type}} class=\"post {{@post.type}}\">\n+  {{#if (eq @post.type 'image')}}\n+    <img {{did-render this.didInsertImage}} src={{@post.imageUrl}} title={{@post.imageTitle}} />\n+  {{/if}}\n+\n+  {{@post.text}}\n+</section>\n+```\n+```js\n+// components/post.js\n+export default class PostComponent extends GlimmerComponent {\n+  didInsertImage(element) {\n+    setupImageOverlay(element);\n+  }\n+}\n+```\n+\n+Glimmer components eliminate many of the common paper cuts that cause confusion\n+with classic components, and align more closely with modern template syntax and\n+features.\n+\n+### Outer HTML Semantics\n+\n+The biggest change Glimmer components make is defaulting to outer HTML\n+semantics - What You See Is What You Get, in templates. In the classic component\n+API, components had a implicit wrapper element. Given this component template:\n+\n+```hbs\n+Hello, world!\n+```\n+\n+The output by _default_ would be:\n+\n+```html\n+<!-- OUTPUT -->\n+<div>\n+  Hello, world!\n+</div>\n+```\n+\n+But we can't know that for sure unless we look at the component definition. If\n+we do, we might see that the outer wrapping element is actually a `section`, and\n+it has a `.hello-world` class:\n+\n+```js\n+export default Component.extend({\n+  tagName: 'section',\n+  classNames: ['hello-world']\n+});\n+```\n+```html\n+<!-- OUTPUT -->\n+<section class=\"hello-world\">\n+  Hello, world!\n+</section>\n+```\n+\n+This behavior means that the template for a component is missing crucial\n+information and context. Even for the simplest component, users must check the\n+class definition to know with certainty what the full template of the component\n+is. And unlike bindings, there is no hint to the user that there may be\n+something dynamic that they should check on - without advanced knowledge of\n+Ember's APIs, there is no way of knowing about this behavior.\n+\n+By contrast, Glimmer components have no wrapping outer element. There is no way\n+to define class names, class name bindings, attribute bindings, or any other DOM\n+element values. The template is the single source of truth for the output of a\n+component, and any dynamic values are explicitly stated in it.\n+\n+```hbs\n+<!-- template.hbs -->\n+<section class=\"hello-world\">\n+  Hello, world!\n+</section>\n+```\n+\n+```html\n+<!-- OUTPUT -->\n+<section class=\"hello-world\">\n+  Hello, world!\n+</section>\n+```\n+\n+We can immediately see that this is a static component with no bindings, no\n+dynamic values, and no meaningful state. Even if there was a component\n+definition, we know that it is not in any way affecting the output of this\n+template (though it could be \"side-effecting\" and changing state elsewhere).","path":"text/0000-glimmer-components.md","position":204,"original_position":204,"commit_id":"362007acc640ae2c5458cad1393e8d6b9b8b3010","original_commit_id":"362007acc640ae2c5458cad1393e8d6b9b8b3010","user":{"login":"pzuraq","id":685518,"node_id":"MDQ6VXNlcjY4NTUxOA==","avatar_url":"https://avatars3.githubusercontent.com/u/685518?v=4","gravatar_id":"","url":"https://api.github.com/users/pzuraq","html_url":"https://github.com/pzuraq","followers_url":"https://api.github.com/users/pzuraq/followers","following_url":"https://api.github.com/users/pzuraq/following{/other_user}","gists_url":"https://api.github.com/users/pzuraq/gists{/gist_id}","starred_url":"https://api.github.com/users/pzuraq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pzuraq/subscriptions","organizations_url":"https://api.github.com/users/pzuraq/orgs","repos_url":"https://api.github.com/users/pzuraq/repos","events_url":"https://api.github.com/users/pzuraq/events{/privacy}","received_events_url":"https://api.github.com/users/pzuraq/received_events","type":"User","site_admin":false},"body":"Just being (overly) thorough, I think we can remove it.","created_at":"2018-12-11T20:43:56Z","updated_at":"2018-12-11T20:43:56Z","html_url":"https://github.com/pzuraq/emberjs-rfcs/pull/1#discussion_r240783785","pull_request_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/1","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/comments/240783785"},"html":{"href":"https://github.com/pzuraq/emberjs-rfcs/pull/1#discussion_r240783785"},"pull_request":{"href":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/1"}},"in_reply_to_id":240780143},"pull_request":{"url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/1","id":234855948,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM0ODU1OTQ4","html_url":"https://github.com/pzuraq/emberjs-rfcs/pull/1","diff_url":"https://github.com/pzuraq/emberjs-rfcs/pull/1.diff","patch_url":"https://github.com/pzuraq/emberjs-rfcs/pull/1.patch","issue_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/issues/1","number":1,"state":"open","locked":false,"title":"[WIP] Glimmer Components","user":{"login":"pzuraq","id":685518,"node_id":"MDQ6VXNlcjY4NTUxOA==","avatar_url":"https://avatars3.githubusercontent.com/u/685518?v=4","gravatar_id":"","url":"https://api.github.com/users/pzuraq","html_url":"https://github.com/pzuraq","followers_url":"https://api.github.com/users/pzuraq/followers","following_url":"https://api.github.com/users/pzuraq/following{/other_user}","gists_url":"https://api.github.com/users/pzuraq/gists{/gist_id}","starred_url":"https://api.github.com/users/pzuraq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pzuraq/subscriptions","organizations_url":"https://api.github.com/users/pzuraq/orgs","repos_url":"https://api.github.com/users/pzuraq/repos","events_url":"https://api.github.com/users/pzuraq/events{/privacy}","received_events_url":"https://api.github.com/users/pzuraq/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-11-30T02:55:43Z","updated_at":"2018-12-11T20:43:56Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ad10033e822622e9c83db9ceaec9e66db3447ebe","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/1/commits","review_comments_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/1/comments","review_comment_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/issues/1/comments","statuses_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/statuses/362007acc640ae2c5458cad1393e8d6b9b8b3010","head":{"label":"pzuraq:glimmer-components","ref":"glimmer-components","sha":"362007acc640ae2c5458cad1393e8d6b9b8b3010","user":{"login":"pzuraq","id":685518,"node_id":"MDQ6VXNlcjY4NTUxOA==","avatar_url":"https://avatars3.githubusercontent.com/u/685518?v=4","gravatar_id":"","url":"https://api.github.com/users/pzuraq","html_url":"https://github.com/pzuraq","followers_url":"https://api.github.com/users/pzuraq/followers","following_url":"https://api.github.com/users/pzuraq/following{/other_user}","gists_url":"https://api.github.com/users/pzuraq/gists{/gist_id}","starred_url":"https://api.github.com/users/pzuraq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pzuraq/subscriptions","organizations_url":"https://api.github.com/users/pzuraq/orgs","repos_url":"https://api.github.com/users/pzuraq/repos","events_url":"https://api.github.com/users/pzuraq/events{/privacy}","received_events_url":"https://api.github.com/users/pzuraq/received_events","type":"User","site_admin":false},"repo":{"id":98708887,"node_id":"MDEwOlJlcG9zaXRvcnk5ODcwODg4Nw==","name":"emberjs-rfcs","full_name":"pzuraq/emberjs-rfcs","private":false,"owner":{"login":"pzuraq","id":685518,"node_id":"MDQ6VXNlcjY4NTUxOA==","avatar_url":"https://avatars3.githubusercontent.com/u/685518?v=4","gravatar_id":"","url":"https://api.github.com/users/pzuraq","html_url":"https://github.com/pzuraq","followers_url":"https://api.github.com/users/pzuraq/followers","following_url":"https://api.github.com/users/pzuraq/following{/other_user}","gists_url":"https://api.github.com/users/pzuraq/gists{/gist_id}","starred_url":"https://api.github.com/users/pzuraq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pzuraq/subscriptions","organizations_url":"https://api.github.com/users/pzuraq/orgs","repos_url":"https://api.github.com/users/pzuraq/repos","events_url":"https://api.github.com/users/pzuraq/events{/privacy}","received_events_url":"https://api.github.com/users/pzuraq/received_events","type":"User","site_admin":false},"html_url":"https://github.com/pzuraq/emberjs-rfcs","description":"RFCs for changes to Ember","fork":true,"url":"https://api.github.com/repos/pzuraq/emberjs-rfcs","forks_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/forks","keys_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/teams","hooks_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/hooks","issue_events_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/issues/events{/number}","events_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/events","assignees_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/assignees{/user}","branches_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/branches{/branch}","tags_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/tags","blobs_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/statuses/{sha}","languages_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/languages","stargazers_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/stargazers","contributors_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/contributors","subscribers_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/subscribers","subscription_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/subscription","commits_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/contents/{+path}","compare_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/merges","archive_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/downloads","issues_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/issues{/number}","pulls_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls{/number}","milestones_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/milestones{/number}","notifications_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/labels{/name}","releases_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/releases{/id}","deployments_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/deployments","created_at":"2017-07-29T04:44:44Z","updated_at":"2018-11-30T02:54:59Z","pushed_at":"2018-12-11T06:18:52Z","git_url":"git://github.com/pzuraq/emberjs-rfcs.git","ssh_url":"git@github.com:pzuraq/emberjs-rfcs.git","clone_url":"https://github.com/pzuraq/emberjs-rfcs.git","svn_url":"https://github.com/pzuraq/emberjs-rfcs","homepage":null,"size":816,"stargazers_count":0,"watchers_count":0,"language":"Shell","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":3,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"pzuraq:master","ref":"master","sha":"1a6513f5ac06390093a7a83a87b6351e6f469f7c","user":{"login":"pzuraq","id":685518,"node_id":"MDQ6VXNlcjY4NTUxOA==","avatar_url":"https://avatars3.githubusercontent.com/u/685518?v=4","gravatar_id":"","url":"https://api.github.com/users/pzuraq","html_url":"https://github.com/pzuraq","followers_url":"https://api.github.com/users/pzuraq/followers","following_url":"https://api.github.com/users/pzuraq/following{/other_user}","gists_url":"https://api.github.com/users/pzuraq/gists{/gist_id}","starred_url":"https://api.github.com/users/pzuraq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pzuraq/subscriptions","organizations_url":"https://api.github.com/users/pzuraq/orgs","repos_url":"https://api.github.com/users/pzuraq/repos","events_url":"https://api.github.com/users/pzuraq/events{/privacy}","received_events_url":"https://api.github.com/users/pzuraq/received_events","type":"User","site_admin":false},"repo":{"id":98708887,"node_id":"MDEwOlJlcG9zaXRvcnk5ODcwODg4Nw==","name":"emberjs-rfcs","full_name":"pzuraq/emberjs-rfcs","private":false,"owner":{"login":"pzuraq","id":685518,"node_id":"MDQ6VXNlcjY4NTUxOA==","avatar_url":"https://avatars3.githubusercontent.com/u/685518?v=4","gravatar_id":"","url":"https://api.github.com/users/pzuraq","html_url":"https://github.com/pzuraq","followers_url":"https://api.github.com/users/pzuraq/followers","following_url":"https://api.github.com/users/pzuraq/following{/other_user}","gists_url":"https://api.github.com/users/pzuraq/gists{/gist_id}","starred_url":"https://api.github.com/users/pzuraq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pzuraq/subscriptions","organizations_url":"https://api.github.com/users/pzuraq/orgs","repos_url":"https://api.github.com/users/pzuraq/repos","events_url":"https://api.github.com/users/pzuraq/events{/privacy}","received_events_url":"https://api.github.com/users/pzuraq/received_events","type":"User","site_admin":false},"html_url":"https://github.com/pzuraq/emberjs-rfcs","description":"RFCs for changes to Ember","fork":true,"url":"https://api.github.com/repos/pzuraq/emberjs-rfcs","forks_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/forks","keys_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/teams","hooks_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/hooks","issue_events_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/issues/events{/number}","events_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/events","assignees_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/assignees{/user}","branches_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/branches{/branch}","tags_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/tags","blobs_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/statuses/{sha}","languages_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/languages","stargazers_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/stargazers","contributors_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/contributors","subscribers_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/subscribers","subscription_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/subscription","commits_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/contents/{+path}","compare_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/merges","archive_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/downloads","issues_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/issues{/number}","pulls_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls{/number}","milestones_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/milestones{/number}","notifications_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/labels{/name}","releases_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/releases{/id}","deployments_url":"https://api.github.com/repos/pzuraq/emberjs-rfcs/deployments","created_at":"2017-07-29T04:44:44Z","updated_at":"2018-11-30T02:54:59Z","pushed_at":"2018-12-11T06:18:52Z","git_url":"git://github.com/pzuraq/emberjs-rfcs.git","ssh_url":"git@github.com:pzuraq/emberjs-rfcs.git","clone_url":"https://github.com/pzuraq/emberjs-rfcs.git","svn_url":"https://github.com/pzuraq/emberjs-rfcs","homepage":null,"size":816,"stargazers_count":0,"watchers_count":0,"language":"Shell","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":3,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/1"},"html":{"href":"https://github.com/pzuraq/emberjs-rfcs/pull/1"},"issue":{"href":"https://api.github.com/repos/pzuraq/emberjs-rfcs/issues/1"},"comments":{"href":"https://api.github.com/repos/pzuraq/emberjs-rfcs/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pzuraq/emberjs-rfcs/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/pzuraq/emberjs-rfcs/statuses/362007acc640ae2c5458cad1393e8d6b9b8b3010"}},"author_association":"OWNER"}}
{"actor":{"display_login":"pzuraq"}}