{"action":"created","comment":{"url":"https://api.github.com/repos/angular/angular/pulls/comments/172361389","pull_request_review_id":101364447,"id":172361389,"diff_hunk":"@@ -6,103 +6,195 @@\n  * found in the LICENSE file at https://angular.io/license\n  */\n \n-import {Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, HostBinding, HostListener, Injectable, Input, NgModule, OnDestroy, Optional, Pipe, PipeTransform, QueryList, SimpleChanges, TemplateRef, ViewChild, ViewChildren, ViewContainerRef} from '../../../src/core';\n+import {Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, HostBinding, HostListener, Inject, InjectFlags, Injectable, Injector, Input, NgModule, OnDestroy, Optional, Pipe, PipeTransform, QueryList, SimpleChanges, SkipSelf, TemplateRef, ViewChild, ViewChildren, ViewContainerRef} from '../../../src/core';\n import * as $r3$ from '../../../src/core_render3_private_export';\n import {renderComponent, toHtml} from '../render_util';\n \n+import {pending_pr_22458} from './pending_api_spec';\n+\n+\n+\n /// See: `normative.md`\n describe('injection', () => {\n   type $boolean$ = boolean;\n \n-  it('should inject ChangeDetectorRef', () => {\n-    type $MyComp$ = MyComp;\n-    type $MyApp$ = MyApp;\n+  describe('directives', () => {\n+    // Directives (and Components) should use `directiveInject`\n+    it('should inject ChangeDetectorRef', () => {\n+      type $MyComp$ = MyComp;\n+      type $MyApp$ = MyApp;\n \n-    @Component({selector: 'my-comp', template: `{{ value }}`})\n-    class MyComp {\n-      value: string;\n-      constructor(public cdr: ChangeDetectorRef) { this.value = (cdr.constructor as any).name; }\n+      @Component({selector: 'my-comp', template: `{{ value }}`})\n+      class MyComp {\n+        value: string;\n+        constructor(public cdr: ChangeDetectorRef) { this.value = (cdr.constructor as any).name; }\n \n-      // NORMATIVE\n-      static ngComponentDef = $r3$.ɵdefineComponent({\n-        type: MyComp,\n-        tag: 'my-comp',\n-        factory: function MyComp_Factory() { return new MyComp($r3$.ɵinjectChangeDetectorRef()); },\n-        template: function MyComp_Template(ctx: $MyComp$, cm: $boolean$) {\n-          if (cm) {\n-            $r3$.ɵT(0);\n+        // NORMATIVE\n+        static ngComponentDef = $r3$.ɵdefineComponent({\n+          type: MyComp,\n+          tag: 'my-comp',\n+          factory: function MyComp_Factory() {\n+            return new MyComp($r3$.ɵinjectChangeDetectorRef());\n+          },\n+          template: function MyComp_Template(ctx: $MyComp$, cm: $boolean$) {\n+            if (cm) {\n+              $r3$.ɵT(0);\n+            }\n+            $r3$.ɵt(0, $r3$.ɵb(ctx.value));\n           }\n-          $r3$.ɵt(0, $r3$.ɵb(ctx.value));\n-        }\n-      });\n-      // /NORMATIVE\n-    }\n+        });\n+        // /NORMATIVE\n+      }\n \n-    class MyApp {\n-      static ngComponentDef = $r3$.ɵdefineComponent({\n-        type: MyApp,\n-        tag: 'my-app',\n-        factory: function MyApp_Factory() { return new MyApp(); },\n-        /** <my-comp></my-comp> */\n-        template: function MyApp_Template(ctx: $MyApp$, cm: $boolean$) {\n-          if (cm) {\n-            $r3$.ɵE(0, MyComp);\n-            $r3$.ɵe();\n+      class MyApp {\n+        static ngComponentDef = $r3$.ɵdefineComponent({\n+          type: MyApp,\n+          tag: 'my-app',\n+          factory: function MyApp_Factory() { return new MyApp(); },\n+          /** <my-comp></my-comp> */\n+          template: function MyApp_Template(ctx: $MyApp$, cm: $boolean$) {\n+            if (cm) {\n+              $r3$.ɵE(0, MyComp);\n+              $r3$.ɵe();\n+            }\n+            MyComp.ngComponentDef.h(1, 0);\n+            $r3$.ɵr(1, 0);\n           }\n-          MyComp.ngComponentDef.h(1, 0);\n-          $r3$.ɵr(1, 0);\n-        }\n-      });\n-    }\n+        });\n+      }\n \n-    const app = renderComponent(MyApp);\n-    // ChangeDetectorRef is the token, ViewRef is historically the constructor\n-    expect(toHtml(app)).toEqual('<my-comp>ViewRef</my-comp>');\n-  });\n+      const app = renderComponent(MyApp);\n+      // ChangeDetectorRef is the token, ViewRef is historically the constructor\n+      expect(toHtml(app)).toEqual('<my-comp>ViewRef</my-comp>');\n+    });\n \n-  it('should inject attributes', () => {\n-    type $MyComp$ = MyComp;\n-    type $MyApp$ = MyApp;\n+    it('should inject attributes', () => {\n+      type $MyComp$ = MyComp;\n+      type $MyApp$ = MyApp;\n \n-    @Component({selector: 'my-comp', template: `{{ title }}`})\n-    class MyComp {\n-      constructor(@Attribute('title') public title: string|undefined) {}\n+      @Component({selector: 'my-comp', template: `{{ title }}`})\n+      class MyComp {\n+        constructor(@Attribute('title') public title: string|undefined) {}\n \n-      // NORMATIVE\n-      static ngComponentDef = $r3$.ɵdefineComponent({\n-        type: MyComp,\n-        tag: 'my-comp',\n-        factory: function MyComp_Factory() { return new MyComp($r3$.ɵinjectAttribute('title')); },\n-        template: function MyComp_Template(ctx: $MyComp$, cm: $boolean$) {\n-          if (cm) {\n-            $r3$.ɵT(0);\n+        // NORMATIVE\n+        static ngComponentDef = $r3$.ɵdefineComponent({\n+          type: MyComp,\n+          tag: 'my-comp',\n+          factory: function MyComp_Factory() { return new MyComp($r3$.ɵinjectAttribute('title')); },\n+          template: function MyComp_Template(ctx: $MyComp$, cm: $boolean$) {\n+            if (cm) {\n+              $r3$.ɵT(0);\n+            }\n+            $r3$.ɵt(0, $r3$.ɵb(ctx.title));\n+          }\n+        });\n+        // /NORMATIVE\n+      }\n+\n+      class MyApp {\n+        static ngComponentDef = $r3$.ɵdefineComponent({\n+          type: MyApp,\n+          tag: 'my-app',\n+          factory: function MyApp_Factory() { return new MyApp(); },\n+          /** <my-comp></my-comp> */\n+          template: function MyApp_Template(ctx: $MyApp$, cm: $boolean$) {\n+            if (cm) {\n+              $r3$.ɵE(0, MyComp, e0_attrs);\n+              $r3$.ɵe();\n+            }\n+            MyComp.ngComponentDef.h(1, 0);\n+            $r3$.ɵr(1, 0);\n           }\n-          $r3$.ɵt(0, $r3$.ɵb(ctx.title));\n-        }\n+        });\n+      }\n+      const e0_attrs = ['title', 'WORKS'];\n+      const app = renderComponent(MyApp);\n+      // ChangeDetectorRef is the token, ViewRef is historically the constructor\n+      expect(toHtml(app)).toEqual('<my-comp title=\"WORKS\">WORKS</my-comp>');\n+    });\n+\n+    it('should inject service', () => {\n+      type $MyApp$ = MyApp;\n+\n+      @Injectable()\n+      class ServiceA {\n+        // NORMATIVE\n+        static ngInjectableDef = pending_pr_22458.defineInjectable({\n+          factory: function ServiceA_Factory() { return new ServiceA(); },\n+        });\n+        // /NORMATIVE\n+      }\n+\n+      @Injectable()\n+      class ServiceB {\n+        // NORMATIVE\n+        static ngInjectableDef = pending_pr_22458.defineInjectable({\n+          factory: function ServiceA_Factory() { return new ServiceB(); },\n+        });\n+        // /NORMATIVE\n+      }\n+\n+      @Component({\n+        template: '',\n+        providers: [ServiceA],\n+        viewProviders: [ServiceB],\n+      })\n+      class MyApp {\n+        constructor(serviceA: ServiceA, serviceB: ServiceB, injector: Injector) {}\n+\n+        static ngComponentDef = $r3$.ɵdefineComponent({\n+          type: MyApp,\n+          tag: 'my-app',\n+          factory: function MyApp_Factory() {\n+            return new MyApp(\n+                $r3$.ɵdirectiveInject(ServiceA), $r3$.ɵdirectiveInject(ServiceB),\n+                pending_pr_22458.injectInjector());\n+          },\n+          /**  */\n+          template: function MyApp_Template(ctx: $MyApp$, cm: $boolean$) {\n+            if (cm) {","path":"packages/core/test/render3/compiler_canonical/injection_spec.ts","position":206,"original_position":206,"commit_id":"2bea2cd8d2dfbe346628e0bf5665532b48c23796","original_commit_id":"2bea2cd8d2dfbe346628e0bf5665532b48c23796","user":{"login":"chuckjaz","id":372013,"avatar_url":"https://avatars1.githubusercontent.com/u/372013?v=4","gravatar_id":"","url":"https://api.github.com/users/chuckjaz","html_url":"https://github.com/chuckjaz","followers_url":"https://api.github.com/users/chuckjaz/followers","following_url":"https://api.github.com/users/chuckjaz/following{/other_user}","gists_url":"https://api.github.com/users/chuckjaz/gists{/gist_id}","starred_url":"https://api.github.com/users/chuckjaz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chuckjaz/subscriptions","organizations_url":"https://api.github.com/users/chuckjaz/orgs","repos_url":"https://api.github.com/users/chuckjaz/repos","events_url":"https://api.github.com/users/chuckjaz/events{/privacy}","received_events_url":"https://api.github.com/users/chuckjaz/received_events","type":"User","site_admin":false},"body":"If there is nothing to do in creation mode of a template the `if` is elided.","created_at":"2018-03-05T23:13:06Z","updated_at":"2018-03-05T23:18:35Z","html_url":"https://github.com/angular/angular/pull/22595#discussion_r172361389","pull_request_url":"https://api.github.com/repos/angular/angular/pulls/22595","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/angular/angular/pulls/comments/172361389"},"html":{"href":"https://github.com/angular/angular/pull/22595#discussion_r172361389"},"pull_request":{"href":"https://api.github.com/repos/angular/angular/pulls/22595"}}},"pull_request":{"url":"https://api.github.com/repos/angular/angular/pulls/22595","id":172999623,"html_url":"https://github.com/angular/angular/pull/22595","diff_url":"https://github.com/angular/angular/pull/22595.diff","patch_url":"https://github.com/angular/angular/pull/22595.patch","issue_url":"https://api.github.com/repos/angular/angular/issues/22595","number":22595,"state":"open","locked":false,"title":"test(ivy): add injection canonical specs","user":{"login":"mhevery","id":111951,"avatar_url":"https://avatars0.githubusercontent.com/u/111951?v=4","gravatar_id":"","url":"https://api.github.com/users/mhevery","html_url":"https://github.com/mhevery","followers_url":"https://api.github.com/users/mhevery/followers","following_url":"https://api.github.com/users/mhevery/following{/other_user}","gists_url":"https://api.github.com/users/mhevery/gists{/gist_id}","starred_url":"https://api.github.com/users/mhevery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhevery/subscriptions","organizations_url":"https://api.github.com/users/mhevery/orgs","repos_url":"https://api.github.com/users/mhevery/repos","events_url":"https://api.github.com/users/mhevery/events{/privacy}","received_events_url":"https://api.github.com/users/mhevery/received_events","type":"User","site_admin":false},"body":"## PR Checklist\r\nPlease check if your PR fulfills the following requirements:\r\n\r\n- [ ] The commit message follows our guidelines: https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [ ] Docs have been added / updated (for bug fixes / features)\r\n\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n\r\n<!-- Please check the one that applies to this PR using \"x\". -->\r\n```\r\n[ ] Bugfix\r\n[ ] Feature\r\n[ ] Code style update (formatting, local variables)\r\n[ ] Refactoring (no functional changes, no api changes)\r\n[ ] Build related changes\r\n[ ] CI related changes\r\n[ ] Documentation content changes\r\n[ ] angular.io application / infrastructure changes\r\n[ ] Other... Please describe:\r\n```\r\n\r\n## What is the current behavior?\r\n<!-- Please describe the current behavior that you are modifying, or link to a relevant issue. -->\r\n\r\nIssue Number: N/A\r\n\r\n\r\n## What is the new behavior?\r\n\r\n\r\n## Does this PR introduce a breaking change?\r\n```\r\n[ ] Yes\r\n[ ] No\r\n```\r\n\r\n<!-- If this PR contains a breaking change, please describe the impact and migration path for existing applications below. -->\r\n\r\n\r\n## Other information\r\n","created_at":"2018-03-05T22:03:10Z","updated_at":"2018-03-05T23:18:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4d15ecc542513b4d5e2229ddcfc40760324e731d","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":149476251,"url":"https://api.github.com/repos/angular/angular/labels/cla:%20yes","name":"cla: yes","color":"009800","default":false},{"id":799860804,"url":"https://api.github.com/repos/angular/angular/labels/comp:%20ivy","name":"comp: ivy","color":"c5def5","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/angular/angular/pulls/22595/commits","review_comments_url":"https://api.github.com/repos/angular/angular/pulls/22595/comments","review_comment_url":"https://api.github.com/repos/angular/angular/pulls/comments{/number}","comments_url":"https://api.github.com/repos/angular/angular/issues/22595/comments","statuses_url":"https://api.github.com/repos/angular/angular/statuses/2bea2cd8d2dfbe346628e0bf5665532b48c23796","head":{"label":"mhevery:spec_inject","ref":"spec_inject","sha":"2bea2cd8d2dfbe346628e0bf5665532b48c23796","user":{"login":"mhevery","id":111951,"avatar_url":"https://avatars0.githubusercontent.com/u/111951?v=4","gravatar_id":"","url":"https://api.github.com/users/mhevery","html_url":"https://github.com/mhevery","followers_url":"https://api.github.com/users/mhevery/followers","following_url":"https://api.github.com/users/mhevery/following{/other_user}","gists_url":"https://api.github.com/users/mhevery/gists{/gist_id}","starred_url":"https://api.github.com/users/mhevery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhevery/subscriptions","organizations_url":"https://api.github.com/users/mhevery/orgs","repos_url":"https://api.github.com/users/mhevery/repos","events_url":"https://api.github.com/users/mhevery/events{/privacy}","received_events_url":"https://api.github.com/users/mhevery/received_events","type":"User","site_admin":false},"repo":{"id":24658749,"name":"angular","full_name":"mhevery/angular","owner":{"login":"mhevery","id":111951,"avatar_url":"https://avatars0.githubusercontent.com/u/111951?v=4","gravatar_id":"","url":"https://api.github.com/users/mhevery","html_url":"https://github.com/mhevery","followers_url":"https://api.github.com/users/mhevery/followers","following_url":"https://api.github.com/users/mhevery/following{/other_user}","gists_url":"https://api.github.com/users/mhevery/gists{/gist_id}","starred_url":"https://api.github.com/users/mhevery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhevery/subscriptions","organizations_url":"https://api.github.com/users/mhevery/orgs","repos_url":"https://api.github.com/users/mhevery/repos","events_url":"https://api.github.com/users/mhevery/events{/privacy}","received_events_url":"https://api.github.com/users/mhevery/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mhevery/angular","description":null,"fork":true,"url":"https://api.github.com/repos/mhevery/angular","forks_url":"https://api.github.com/repos/mhevery/angular/forks","keys_url":"https://api.github.com/repos/mhevery/angular/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mhevery/angular/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mhevery/angular/teams","hooks_url":"https://api.github.com/repos/mhevery/angular/hooks","issue_events_url":"https://api.github.com/repos/mhevery/angular/issues/events{/number}","events_url":"https://api.github.com/repos/mhevery/angular/events","assignees_url":"https://api.github.com/repos/mhevery/angular/assignees{/user}","branches_url":"https://api.github.com/repos/mhevery/angular/branches{/branch}","tags_url":"https://api.github.com/repos/mhevery/angular/tags","blobs_url":"https://api.github.com/repos/mhevery/angular/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mhevery/angular/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mhevery/angular/git/refs{/sha}","trees_url":"https://api.github.com/repos/mhevery/angular/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mhevery/angular/statuses/{sha}","languages_url":"https://api.github.com/repos/mhevery/angular/languages","stargazers_url":"https://api.github.com/repos/mhevery/angular/stargazers","contributors_url":"https://api.github.com/repos/mhevery/angular/contributors","subscribers_url":"https://api.github.com/repos/mhevery/angular/subscribers","subscription_url":"https://api.github.com/repos/mhevery/angular/subscription","commits_url":"https://api.github.com/repos/mhevery/angular/commits{/sha}","git_commits_url":"https://api.github.com/repos/mhevery/angular/git/commits{/sha}","comments_url":"https://api.github.com/repos/mhevery/angular/comments{/number}","issue_comment_url":"https://api.github.com/repos/mhevery/angular/issues/comments{/number}","contents_url":"https://api.github.com/repos/mhevery/angular/contents/{+path}","compare_url":"https://api.github.com/repos/mhevery/angular/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mhevery/angular/merges","archive_url":"https://api.github.com/repos/mhevery/angular/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mhevery/angular/downloads","issues_url":"https://api.github.com/repos/mhevery/angular/issues{/number}","pulls_url":"https://api.github.com/repos/mhevery/angular/pulls{/number}","milestones_url":"https://api.github.com/repos/mhevery/angular/milestones{/number}","notifications_url":"https://api.github.com/repos/mhevery/angular/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mhevery/angular/labels{/name}","releases_url":"https://api.github.com/repos/mhevery/angular/releases{/id}","deployments_url":"https://api.github.com/repos/mhevery/angular/deployments","created_at":"2014-09-30T22:59:23Z","updated_at":"2017-12-14T12:35:03Z","pushed_at":"2018-03-05T23:04:22Z","git_url":"git://github.com/mhevery/angular.git","ssh_url":"git@github.com:mhevery/angular.git","clone_url":"https://github.com/mhevery/angular.git","svn_url":"https://github.com/mhevery/angular","homepage":null,"size":72347,"stargazers_count":10,"watchers_count":10,"language":"TypeScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":0,"open_issues":0,"watchers":10,"default_branch":"master"}},"base":{"label":"angular:master","ref":"master","sha":"2c2b62f45f29e7658028d85be5a26db812c0525d","user":{"login":"angular","id":139426,"avatar_url":"https://avatars3.githubusercontent.com/u/139426?v=4","gravatar_id":"","url":"https://api.github.com/users/angular","html_url":"https://github.com/angular","followers_url":"https://api.github.com/users/angular/followers","following_url":"https://api.github.com/users/angular/following{/other_user}","gists_url":"https://api.github.com/users/angular/gists{/gist_id}","starred_url":"https://api.github.com/users/angular/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/angular/subscriptions","organizations_url":"https://api.github.com/users/angular/orgs","repos_url":"https://api.github.com/users/angular/repos","events_url":"https://api.github.com/users/angular/events{/privacy}","received_events_url":"https://api.github.com/users/angular/received_events","type":"Organization","site_admin":false},"repo":{"id":24195339,"name":"angular","full_name":"angular/angular","owner":{"login":"angular","id":139426,"avatar_url":"https://avatars3.githubusercontent.com/u/139426?v=4","gravatar_id":"","url":"https://api.github.com/users/angular","html_url":"https://github.com/angular","followers_url":"https://api.github.com/users/angular/followers","following_url":"https://api.github.com/users/angular/following{/other_user}","gists_url":"https://api.github.com/users/angular/gists{/gist_id}","starred_url":"https://api.github.com/users/angular/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/angular/subscriptions","organizations_url":"https://api.github.com/users/angular/orgs","repos_url":"https://api.github.com/users/angular/repos","events_url":"https://api.github.com/users/angular/events{/privacy}","received_events_url":"https://api.github.com/users/angular/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/angular/angular","description":"One framework. Mobile & desktop.","fork":false,"url":"https://api.github.com/repos/angular/angular","forks_url":"https://api.github.com/repos/angular/angular/forks","keys_url":"https://api.github.com/repos/angular/angular/keys{/key_id}","collaborators_url":"https://api.github.com/repos/angular/angular/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/angular/angular/teams","hooks_url":"https://api.github.com/repos/angular/angular/hooks","issue_events_url":"https://api.github.com/repos/angular/angular/issues/events{/number}","events_url":"https://api.github.com/repos/angular/angular/events","assignees_url":"https://api.github.com/repos/angular/angular/assignees{/user}","branches_url":"https://api.github.com/repos/angular/angular/branches{/branch}","tags_url":"https://api.github.com/repos/angular/angular/tags","blobs_url":"https://api.github.com/repos/angular/angular/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/angular/angular/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/angular/angular/git/refs{/sha}","trees_url":"https://api.github.com/repos/angular/angular/git/trees{/sha}","statuses_url":"https://api.github.com/repos/angular/angular/statuses/{sha}","languages_url":"https://api.github.com/repos/angular/angular/languages","stargazers_url":"https://api.github.com/repos/angular/angular/stargazers","contributors_url":"https://api.github.com/repos/angular/angular/contributors","subscribers_url":"https://api.github.com/repos/angular/angular/subscribers","subscription_url":"https://api.github.com/repos/angular/angular/subscription","commits_url":"https://api.github.com/repos/angular/angular/commits{/sha}","git_commits_url":"https://api.github.com/repos/angular/angular/git/commits{/sha}","comments_url":"https://api.github.com/repos/angular/angular/comments{/number}","issue_comment_url":"https://api.github.com/repos/angular/angular/issues/comments{/number}","contents_url":"https://api.github.com/repos/angular/angular/contents/{+path}","compare_url":"https://api.github.com/repos/angular/angular/compare/{base}...{head}","merges_url":"https://api.github.com/repos/angular/angular/merges","archive_url":"https://api.github.com/repos/angular/angular/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/angular/angular/downloads","issues_url":"https://api.github.com/repos/angular/angular/issues{/number}","pulls_url":"https://api.github.com/repos/angular/angular/pulls{/number}","milestones_url":"https://api.github.com/repos/angular/angular/milestones{/number}","notifications_url":"https://api.github.com/repos/angular/angular/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/angular/angular/labels{/name}","releases_url":"https://api.github.com/repos/angular/angular/releases{/id}","deployments_url":"https://api.github.com/repos/angular/angular/deployments","created_at":"2014-09-18T16:12:01Z","updated_at":"2018-03-05T21:54:12Z","pushed_at":"2018-03-05T23:04:26Z","git_url":"git://github.com/angular/angular.git","ssh_url":"git@github.com:angular/angular.git","clone_url":"https://github.com/angular/angular.git","svn_url":"https://github.com/angular/angular","homepage":"https://angular.io","size":75139,"stargazers_count":33713,"watchers_count":33713,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":8283,"mirror_url":null,"archived":false,"open_issues_count":2165,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":8283,"open_issues":2165,"watchers":33713,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/angular/angular/pulls/22595"},"html":{"href":"https://github.com/angular/angular/pull/22595"},"issue":{"href":"https://api.github.com/repos/angular/angular/issues/22595"},"comments":{"href":"https://api.github.com/repos/angular/angular/issues/22595/comments"},"review_comments":{"href":"https://api.github.com/repos/angular/angular/pulls/22595/comments"},"review_comment":{"href":"https://api.github.com/repos/angular/angular/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/angular/angular/pulls/22595/commits"},"statuses":{"href":"https://api.github.com/repos/angular/angular/statuses/2bea2cd8d2dfbe346628e0bf5665532b48c23796"}},"author_association":"OWNER"}}
{"actor":{"display_login":"chuckjaz"}}