{"action":"created","comment":{"url":"https://api.github.com/repos/coala/cEPs/pulls/comments/244629124","pull_request_review_id":188548122,"id":244629124,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0NDYyOTEyNA==","diff_hunk":"@@ -0,0 +1,277 @@\n+# Breaking down coala\n+\n+| Metadata |                                               |\n+|----------|-----------------------------------------------|\n+| cEP      | 0023                                          |\n+| Version  | 1.0                                           |\n+| Title    | Breaking down the coala                       |\n+| Authors  | Muhammad Kaisar Arkhan <mailto:yuki@coala.io> |\n+| Status   | Proposed                                      |\n+| Type     | Feature                                       |\n+\n+## Abstract\n+\n+This cEP proposes a new architecture evolution for coala.\n+\n+## How coala works\n+\n+coala is a Python program that also provides API for bears and interacting with\n+them.\n+\n+Bears are Python classes filled with metadata needed to execute linter programs\n+and may contain helper code to generate configuration files. Since bears are\n+Python code, some bears have the actual linter inside of them and some just\n+execute the Python API of a linter.\n+\n+Bears are written with the API provided by the coala core and they're running\n+under the same process as coala.\n+\n+On startup, coala reads and intepret the configuration file. Configuration files\n+are separated by sections which contains what bear is required and the\n+configuration for the bear.\n+\n+After it's intepreted, it is passed over to an executor which will executes it\n+per section. The executor will find and import the bear class which usually\n+resides in the Python packages path. It then pass the Section data to the bear\n+and set it's require configuration. The bear first prepare the whole command\n+along with it's parameters or generate a configuration file. After that's done,\n+the linter program will be executed by the bear as a separate process and the\n+bear will intepret it's standard output by matching a regex. The bear will yield\n+the output of the program to the executor which will end up to the generator\n+where the user see the warning/error and determine an action.\n+\n+## The Architectural Issue\n+\n+There is no clear distinction between the coala core which job is to intepret\n+and run bears and the one that shows the command line interface to the user. In\n+addition, bears in essence can do anything it wants to since it is just a Python\n+class that is loaded into the coala process.\n+\n+This caused numerous unwanted regressions between bears and coala and costed a\n+lot in maintenance. This is also the reason why bears are not released\n+separately as a \"collection\" rather it is shipped with coala core along with\n+every linter in the collection.\n+\n+Instead of leaving the project at this state, we should define borders and setup\n+a more proper architecture and standards.\n+\n+## The new architecture\n+\n+Bears are now just simple formatted plain-text file containing the metadata\n+needed. It can also contain a simple program as helpers or sole linters.\n+\n+coala will separated into two parts: The coala Engine and The coala CLI.\n+\n+The coala CLI's sole job is to present an interactive command line interface for\n+the coala Engine. The CLI will present the output of the Engine and present them\n+with possible actions that the user can do.\n+\n+Meanwhile, the coala Engine's sole job is to intepret the bear files and\n+execute/supervise the linter/helper programs along with committing the action\n+that is requsted by the user.\n+\n+If a helper program is needed, They'll act as the linter program and do stuff\n+before the program (e.g generating the configuration file) and do stuff\n+after it (e.g cleaning).\n+\n+The frontend and backend programs will communicate to each other via json-rpc.\n+json-rpc is chosen for it's simplicity.\n+\n+## The new bear file\n+\n+Bears will be ini files which is already a part of the Python standard library.\n+Ini files are readable and simple to write. Making it a lot easier for projects\n+making their own internal bears.\n+\n+### GoVet.bear\n+\n+```ini\n+[bear]\n+name = GoVetBear\n+description = Analyze Go code and raise suspicious constructs, such as printf\n+              calls whose arguments do not correctly match the format string,\n+              useless assignments, common mistakes about boolean operations, unreachable code,\n+              etc.\n+languages = Go\n+authors = The coala developers\n+authors_email = coala-devel@googlegroups.com\n+license = AGPL-3.0\n+can_detect = Unused code, Smell, Unreachable Code\n+\n+[requirement]\n+type = go\n+package = golang.org/cmd/vet\n+\n+[run]\n+executable = go\n+arguments = vet\n+use_stdout = false\n+use_stderr = true\n+output_regex = .+:(?P<line>\\d+): (?P<message>.*)\n+```\n+\n+The coala Engine will intepret the following file, check the requirement, and\n+execute the linter program while intepreting the output with the regex.\n+\n+### SpaceConsistency.bear\n+\n+```ini\n+[bear]\n+name = SpaceConsistencyBear\n+description = Check and correct spacing for all textual data. This includes usage of\n+              tabs vs. spaces, trailing whitespace and (missing) newlines before\n+              the end of the file.\n+languages = All\n+authors = The coala developers\n+authors_email = coala-devel@googlegroups.com\n+license = AGPL-3.0\n+can_detect = Formatting\n+\n+[param.use_spaces]\n+description = True if spaces are to be used instead of tabs\n+type = boolean\n+\n+[param.allow_trailing_whitespace]\n+description = Whether to allow trailing whitespace or not.\n+type = boolean\n+default = false\n+\n+[params.indent_size]\n+description = Number of spaces per indentation level\n+type = int\n+default = 8\n+\n+[params.enforce_newline_at_EOF]\n+description = Whether to enforce a newline at the end of file\n+type = boolean\n+default = true\n+config_key = enforce_newline\n+\n+[run]\n+local = true\n+executable = space_consistency_bear.py\n+output_regex = .+:(?P<line>\\d+): (?P<message>.*)\n+\n+```\n+\n+The coala Engine will intepret the following file, setup the command arguments,\n+and run the Python file. Note that it does not load it as a library rather\n+running it as a program.\n+\n+This also means it is possible to run it without the engine.\n+\n+```\n+/usr/local/share/coala/bears/SpaceConsistency/space_consistency_bear.py \\\n+    --use_spaces=false \\\n+    --allow_trailing_whitespace=false \\\n+    --indent_size=8 \\\n+    --enforce_newline_at_EOF=8 \\\n+```\n+\n+## The RPC\n+\n+The RPC will follow the JSON-RPC specification\n+(https://www.jsonrpc.org/specification).","path":"cEP-0023.md","position":174,"original_position":174,"commit_id":"cae663e9a4953947951360eadbc1216ba00457ea","original_commit_id":"cae663e9a4953947951360eadbc1216ba00457ea","user":{"login":"gitmate-bot","id":15421488,"node_id":"MDQ6VXNlcjE1NDIxNDg4","avatar_url":"https://avatars0.githubusercontent.com/u/15421488?v=4","gravatar_id":"","url":"https://api.github.com/users/gitmate-bot","html_url":"https://github.com/gitmate-bot","followers_url":"https://api.github.com/users/gitmate-bot/followers","following_url":"https://api.github.com/users/gitmate-bot/following{/other_user}","gists_url":"https://api.github.com/users/gitmate-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/gitmate-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gitmate-bot/subscriptions","organizations_url":"https://api.github.com/users/gitmate-bot/orgs","repos_url":"https://api.github.com/users/gitmate-bot/repos","events_url":"https://api.github.com/users/gitmate-bot/events{/privacy}","received_events_url":"https://api.github.com/users/gitmate-bot/received_events","type":"User","site_admin":false},"body":"The text does not comply to the set style.\n\n*Origin: MarkdownBear, Section: `markdown`.*\n\nThe issue can be fixed by applying the following patch:\n\n```diff\n--- a/tmp/tmpzr0a2jlu/cEP-0023.md\n+++ b/tmp/tmpzr0a2jlu/cEP-0023.md\n@@ -171,7 +171,7 @@\n ## The RPC\n \n The RPC will follow the JSON-RPC specification\n-(https://www.jsonrpc.org/specification).\n+(<https://www.jsonrpc.org/specification>).\n \n The methods will be the following:\n   * `start`\n```","created_at":"2019-01-01T06:39:49Z","updated_at":"2019-01-01T06:39:49Z","html_url":"https://github.com/coala/cEPs/pull/140#discussion_r244629124","pull_request_url":"https://api.github.com/repos/coala/cEPs/pulls/140","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/coala/cEPs/pulls/comments/244629124"},"html":{"href":"https://github.com/coala/cEPs/pull/140#discussion_r244629124"},"pull_request":{"href":"https://api.github.com/repos/coala/cEPs/pulls/140"}}},"pull_request":{"url":"https://api.github.com/repos/coala/cEPs/pulls/140","id":187202459,"node_id":"MDExOlB1bGxSZXF1ZXN0MTg3MjAyNDU5","html_url":"https://github.com/coala/cEPs/pull/140","diff_url":"https://github.com/coala/cEPs/pull/140.diff","patch_url":"https://github.com/coala/cEPs/pull/140.patch","issue_url":"https://api.github.com/repos/coala/cEPs/issues/140","number":140,"state":"open","locked":false,"title":"cEP 23: Breaking down coala","user":{"login":"yukiisbored","id":18437312,"node_id":"MDQ6VXNlcjE4NDM3MzEy","avatar_url":"https://avatars0.githubusercontent.com/u/18437312?v=4","gravatar_id":"","url":"https://api.github.com/users/yukiisbored","html_url":"https://github.com/yukiisbored","followers_url":"https://api.github.com/users/yukiisbored/followers","following_url":"https://api.github.com/users/yukiisbored/following{/other_user}","gists_url":"https://api.github.com/users/yukiisbored/gists{/gist_id}","starred_url":"https://api.github.com/users/yukiisbored/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yukiisbored/subscriptions","organizations_url":"https://api.github.com/users/yukiisbored/orgs","repos_url":"https://api.github.com/users/yukiisbored/repos","events_url":"https://api.github.com/users/yukiisbored/events{/privacy}","received_events_url":"https://api.github.com/users/yukiisbored/received_events","type":"User","site_admin":false},"body":"Closes https://github.com/coala/cEPs/issues/138","created_at":"2018-05-10T14:07:08Z","updated_at":"2019-01-01T06:39:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1db7aefdf2fa9317c7357e69cd51649c11852184","assignee":null,"assignees":[],"requested_reviewers":[{"login":"alphadose","id":25170258,"node_id":"MDQ6VXNlcjI1MTcwMjU4","avatar_url":"https://avatars1.githubusercontent.com/u/25170258?v=4","gravatar_id":"","url":"https://api.github.com/users/alphadose","html_url":"https://github.com/alphadose","followers_url":"https://api.github.com/users/alphadose/followers","following_url":"https://api.github.com/users/alphadose/following{/other_user}","gists_url":"https://api.github.com/users/alphadose/gists{/gist_id}","starred_url":"https://api.github.com/users/alphadose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alphadose/subscriptions","organizations_url":"https://api.github.com/users/alphadose/orgs","repos_url":"https://api.github.com/users/alphadose/repos","events_url":"https://api.github.com/users/alphadose/events{/privacy}","received_events_url":"https://api.github.com/users/alphadose/received_events","type":"User","site_admin":false},{"login":"li-boxuan","id":25746010,"node_id":"MDQ6VXNlcjI1NzQ2MDEw","avatar_url":"https://avatars2.githubusercontent.com/u/25746010?v=4","gravatar_id":"","url":"https://api.github.com/users/li-boxuan","html_url":"https://github.com/li-boxuan","followers_url":"https://api.github.com/users/li-boxuan/followers","following_url":"https://api.github.com/users/li-boxuan/following{/other_user}","gists_url":"https://api.github.com/users/li-boxuan/gists{/gist_id}","starred_url":"https://api.github.com/users/li-boxuan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/li-boxuan/subscriptions","organizations_url":"https://api.github.com/users/li-boxuan/orgs","repos_url":"https://api.github.com/users/li-boxuan/repos","events_url":"https://api.github.com/users/li-boxuan/events{/privacy}","received_events_url":"https://api.github.com/users/li-boxuan/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":925024199,"node_id":"MDU6TGFiZWw5MjUwMjQxOTk=","url":"https://api.github.com/repos/coala/cEPs/labels/New%20cEP","name":"New cEP","color":"8ffcbe","default":false},{"id":391778081,"node_id":"MDU6TGFiZWwzOTE3NzgwODE=","url":"https://api.github.com/repos/coala/cEPs/labels/process/pending%20review","name":"process/pending review","color":"c2e0c6","default":false},{"id":413116322,"node_id":"MDU6TGFiZWw0MTMxMTYzMjI=","url":"https://api.github.com/repos/coala/cEPs/labels/size/M","name":"size/M","color":"ededed","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/coala/cEPs/pulls/140/commits","review_comments_url":"https://api.github.com/repos/coala/cEPs/pulls/140/comments","review_comment_url":"https://api.github.com/repos/coala/cEPs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/coala/cEPs/issues/140/comments","statuses_url":"https://api.github.com/repos/coala/cEPs/statuses/cae663e9a4953947951360eadbc1216ba00457ea","head":{"label":"yukiisbored:cEP-23","ref":"cEP-23","sha":"cae663e9a4953947951360eadbc1216ba00457ea","user":{"login":"yukiisbored","id":18437312,"node_id":"MDQ6VXNlcjE4NDM3MzEy","avatar_url":"https://avatars0.githubusercontent.com/u/18437312?v=4","gravatar_id":"","url":"https://api.github.com/users/yukiisbored","html_url":"https://github.com/yukiisbored","followers_url":"https://api.github.com/users/yukiisbored/followers","following_url":"https://api.github.com/users/yukiisbored/following{/other_user}","gists_url":"https://api.github.com/users/yukiisbored/gists{/gist_id}","starred_url":"https://api.github.com/users/yukiisbored/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yukiisbored/subscriptions","organizations_url":"https://api.github.com/users/yukiisbored/orgs","repos_url":"https://api.github.com/users/yukiisbored/repos","events_url":"https://api.github.com/users/yukiisbored/events{/privacy}","received_events_url":"https://api.github.com/users/yukiisbored/received_events","type":"User","site_admin":false},"repo":{"id":132908712,"node_id":"MDEwOlJlcG9zaXRvcnkxMzI5MDg3MTI=","name":"cEPs","full_name":"yukiisbored/cEPs","private":false,"owner":{"login":"yukiisbored","id":18437312,"node_id":"MDQ6VXNlcjE4NDM3MzEy","avatar_url":"https://avatars0.githubusercontent.com/u/18437312?v=4","gravatar_id":"","url":"https://api.github.com/users/yukiisbored","html_url":"https://github.com/yukiisbored","followers_url":"https://api.github.com/users/yukiisbored/followers","following_url":"https://api.github.com/users/yukiisbored/following{/other_user}","gists_url":"https://api.github.com/users/yukiisbored/gists{/gist_id}","starred_url":"https://api.github.com/users/yukiisbored/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yukiisbored/subscriptions","organizations_url":"https://api.github.com/users/yukiisbored/orgs","repos_url":"https://api.github.com/users/yukiisbored/repos","events_url":"https://api.github.com/users/yukiisbored/events{/privacy}","received_events_url":"https://api.github.com/users/yukiisbored/received_events","type":"User","site_admin":false},"html_url":"https://github.com/yukiisbored/cEPs","description":"coala Enhancement Proposals","fork":true,"url":"https://api.github.com/repos/yukiisbored/cEPs","forks_url":"https://api.github.com/repos/yukiisbored/cEPs/forks","keys_url":"https://api.github.com/repos/yukiisbored/cEPs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/yukiisbored/cEPs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/yukiisbored/cEPs/teams","hooks_url":"https://api.github.com/repos/yukiisbored/cEPs/hooks","issue_events_url":"https://api.github.com/repos/yukiisbored/cEPs/issues/events{/number}","events_url":"https://api.github.com/repos/yukiisbored/cEPs/events","assignees_url":"https://api.github.com/repos/yukiisbored/cEPs/assignees{/user}","branches_url":"https://api.github.com/repos/yukiisbored/cEPs/branches{/branch}","tags_url":"https://api.github.com/repos/yukiisbored/cEPs/tags","blobs_url":"https://api.github.com/repos/yukiisbored/cEPs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/yukiisbored/cEPs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/yukiisbored/cEPs/git/refs{/sha}","trees_url":"https://api.github.com/repos/yukiisbored/cEPs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/yukiisbored/cEPs/statuses/{sha}","languages_url":"https://api.github.com/repos/yukiisbored/cEPs/languages","stargazers_url":"https://api.github.com/repos/yukiisbored/cEPs/stargazers","contributors_url":"https://api.github.com/repos/yukiisbored/cEPs/contributors","subscribers_url":"https://api.github.com/repos/yukiisbored/cEPs/subscribers","subscription_url":"https://api.github.com/repos/yukiisbored/cEPs/subscription","commits_url":"https://api.github.com/repos/yukiisbored/cEPs/commits{/sha}","git_commits_url":"https://api.github.com/repos/yukiisbored/cEPs/git/commits{/sha}","comments_url":"https://api.github.com/repos/yukiisbored/cEPs/comments{/number}","issue_comment_url":"https://api.github.com/repos/yukiisbored/cEPs/issues/comments{/number}","contents_url":"https://api.github.com/repos/yukiisbored/cEPs/contents/{+path}","compare_url":"https://api.github.com/repos/yukiisbored/cEPs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/yukiisbored/cEPs/merges","archive_url":"https://api.github.com/repos/yukiisbored/cEPs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/yukiisbored/cEPs/downloads","issues_url":"https://api.github.com/repos/yukiisbored/cEPs/issues{/number}","pulls_url":"https://api.github.com/repos/yukiisbored/cEPs/pulls{/number}","milestones_url":"https://api.github.com/repos/yukiisbored/cEPs/milestones{/number}","notifications_url":"https://api.github.com/repos/yukiisbored/cEPs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/yukiisbored/cEPs/labels{/name}","releases_url":"https://api.github.com/repos/yukiisbored/cEPs/releases{/id}","deployments_url":"https://api.github.com/repos/yukiisbored/cEPs/deployments","created_at":"2018-05-10T14:04:13Z","updated_at":"2018-05-10T14:04:14Z","pushed_at":"2019-01-01T06:35:54Z","git_url":"git://github.com/yukiisbored/cEPs.git","ssh_url":"git@github.com:yukiisbored/cEPs.git","clone_url":"https://github.com/yukiisbored/cEPs.git","svn_url":"https://github.com/yukiisbored/cEPs","homepage":null,"size":90,"stargazers_count":0,"watchers_count":0,"language":null,"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","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"coala:master","ref":"master","sha":"93c7cce81ced2cf1a34fe2f30c05833936e93fad","user":{"login":"coala","id":10620750,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwNjIwNzUw","avatar_url":"https://avatars3.githubusercontent.com/u/10620750?v=4","gravatar_id":"","url":"https://api.github.com/users/coala","html_url":"https://github.com/coala","followers_url":"https://api.github.com/users/coala/followers","following_url":"https://api.github.com/users/coala/following{/other_user}","gists_url":"https://api.github.com/users/coala/gists{/gist_id}","starred_url":"https://api.github.com/users/coala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coala/subscriptions","organizations_url":"https://api.github.com/users/coala/orgs","repos_url":"https://api.github.com/users/coala/repos","events_url":"https://api.github.com/users/coala/events{/privacy}","received_events_url":"https://api.github.com/users/coala/received_events","type":"Organization","site_admin":false},"repo":{"id":60130869,"node_id":"MDEwOlJlcG9zaXRvcnk2MDEzMDg2OQ==","name":"cEPs","full_name":"coala/cEPs","private":false,"owner":{"login":"coala","id":10620750,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwNjIwNzUw","avatar_url":"https://avatars3.githubusercontent.com/u/10620750?v=4","gravatar_id":"","url":"https://api.github.com/users/coala","html_url":"https://github.com/coala","followers_url":"https://api.github.com/users/coala/followers","following_url":"https://api.github.com/users/coala/following{/other_user}","gists_url":"https://api.github.com/users/coala/gists{/gist_id}","starred_url":"https://api.github.com/users/coala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coala/subscriptions","organizations_url":"https://api.github.com/users/coala/orgs","repos_url":"https://api.github.com/users/coala/repos","events_url":"https://api.github.com/users/coala/events{/privacy}","received_events_url":"https://api.github.com/users/coala/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/coala/cEPs","description":"coala Enhancement Proposals","fork":false,"url":"https://api.github.com/repos/coala/cEPs","forks_url":"https://api.github.com/repos/coala/cEPs/forks","keys_url":"https://api.github.com/repos/coala/cEPs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coala/cEPs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coala/cEPs/teams","hooks_url":"https://api.github.com/repos/coala/cEPs/hooks","issue_events_url":"https://api.github.com/repos/coala/cEPs/issues/events{/number}","events_url":"https://api.github.com/repos/coala/cEPs/events","assignees_url":"https://api.github.com/repos/coala/cEPs/assignees{/user}","branches_url":"https://api.github.com/repos/coala/cEPs/branches{/branch}","tags_url":"https://api.github.com/repos/coala/cEPs/tags","blobs_url":"https://api.github.com/repos/coala/cEPs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coala/cEPs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coala/cEPs/git/refs{/sha}","trees_url":"https://api.github.com/repos/coala/cEPs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coala/cEPs/statuses/{sha}","languages_url":"https://api.github.com/repos/coala/cEPs/languages","stargazers_url":"https://api.github.com/repos/coala/cEPs/stargazers","contributors_url":"https://api.github.com/repos/coala/cEPs/contributors","subscribers_url":"https://api.github.com/repos/coala/cEPs/subscribers","subscription_url":"https://api.github.com/repos/coala/cEPs/subscription","commits_url":"https://api.github.com/repos/coala/cEPs/commits{/sha}","git_commits_url":"https://api.github.com/repos/coala/cEPs/git/commits{/sha}","comments_url":"https://api.github.com/repos/coala/cEPs/comments{/number}","issue_comment_url":"https://api.github.com/repos/coala/cEPs/issues/comments{/number}","contents_url":"https://api.github.com/repos/coala/cEPs/contents/{+path}","compare_url":"https://api.github.com/repos/coala/cEPs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coala/cEPs/merges","archive_url":"https://api.github.com/repos/coala/cEPs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coala/cEPs/downloads","issues_url":"https://api.github.com/repos/coala/cEPs/issues{/number}","pulls_url":"https://api.github.com/repos/coala/cEPs/pulls{/number}","milestones_url":"https://api.github.com/repos/coala/cEPs/milestones{/number}","notifications_url":"https://api.github.com/repos/coala/cEPs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coala/cEPs/labels{/name}","releases_url":"https://api.github.com/repos/coala/cEPs/releases{/id}","deployments_url":"https://api.github.com/repos/coala/cEPs/deployments","created_at":"2016-05-31T23:37:51Z","updated_at":"2018-11-27T01:30:44Z","pushed_at":"2019-01-01T06:35:56Z","git_url":"git://github.com/coala/cEPs.git","ssh_url":"git@github.com:coala/cEPs.git","clone_url":"https://github.com/coala/cEPs.git","svn_url":"https://github.com/coala/cEPs","homepage":null,"size":168,"stargazers_count":27,"watchers_count":27,"language":null,"has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":51,"mirror_url":null,"archived":false,"open_issues_count":30,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":51,"open_issues":30,"watchers":27,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/coala/cEPs/pulls/140"},"html":{"href":"https://github.com/coala/cEPs/pull/140"},"issue":{"href":"https://api.github.com/repos/coala/cEPs/issues/140"},"comments":{"href":"https://api.github.com/repos/coala/cEPs/issues/140/comments"},"review_comments":{"href":"https://api.github.com/repos/coala/cEPs/pulls/140/comments"},"review_comment":{"href":"https://api.github.com/repos/coala/cEPs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/coala/cEPs/pulls/140/commits"},"statuses":{"href":"https://api.github.com/repos/coala/cEPs/statuses/cae663e9a4953947951360eadbc1216ba00457ea"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"gitmate-bot"}}