{"action":"created","comment":{"url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/comments/87424905","pull_request_review_id":8038433,"id":87424905,"diff_hunk":"@@ -0,0 +1,167 @@\n+---\n+layout: post\n+title: Why do we have to use @Injectable() in Angular\n+author: cexbrayat\n+tags: [\"Angular 2\", \"Angular\", \"tips\"]\n+description: \"Injectable must be added on services. But do we really need it?\"\n+---\n+\n+If you read about Services in Angular,\n+you'll notice that pretty much every blog post/doc/code sample\n+adds an `@Injectable()` decorator on top of a service class.\n+\n+The thing that you don't know is that\n+it could be pretty much any decorator,\n+and that would still work :).\n+\n+Let's take an example:\n+\n+    @Component({\n+      selector: 'ponyracer-app',\n+      template: '<h1>PonyRacer</h1>'\n+    })\n+    export class PonyRacerAppComponent {\n+      constructor(private appService: AppService) {\n+        console.log(appService);\n+      }\n+    }\n+\n+This is a very simple component,\n+with a dependency on a service `AppService`.\n+The service looks like:\n+\n+    export class AppService {\n+      constructor() {\n+        console.log('new app service');\n+      }\n+    }\n+\n+It does nothing,\n+but if you try it, you'll see that the service is created and injected,\n+despite the fact the decorator `@Injectable()` is not present!\n+\n+Why does that work? Let's check the JavaScript generated from these TypeScript classes:\n+\n+    var AppService = (function () {\n+        function AppService() {\n+          console.log('new app service');\n+        }\n+        return AppService;\n+    }());\n+    exports.AppService = AppService;\n+\n+I skipped a bit of generated code to focus on the interesting part.\n+The class `AppService` generates a pretty simple JavaScript.\n+Let's compare that to the `PonyRacerAppComponent` class:\n+\n+    var PonyRacerAppComponent = (function () {\n+        function PonyRacerAppComponent(appService) {\n+            this.appService = appService;\n+            console.log(appService);\n+        }\n+        PonyRacerAppComponent = __decorate([\n+            core_1.Component({\n+                selector: 'ponyracer-app',\n+                template: '<h1>PonyRacer</h1>'\n+            }),\n+            __metadata('design:paramtypes', [app_service_1.AppService])\n+        ], PonyRacerAppComponent);\n+        return PonyRacerAppComponent;\n+    }());\n+\n+Wow! That's much more code!\n+Indeed, the `@Component()` decorator triggers the generation\n+a few additional metadata,\n+and among these a special one called `design:paramtypes`,\n+referencing the `AppService`, our constructor argument.\n+That's how Angular knows what to inject in our Component, cool!\n+\n+And you noticed that we don't need the `@Injectable()`\n+on the `AppService` for this to work.\n+\n+But let's say that now, our `AppService` has a dependency itself:\n+\n+    export class AppService {\n+      constructor(http: HttpService) {\n+        console.log(http);\n+      }\n+    }\n+\n+If we launch our app again, we'll now have an error:\n+\n+    Error: Can't resolve all parameters for AppService: (?).\n+\n+Hmm... Let's check the generated JS:\n+\n+    var AppService = (function () {\n+        function AppService(http) {\n+            console.log(http);\n+        }\n+        return AppService;\n+    }());\n+    exports.AppService = AppService;\n+\n+Indeed, no metadata were added during the compilation,\n+so Angular does not know what to inject here.\n+\n+If we add the `@Injectable()` decorator, the app works again,\n+and the generated JS looks like:\n+\n+    var AppService = (function () {\n+        function AppService(http) {\n+            console.log(http);\n+        }\n+        AppService = __decorate([\n+            core_1.Injectable(),\n+            __metadata('design:paramtypes', [http_service_1.HttpService])\n+        ], AppService);\n+        return AppService;\n+    }());\n+    exports.AppService = AppService;\n+\n+If we add the decorator, the metadata `design:paramtypes` is added,\n+and the dependency injection can do its job.\n+That's why you have to add the `@Injectable()` decorator\n+on a service if this service has some dependencies itself!\n+\n+But the funny thing is that you could add any decorator.\n+Let's build our own (useless) decorator:\n+\n+    function Foo() {\n+      return (constructor: Function) => console.log(constructor);\n+    }\n+\n+    @Foo()\n+    export class AppService {\n+      constructor(http: HttpService) {\n+        console.log(http);\n+      }\n+    }\n+\n+The `@Foo()` decorator does not do much,\n+but if we check the generated JS code:\n+\n+    var AppService = (function () {\n+        function AppService(http) {\n+            console.log(http);\n+        }\n+        AppService = __decorate([\n+            Foo(),\n+            __metadata('design:paramtypes', [http_service_1.HttpService])\n+        ], AppService);\n+        return AppService;\n+    }());\n+    exports.AppService = AppService;\n+\n+Wow, the metadata were generated!\n+And indeed, the app still work perfectly!\n+\n+That's because the sheer presence of a decorator on the class\n+will trigger the metadata generation.\n+So if you want the dependency injection to work,\n+you need to add a decorator on your class.\n+It can be any decorator,\n+but of course, you should use the `@Injectable()` one,\n+even if it doesn't do anything :).","path":"_posts/2016-11-24-angular-injectable.md","position":165,"original_position":165,"commit_id":"f9d6a6cef735024800e2b8a368a9c593ef7a94a5","original_commit_id":"a7152c3c05bdc4836cf58f102562d26f8aaa3144","user":{"login":"cexbrayat","id":411874,"avatar_url":"https://avatars.githubusercontent.com/u/411874?v=3","gravatar_id":"","url":"https://api.github.com/users/cexbrayat","html_url":"https://github.com/cexbrayat","followers_url":"https://api.github.com/users/cexbrayat/followers","following_url":"https://api.github.com/users/cexbrayat/following{/other_user}","gists_url":"https://api.github.com/users/cexbrayat/gists{/gist_id}","starred_url":"https://api.github.com/users/cexbrayat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cexbrayat/subscriptions","organizations_url":"https://api.github.com/users/cexbrayat/orgs","repos_url":"https://api.github.com/users/cexbrayat/repos","events_url":"https://api.github.com/users/cexbrayat/events{/privacy}","received_events_url":"https://api.github.com/users/cexbrayat/received_events","type":"User","site_admin":false},"body":"Ok done!","created_at":"2016-11-10T16:02:50Z","updated_at":"2016-11-10T16:02:50Z","html_url":"https://github.com/Ninja-Squad/ninja-squad.github.com/pull/204#discussion_r87424905","pull_request_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/204","_links":{"self":{"href":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/comments/87424905"},"html":{"href":"https://github.com/Ninja-Squad/ninja-squad.github.com/pull/204#discussion_r87424905"},"pull_request":{"href":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/204"}}},"pull_request":{"url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/204","id":93117048,"html_url":"https://github.com/Ninja-Squad/ninja-squad.github.com/pull/204","diff_url":"https://github.com/Ninja-Squad/ninja-squad.github.com/pull/204.diff","patch_url":"https://github.com/Ninja-Squad/ninja-squad.github.com/pull/204.patch","issue_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/issues/204","number":204,"state":"open","locked":false,"title":"post: injectable in angular","user":{"login":"cexbrayat","id":411874,"avatar_url":"https://avatars.githubusercontent.com/u/411874?v=3","gravatar_id":"","url":"https://api.github.com/users/cexbrayat","html_url":"https://github.com/cexbrayat","followers_url":"https://api.github.com/users/cexbrayat/followers","following_url":"https://api.github.com/users/cexbrayat/following{/other_user}","gists_url":"https://api.github.com/users/cexbrayat/gists{/gist_id}","starred_url":"https://api.github.com/users/cexbrayat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cexbrayat/subscriptions","organizations_url":"https://api.github.com/users/cexbrayat/orgs","repos_url":"https://api.github.com/users/cexbrayat/repos","events_url":"https://api.github.com/users/cexbrayat/events{/privacy}","received_events_url":"https://api.github.com/users/cexbrayat/received_events","type":"User","site_admin":false},"body":"I sometimes explain this in the training if the trainees are advanced enough.\nIt's more a fun fact than anything, but can shed a light on how things work in Angular.","created_at":"2016-11-10T09:45:53Z","updated_at":"2016-11-10T16:02:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4b38ec277e13eb61d6f00e6c0d3e233d93f50158","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/204/commits","review_comments_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/204/comments","review_comment_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/issues/204/comments","statuses_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/statuses/f9d6a6cef735024800e2b8a368a9c593ef7a94a5","head":{"label":"Ninja-Squad:post/injectable","ref":"post/injectable","sha":"f9d6a6cef735024800e2b8a368a9c593ef7a94a5","user":{"login":"Ninja-Squad","id":1610007,"avatar_url":"https://avatars.githubusercontent.com/u/1610007?v=3","gravatar_id":"","url":"https://api.github.com/users/Ninja-Squad","html_url":"https://github.com/Ninja-Squad","followers_url":"https://api.github.com/users/Ninja-Squad/followers","following_url":"https://api.github.com/users/Ninja-Squad/following{/other_user}","gists_url":"https://api.github.com/users/Ninja-Squad/gists{/gist_id}","starred_url":"https://api.github.com/users/Ninja-Squad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ninja-Squad/subscriptions","organizations_url":"https://api.github.com/users/Ninja-Squad/orgs","repos_url":"https://api.github.com/users/Ninja-Squad/repos","events_url":"https://api.github.com/users/Ninja-Squad/events{/privacy}","received_events_url":"https://api.github.com/users/Ninja-Squad/received_events","type":"Organization","site_admin":false},"repo":{"id":5752820,"name":"ninja-squad.github.com","full_name":"Ninja-Squad/ninja-squad.github.com","owner":{"login":"Ninja-Squad","id":1610007,"avatar_url":"https://avatars.githubusercontent.com/u/1610007?v=3","gravatar_id":"","url":"https://api.github.com/users/Ninja-Squad","html_url":"https://github.com/Ninja-Squad","followers_url":"https://api.github.com/users/Ninja-Squad/followers","following_url":"https://api.github.com/users/Ninja-Squad/following{/other_user}","gists_url":"https://api.github.com/users/Ninja-Squad/gists{/gist_id}","starred_url":"https://api.github.com/users/Ninja-Squad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ninja-Squad/subscriptions","organizations_url":"https://api.github.com/users/Ninja-Squad/orgs","repos_url":"https://api.github.com/users/Ninja-Squad/repos","events_url":"https://api.github.com/users/Ninja-Squad/events{/privacy}","received_events_url":"https://api.github.com/users/Ninja-Squad/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Ninja-Squad/ninja-squad.github.com","description":"NinjaSquad's Awesome Blog ","fork":false,"url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com","forks_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/forks","keys_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/teams","hooks_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/hooks","issue_events_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/issues/events{/number}","events_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/events","assignees_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/assignees{/user}","branches_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/branches{/branch}","tags_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/tags","blobs_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/git/refs{/sha}","trees_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/statuses/{sha}","languages_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/languages","stargazers_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/stargazers","contributors_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/contributors","subscribers_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/subscribers","subscription_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/subscription","commits_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/commits{/sha}","git_commits_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/git/commits{/sha}","comments_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/comments{/number}","issue_comment_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/issues/comments{/number}","contents_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/contents/{+path}","compare_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/merges","archive_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/downloads","issues_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/issues{/number}","pulls_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls{/number}","milestones_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/milestones{/number}","notifications_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/labels{/name}","releases_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/releases{/id}","deployments_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/deployments","created_at":"2012-09-10T17:11:18Z","updated_at":"2016-10-29T14:25:33Z","pushed_at":"2016-11-10T16:02:40Z","git_url":"git://github.com/Ninja-Squad/ninja-squad.github.com.git","ssh_url":"git@github.com:Ninja-Squad/ninja-squad.github.com.git","clone_url":"https://github.com/Ninja-Squad/ninja-squad.github.com.git","svn_url":"https://github.com/Ninja-Squad/ninja-squad.github.com","homepage":"blog.ninja-squad.com","size":14194,"stargazers_count":3,"watchers_count":3,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":5,"mirror_url":null,"open_issues_count":5,"forks":5,"open_issues":5,"watchers":3,"default_branch":"master"}},"base":{"label":"Ninja-Squad:master","ref":"master","sha":"cc2770940a12017f0104f3627bbd09513a21d3c3","user":{"login":"Ninja-Squad","id":1610007,"avatar_url":"https://avatars.githubusercontent.com/u/1610007?v=3","gravatar_id":"","url":"https://api.github.com/users/Ninja-Squad","html_url":"https://github.com/Ninja-Squad","followers_url":"https://api.github.com/users/Ninja-Squad/followers","following_url":"https://api.github.com/users/Ninja-Squad/following{/other_user}","gists_url":"https://api.github.com/users/Ninja-Squad/gists{/gist_id}","starred_url":"https://api.github.com/users/Ninja-Squad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ninja-Squad/subscriptions","organizations_url":"https://api.github.com/users/Ninja-Squad/orgs","repos_url":"https://api.github.com/users/Ninja-Squad/repos","events_url":"https://api.github.com/users/Ninja-Squad/events{/privacy}","received_events_url":"https://api.github.com/users/Ninja-Squad/received_events","type":"Organization","site_admin":false},"repo":{"id":5752820,"name":"ninja-squad.github.com","full_name":"Ninja-Squad/ninja-squad.github.com","owner":{"login":"Ninja-Squad","id":1610007,"avatar_url":"https://avatars.githubusercontent.com/u/1610007?v=3","gravatar_id":"","url":"https://api.github.com/users/Ninja-Squad","html_url":"https://github.com/Ninja-Squad","followers_url":"https://api.github.com/users/Ninja-Squad/followers","following_url":"https://api.github.com/users/Ninja-Squad/following{/other_user}","gists_url":"https://api.github.com/users/Ninja-Squad/gists{/gist_id}","starred_url":"https://api.github.com/users/Ninja-Squad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ninja-Squad/subscriptions","organizations_url":"https://api.github.com/users/Ninja-Squad/orgs","repos_url":"https://api.github.com/users/Ninja-Squad/repos","events_url":"https://api.github.com/users/Ninja-Squad/events{/privacy}","received_events_url":"https://api.github.com/users/Ninja-Squad/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Ninja-Squad/ninja-squad.github.com","description":"NinjaSquad's Awesome Blog ","fork":false,"url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com","forks_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/forks","keys_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/teams","hooks_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/hooks","issue_events_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/issues/events{/number}","events_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/events","assignees_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/assignees{/user}","branches_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/branches{/branch}","tags_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/tags","blobs_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/git/refs{/sha}","trees_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/statuses/{sha}","languages_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/languages","stargazers_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/stargazers","contributors_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/contributors","subscribers_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/subscribers","subscription_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/subscription","commits_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/commits{/sha}","git_commits_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/git/commits{/sha}","comments_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/comments{/number}","issue_comment_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/issues/comments{/number}","contents_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/contents/{+path}","compare_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/merges","archive_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/downloads","issues_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/issues{/number}","pulls_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls{/number}","milestones_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/milestones{/number}","notifications_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/labels{/name}","releases_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/releases{/id}","deployments_url":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/deployments","created_at":"2012-09-10T17:11:18Z","updated_at":"2016-10-29T14:25:33Z","pushed_at":"2016-11-10T16:02:40Z","git_url":"git://github.com/Ninja-Squad/ninja-squad.github.com.git","ssh_url":"git@github.com:Ninja-Squad/ninja-squad.github.com.git","clone_url":"https://github.com/Ninja-Squad/ninja-squad.github.com.git","svn_url":"https://github.com/Ninja-Squad/ninja-squad.github.com","homepage":"blog.ninja-squad.com","size":14194,"stargazers_count":3,"watchers_count":3,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":5,"mirror_url":null,"open_issues_count":5,"forks":5,"open_issues":5,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/204"},"html":{"href":"https://github.com/Ninja-Squad/ninja-squad.github.com/pull/204"},"issue":{"href":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/issues/204"},"comments":{"href":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/issues/204/comments"},"review_comments":{"href":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/204/comments"},"review_comment":{"href":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/pulls/204/commits"},"statuses":{"href":"https://api.github.com/repos/Ninja-Squad/ninja-squad.github.com/statuses/f9d6a6cef735024800e2b8a368a9c593ef7a94a5"}}}}
{"actor":{"display_login":"cexbrayat"}}