{"action":"created","issue":{"url":"https://api.github.com/repos/stefanzweifel/laravel-stats/issues/116","repository_url":"https://api.github.com/repos/stefanzweifel/laravel-stats","labels_url":"https://api.github.com/repos/stefanzweifel/laravel-stats/issues/116/labels{/name}","comments_url":"https://api.github.com/repos/stefanzweifel/laravel-stats/issues/116/comments","events_url":"https://api.github.com/repos/stefanzweifel/laravel-stats/issues/116/events","html_url":"https://github.com/stefanzweifel/laravel-stats/pull/116","id":294023775,"number":116,"title":"Feature: Json Output","user":{"login":"stefanzweifel","id":1080923,"avatar_url":"https://avatars3.githubusercontent.com/u/1080923?v=4","gravatar_id":"","url":"https://api.github.com/users/stefanzweifel","html_url":"https://github.com/stefanzweifel","followers_url":"https://api.github.com/users/stefanzweifel/followers","following_url":"https://api.github.com/users/stefanzweifel/following{/other_user}","gists_url":"https://api.github.com/users/stefanzweifel/gists{/gist_id}","starred_url":"https://api.github.com/users/stefanzweifel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefanzweifel/subscriptions","organizations_url":"https://api.github.com/users/stefanzweifel/orgs","repos_url":"https://api.github.com/users/stefanzweifel/repos","events_url":"https://api.github.com/users/stefanzweifel/events{/privacy}","received_events_url":"https://api.github.com/users/stefanzweifel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"stefanzweifel","id":1080923,"avatar_url":"https://avatars3.githubusercontent.com/u/1080923?v=4","gravatar_id":"","url":"https://api.github.com/users/stefanzweifel","html_url":"https://github.com/stefanzweifel","followers_url":"https://api.github.com/users/stefanzweifel/followers","following_url":"https://api.github.com/users/stefanzweifel/following{/other_user}","gists_url":"https://api.github.com/users/stefanzweifel/gists{/gist_id}","starred_url":"https://api.github.com/users/stefanzweifel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefanzweifel/subscriptions","organizations_url":"https://api.github.com/users/stefanzweifel/orgs","repos_url":"https://api.github.com/users/stefanzweifel/repos","events_url":"https://api.github.com/users/stefanzweifel/events{/privacy}","received_events_url":"https://api.github.com/users/stefanzweifel/received_events","type":"User","site_admin":false},"assignees":[{"login":"stefanzweifel","id":1080923,"avatar_url":"https://avatars3.githubusercontent.com/u/1080923?v=4","gravatar_id":"","url":"https://api.github.com/users/stefanzweifel","html_url":"https://github.com/stefanzweifel","followers_url":"https://api.github.com/users/stefanzweifel/followers","following_url":"https://api.github.com/users/stefanzweifel/following{/other_user}","gists_url":"https://api.github.com/users/stefanzweifel/gists{/gist_id}","starred_url":"https://api.github.com/users/stefanzweifel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefanzweifel/subscriptions","organizations_url":"https://api.github.com/users/stefanzweifel/orgs","repos_url":"https://api.github.com/users/stefanzweifel/repos","events_url":"https://api.github.com/users/stefanzweifel/events{/privacy}","received_events_url":"https://api.github.com/users/stefanzweifel/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2018-02-02T21:08:30Z","updated_at":"2018-02-05T20:11:30Z","closed_at":null,"author_association":"OWNER","pull_request":{"url":"https://api.github.com/repos/stefanzweifel/laravel-stats/pulls/116","html_url":"https://github.com/stefanzweifel/laravel-stats/pull/116","diff_url":"https://github.com/stefanzweifel/laravel-stats/pull/116.diff","patch_url":"https://github.com/stefanzweifel/laravel-stats/pull/116.patch"},"body":"This PR adds a new output format for the project statistics.\r\n**Still a work in progress**\r\n\r\n## TODOs:\r\n\r\n- [x] Refactor `JsonOutput.php`\r\n- [x] Write Tests for `JsonOutput.php`\r\n"},"comment":{"url":"https://api.github.com/repos/stefanzweifel/laravel-stats/issues/comments/363206648","html_url":"https://github.com/stefanzweifel/laravel-stats/pull/116#issuecomment-363206648","issue_url":"https://api.github.com/repos/stefanzweifel/laravel-stats/issues/116","id":363206648,"user":{"login":"stefanzweifel","id":1080923,"avatar_url":"https://avatars3.githubusercontent.com/u/1080923?v=4","gravatar_id":"","url":"https://api.github.com/users/stefanzweifel","html_url":"https://github.com/stefanzweifel","followers_url":"https://api.github.com/users/stefanzweifel/followers","following_url":"https://api.github.com/users/stefanzweifel/following{/other_user}","gists_url":"https://api.github.com/users/stefanzweifel/gists{/gist_id}","starred_url":"https://api.github.com/users/stefanzweifel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefanzweifel/subscriptions","organizations_url":"https://api.github.com/users/stefanzweifel/orgs","repos_url":"https://api.github.com/users/stefanzweifel/repos","events_url":"https://api.github.com/users/stefanzweifel/events{/privacy}","received_events_url":"https://api.github.com/users/stefanzweifel/received_events","type":"User","site_admin":false},"created_at":"2018-02-05T20:11:30Z","updated_at":"2018-02-05T20:11:30Z","author_association":"OWNER","body":"Output from a demo project:\r\n\r\n```json\r\n {\r\n    \"components\": [\r\n        {\r\n            \"component\": \"Commands\",\r\n            \"number_of_classes\": 1,\r\n            \"methods\": 2,\r\n            \"methods_per_class\": 2,\r\n            \"lines\": 42,\r\n            \"loc\": 5,\r\n            \"loc_per_method\": 2.5\r\n        },\r\n        {\r\n            \"component\": \"Controllers\",\r\n            \"number_of_classes\": 5,\r\n            \"methods\": 10,\r\n            \"methods_per_class\": 2,\r\n            \"lines\": 209,\r\n            \"loc\": 29,\r\n            \"loc_per_method\": 2.9\r\n        },\r\n        {\r\n            \"component\": \"Event Listeners\",\r\n            \"number_of_classes\": 2,\r\n            \"methods\": 4,\r\n            \"methods_per_class\": 2,\r\n            \"lines\": 61,\r\n            \"loc\": 7,\r\n            \"loc_per_method\": 1.75\r\n        },\r\n        {\r\n            \"component\": \"Events\",\r\n            \"number_of_classes\": 2,\r\n            \"methods\": 4,\r\n            \"methods_per_class\": 2,\r\n            \"lines\": 72,\r\n            \"loc\": 20,\r\n            \"loc_per_method\": 5\r\n        },\r\n        {\r\n            \"component\": \"Jobs\",\r\n            \"number_of_classes\": 17,\r\n            \"methods\": 34,\r\n            \"methods_per_class\": 2,\r\n            \"lines\": 578,\r\n            \"loc\": 119,\r\n            \"loc_per_method\": 3.5\r\n        },\r\n        {\r\n            \"component\": \"Mails\",\r\n            \"number_of_classes\": 38,\r\n            \"methods\": 76,\r\n            \"methods_per_class\": 2,\r\n            \"lines\": 1254,\r\n            \"loc\": 266,\r\n            \"loc_per_method\": 3.5\r\n        },\r\n        {\r\n            \"component\": \"Middlewares\",\r\n            \"number_of_classes\": 6,\r\n            \"methods\": 2,\r\n            \"methods_per_class\": 0.33,\r\n            \"lines\": 127,\r\n            \"loc\": 22,\r\n            \"loc_per_method\": 11\r\n        },\r\n        {\r\n            \"component\": \"Migrations\",\r\n            \"number_of_classes\": 2,\r\n            \"methods\": 4,\r\n            \"methods_per_class\": 2,\r\n            \"lines\": 67,\r\n            \"loc\": 19,\r\n            \"loc_per_method\": 4.75\r\n        },\r\n        {\r\n            \"component\": \"Models\",\r\n            \"number_of_classes\": 52,\r\n            \"methods\": 0,\r\n            \"methods_per_class\": 0,\r\n            \"lines\": 539,\r\n            \"loc\": 108,\r\n            \"loc_per_method\": 0\r\n        },\r\n        {\r\n            \"component\": \"Notifications\",\r\n            \"number_of_classes\": 45,\r\n            \"methods\": 180,\r\n            \"methods_per_class\": 4,\r\n            \"lines\": 2745,\r\n            \"loc\": 405,\r\n            \"loc_per_method\": 2.25\r\n        },\r\n        {\r\n            \"component\": \"Repository\",\r\n            \"number_of_classes\": 1,\r\n            \"methods\": 1,\r\n            \"methods_per_class\": 1,\r\n            \"lines\": 11,\r\n            \"loc\": 1,\r\n            \"loc_per_method\": 1\r\n        },\r\n        {\r\n            \"component\": \"Resources\",\r\n            \"number_of_classes\": 1,\r\n            \"methods\": 1,\r\n            \"methods_per_class\": 1,\r\n            \"lines\": 19,\r\n            \"loc\": 3,\r\n            \"loc_per_method\": 3\r\n        },\r\n        {\r\n            \"component\": \"Rules\",\r\n            \"number_of_classes\": 43,\r\n            \"methods\": 129,\r\n            \"methods_per_class\": 3,\r\n            \"lines\": 1720,\r\n            \"loc\": 129,\r\n            \"loc_per_method\": 1\r\n        },\r\n        {\r\n            \"component\": \"Seeders\",\r\n            \"number_of_classes\": 1,\r\n            \"methods\": 1,\r\n            \"methods_per_class\": 1,\r\n            \"lines\": 16,\r\n            \"loc\": 1,\r\n            \"loc_per_method\": 1\r\n        },\r\n        {\r\n            \"component\": \"Service Providers\",\r\n            \"number_of_classes\": 5,\r\n            \"methods\": 9,\r\n            \"methods_per_class\": 1.8,\r\n            \"lines\": 189,\r\n            \"loc\": 27,\r\n            \"loc_per_method\": 3\r\n        },\r\n        {\r\n            \"component\": \"DuskTests\",\r\n            \"number_of_classes\": 3,\r\n            \"methods\": 4,\r\n            \"methods_per_class\": 1.33,\r\n            \"lines\": 89,\r\n            \"loc\": 21,\r\n            \"loc_per_method\": 5.25\r\n        },\r\n        {\r\n            \"component\": \"PHPUnit Tests\",\r\n            \"number_of_classes\": 5,\r\n            \"methods\": 4,\r\n            \"methods_per_class\": 0.8,\r\n            \"lines\": 88,\r\n            \"loc\": 20,\r\n            \"loc_per_method\": 5\r\n        }\r\n    ],\r\n    \"total\": {\r\n        \"number_of_classes\": 239,\r\n        \"methods\": 479,\r\n        \"methods_per_class\": 1.65,\r\n        \"lines\": 8138,\r\n        \"loc\": 1247,\r\n        \"loc_per_method\": 3.31\r\n    },\r\n    \"meta\": {\r\n        \"code_loc\": 1161,\r\n        \"test_loc\": 41,\r\n        \"code_to_test_ratio\": \"1:0\"\r\n    }\r\n}\r\n```"}}
{"actor":{"display_login":"stefanzweifel"}}