{"action":"created","comment":{"url":"https://api.github.com/repos/eslint/eslint/pulls/comments/196941189","pull_request_review_id":130587266,"id":196941189,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5Njk0MTE4OQ==","diff_hunk":"@@ -0,0 +1,219 @@\n+/**\n+ * @fileoverview A rule to set the maximum number of line of code in a function.\n+ * @author Pete Ward <peteward44@gmail.com>\n+ */\n+\"use strict\";\n+\n+//------------------------------------------------------------------------------\n+// Requirements\n+//------------------------------------------------------------------------------\n+\n+const astUtils = require(\"../ast-utils\");\n+\n+//------------------------------------------------------------------------------\n+// Constants\n+//------------------------------------------------------------------------------\n+\n+const OPTIONS_SCHEMA = {\n+    type: \"object\",\n+    properties: {\n+        max: {\n+            type: \"integer\",\n+            minimum: 0\n+        },\n+        skipComments: {\n+            type: \"boolean\"\n+        },\n+        skipBlankLines: {\n+            type: \"boolean\"\n+        },\n+        IIFEs: {\n+            type: \"boolean\"\n+        }\n+    },\n+    additionalProperties: false\n+};\n+\n+const OPTIONS_OR_INTEGER_SCHEMA = {\n+    oneOf: [\n+        OPTIONS_SCHEMA,\n+        {\n+            type: \"integer\",\n+            minimum: 1\n+        }\n+    ]\n+};\n+\n+/**\n+ * Given a list of comment nodes, return the line numbers for those comments.\n+ * @param {Array} comments An array of comment nodes.\n+ * @returns {Map.<string,Node>} An array of line numbers containing comments.\n+ */\n+function getCommentLineNumbers(comments) {\n+    const map = new Map();\n+\n+    if (!comments) {\n+        return map;\n+    }\n+    comments.forEach(comment => {\n+        for (let i = comment.loc.start.line; i <= comment.loc.end.line; i++) {\n+            map.set(i, comment);\n+        }\n+    });\n+    return map;\n+}\n+\n+//------------------------------------------------------------------------------\n+// Rule Definition\n+//------------------------------------------------------------------------------\n+\n+module.exports = {\n+    meta: {\n+        docs: {\n+            description: \"enforce a maximum number of line of code in a function\",\n+            category: \"Stylistic Issues\",\n+            recommended: false,\n+            url: \"https://eslint.org/docs/rules/max-lines-per-function\"\n+        },\n+\n+        schema: [\n+            OPTIONS_OR_INTEGER_SCHEMA\n+        ]\n+    },\n+\n+    create(context) {\n+        const sourceCode = context.getSourceCode();\n+        const lines = sourceCode.lines;\n+\n+        const option = context.options[0];\n+        let maxLines = 50;\n+        let skipComments = false;\n+        let skipBlankLines = false;\n+        let IIFEs = false;\n+\n+        if (typeof option === \"object\") {\n+            if (typeof option.max === \"number\") {\n+                maxLines = option.max;\n+            } else if (typeof option.maximum === \"number\") {\n+                maxLines = option.maximum;\n+            }\n+            if (typeof option.skipComments === \"boolean\") {\n+                skipComments = option.skipComments;\n+            }\n+            if (typeof option.skipBlankLines === \"boolean\") {\n+                skipBlankLines = option.skipBlankLines;\n+            }\n+            if (typeof option.IIFEs === \"boolean\") {\n+                IIFEs = option.IIFEs;\n+            }\n+        } else if (typeof option === \"number\") {\n+            maxLines = option;\n+        }\n+\n+        const commentLineNumbers = getCommentLineNumbers(sourceCode.getAllComments());\n+\n+        //--------------------------------------------------------------------------\n+        // Helpers\n+        //--------------------------------------------------------------------------\n+\n+        /**\n+         * Tells if a comment encompasses the entire line.\n+         * @param {string} line The source line with a trailing comment\n+         * @param {number} lineNumber The one-indexed line number this is on\n+         * @param {ASTNode} comment The comment to remove\n+         * @returns {boolean} If the comment covers the entire line\n+         */\n+        function isFullLineComment(line, lineNumber, comment) {\n+            const start = comment.loc.start,\n+                end = comment.loc.end,\n+                isFirstTokenOnLine = !line.slice(0, comment.loc.start.column).trim();\n+\n+            return comment &&\n+                (start.line < lineNumber || (start.line === lineNumber && isFirstTokenOnLine)) &&\n+                (end.line > lineNumber || (end.line === lineNumber && end.column === line.length));","path":"lib/rules/max-lines-per-function.js","position":null,"original_position":133,"commit_id":"8ed00877255abbb7bb4ddc2a40cbcfa8dc3a552f","original_commit_id":"0a747a2168538faeaa835de10c8b177009042531","user":{"login":"peteward44","id":6538543,"node_id":"MDQ6VXNlcjY1Mzg1NDM=","avatar_url":"https://avatars1.githubusercontent.com/u/6538543?v=4","gravatar_id":"","url":"https://api.github.com/users/peteward44","html_url":"https://github.com/peteward44","followers_url":"https://api.github.com/users/peteward44/followers","following_url":"https://api.github.com/users/peteward44/following{/other_user}","gists_url":"https://api.github.com/users/peteward44/gists{/gist_id}","starred_url":"https://api.github.com/users/peteward44/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peteward44/subscriptions","organizations_url":"https://api.github.com/users/peteward44/orgs","repos_url":"https://api.github.com/users/peteward44/repos","events_url":"https://api.github.com/users/peteward44/events{/privacy}","received_events_url":"https://api.github.com/users/peteward44/received_events","type":"User","site_admin":false},"body":"I've checked the ```max-len``` rule to see if it's got the same problem, but it's ok because they trim the end of the line previously. I've fixed this issue here though","created_at":"2018-06-20T21:01:36Z","updated_at":"2018-06-20T21:01:36Z","html_url":"https://github.com/eslint/eslint/pull/10188#discussion_r196941189","pull_request_url":"https://api.github.com/repos/eslint/eslint/pulls/10188","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/eslint/eslint/pulls/comments/196941189"},"html":{"href":"https://github.com/eslint/eslint/pull/10188#discussion_r196941189"},"pull_request":{"href":"https://api.github.com/repos/eslint/eslint/pulls/10188"}},"in_reply_to_id":196798405},"pull_request":{"url":"https://api.github.com/repos/eslint/eslint/pulls/10188","id":179759036,"node_id":"MDExOlB1bGxSZXF1ZXN0MTc5NzU5MDM2","html_url":"https://github.com/eslint/eslint/pull/10188","diff_url":"https://github.com/eslint/eslint/pull/10188.diff","patch_url":"https://github.com/eslint/eslint/pull/10188.patch","issue_url":"https://api.github.com/repos/eslint/eslint/issues/10188","number":10188,"state":"open","locked":false,"title":"New: Added max-lines-per-function rule (fixes #9842)","user":{"login":"peteward44","id":6538543,"node_id":"MDQ6VXNlcjY1Mzg1NDM=","avatar_url":"https://avatars1.githubusercontent.com/u/6538543?v=4","gravatar_id":"","url":"https://api.github.com/users/peteward44","html_url":"https://github.com/peteward44","followers_url":"https://api.github.com/users/peteward44/followers","following_url":"https://api.github.com/users/peteward44/following{/other_user}","gists_url":"https://api.github.com/users/peteward44/gists{/gist_id}","starred_url":"https://api.github.com/users/peteward44/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peteward44/subscriptions","organizations_url":"https://api.github.com/users/peteward44/orgs","repos_url":"https://api.github.com/users/peteward44/repos","events_url":"https://api.github.com/users/peteward44/events{/privacy}","received_events_url":"https://api.github.com/users/peteward44/received_events","type":"User","site_admin":false},"body":"**What is the purpose of this pull request? (put an \"X\" next to item)**\r\n\r\n[ ] Documentation update\r\n[ ] Bug fix ([template](https://raw.githubusercontent.com/eslint/eslint/master/templates/bug-report.md))\r\n[X] New rule ([template](https://raw.githubusercontent.com/eslint/eslint/master/templates/rule-proposal.md))\r\n[ ] Changes an existing rule ([template](https://raw.githubusercontent.com/eslint/eslint/master/templates/rule-change-proposal.md))\r\n[ ] Add autofixing to a rule\r\n[ ] Add a CLI option\r\n[ ] Add something to the core\r\n[ ] Other, please explain:\r\n\r\n**Please describe what the rule should do:**\r\n\r\nIt should allow a configurable limit of the max number of lines per function, much like how max-statements limits the number of statements. Also, there should be an \"ignoreComments\" boolean option, on by default, that skips comments when counting method length.\r\n\r\n**What category of rule is this? (place an \"X\" next to just one item)**\r\n\r\n[X] Enforces code style\r\n[ ] Warns about a potential error\r\n[ ] Suggests an alternate way of doing something\r\n[ ] Other (please specify:)\r\n\r\n**Provide 2-3 code examples that this rule will warn about:**\r\n\r\n```\r\n// eslint max-lines-per-function: [\"error\", 1]\r\n// Good\r\nfunction foo() { return 1 }\r\nconst bar = () => 2\r\n\r\n// Bad\r\nfunction foo() {\r\n    return 1\r\n}\r\nconst bar = () =>\r\n    2\r\n\r\n// eslint max-lines-per-function: [\"error\", 5, {ignoreComments: false}]\r\n// Good\r\nfunction foo() {\r\n    // This is a multi-line\r\n    // comment.\r\n    doSomething();\r\n}\r\n\r\n// Bad\r\nfunction foo() {\r\n    // This is a multi-line\r\n    // comment.\r\n    doSomething();\r\n    doSomethingElse();\r\n}\r\n\r\nfunction foo() {\r\n    // This is a multi-line\r\n    // comment that takes\r\n    // three lines.\r\n    doSomething();\r\n}\r\n\r\n// eslint max-lines-per-function: [\"error\", 3, {ignoreComments: true}]\r\n// Good\r\nfunction foo() {\r\n    // This is a multi-line\r\n    // comment.\r\n    doSomething();\r\n}\r\n\r\n// Bad\r\nfunction foo() {\r\n    // This is a multi-line\r\n    // comment.\r\n    doSomething();\r\n    doSomethingElse();\r\n}\r\n\r\nfunction foo() {\r\n    doSomething();\r\n    doSomethingElse();\r\n}\r\n```\r\n\r\n**Why should this rule be included in ESLint (instead of a plugin)?**\r\n\r\nIt is a simple, basic rule similar to what already exists, and is a natural extension of a few of them. It's also very widely generic, and although it could replace max-statements in some uses, it checks a different metric. It also does not conflict with any other rules, and it's pretty much independent from everything short of the language itself.\r\n\r\nOther linters and style guides in various languages already do similar:\r\n\r\n* Rubocop has Metrics/MethodLength which does exactly what I propose here, including the proposed option.\r\n* Google's JS style guide (by proxy of their C++ style guide), recommends 40 lines or fewer per function.\r\n* The Linux Kernel's style guide recommends 48 lines or fewer.\r\n\r\n**What changes did you make? (Give an overview)**\r\n\r\nAdded a new rule \"max-lines-per-function\", as suggested in original issue #9842. Although this issue hasn't been approved yet, I wrote a similar plugin for my own purposes and thought I might as well submit it to the prioject.\r\n\r\n**Is there anything you'd like reviewers to focus on?**\r\n\r\nNo","created_at":"2018-04-05T18:28:09Z","updated_at":"2018-06-20T21:01:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a10c32b5554ce099402b142c1f6c84058125a36f","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":131106229,"node_id":"MDU6TGFiZWwxMzExMDYyMjk=","url":"https://api.github.com/repos/eslint/eslint/labels/accepted","name":"accepted","color":"0052cc","default":false},{"id":253473350,"node_id":"MDU6TGFiZWwyNTM0NzMzNTA=","url":"https://api.github.com/repos/eslint/eslint/labels/feature","name":"feature","color":"bfd4f2","default":false},{"id":45798639,"node_id":"MDU6TGFiZWw0NTc5ODYzOQ==","url":"https://api.github.com/repos/eslint/eslint/labels/rule","name":"rule","color":"fbca04","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/eslint/eslint/pulls/10188/commits","review_comments_url":"https://api.github.com/repos/eslint/eslint/pulls/10188/comments","review_comment_url":"https://api.github.com/repos/eslint/eslint/pulls/comments{/number}","comments_url":"https://api.github.com/repos/eslint/eslint/issues/10188/comments","statuses_url":"https://api.github.com/repos/eslint/eslint/statuses/8ed00877255abbb7bb4ddc2a40cbcfa8dc3a552f","head":{"label":"peteward44:issue9842","ref":"issue9842","sha":"8ed00877255abbb7bb4ddc2a40cbcfa8dc3a552f","user":{"login":"peteward44","id":6538543,"node_id":"MDQ6VXNlcjY1Mzg1NDM=","avatar_url":"https://avatars1.githubusercontent.com/u/6538543?v=4","gravatar_id":"","url":"https://api.github.com/users/peteward44","html_url":"https://github.com/peteward44","followers_url":"https://api.github.com/users/peteward44/followers","following_url":"https://api.github.com/users/peteward44/following{/other_user}","gists_url":"https://api.github.com/users/peteward44/gists{/gist_id}","starred_url":"https://api.github.com/users/peteward44/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peteward44/subscriptions","organizations_url":"https://api.github.com/users/peteward44/orgs","repos_url":"https://api.github.com/users/peteward44/repos","events_url":"https://api.github.com/users/peteward44/events{/privacy}","received_events_url":"https://api.github.com/users/peteward44/received_events","type":"User","site_admin":false},"repo":{"id":128231183,"node_id":"MDEwOlJlcG9zaXRvcnkxMjgyMzExODM=","name":"eslint","full_name":"peteward44/eslint","owner":{"login":"peteward44","id":6538543,"node_id":"MDQ6VXNlcjY1Mzg1NDM=","avatar_url":"https://avatars1.githubusercontent.com/u/6538543?v=4","gravatar_id":"","url":"https://api.github.com/users/peteward44","html_url":"https://github.com/peteward44","followers_url":"https://api.github.com/users/peteward44/followers","following_url":"https://api.github.com/users/peteward44/following{/other_user}","gists_url":"https://api.github.com/users/peteward44/gists{/gist_id}","starred_url":"https://api.github.com/users/peteward44/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peteward44/subscriptions","organizations_url":"https://api.github.com/users/peteward44/orgs","repos_url":"https://api.github.com/users/peteward44/repos","events_url":"https://api.github.com/users/peteward44/events{/privacy}","received_events_url":"https://api.github.com/users/peteward44/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/peteward44/eslint","description":"A fully pluggable tool for identifying and reporting on patterns in JavaScript","fork":true,"url":"https://api.github.com/repos/peteward44/eslint","forks_url":"https://api.github.com/repos/peteward44/eslint/forks","keys_url":"https://api.github.com/repos/peteward44/eslint/keys{/key_id}","collaborators_url":"https://api.github.com/repos/peteward44/eslint/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/peteward44/eslint/teams","hooks_url":"https://api.github.com/repos/peteward44/eslint/hooks","issue_events_url":"https://api.github.com/repos/peteward44/eslint/issues/events{/number}","events_url":"https://api.github.com/repos/peteward44/eslint/events","assignees_url":"https://api.github.com/repos/peteward44/eslint/assignees{/user}","branches_url":"https://api.github.com/repos/peteward44/eslint/branches{/branch}","tags_url":"https://api.github.com/repos/peteward44/eslint/tags","blobs_url":"https://api.github.com/repos/peteward44/eslint/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/peteward44/eslint/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/peteward44/eslint/git/refs{/sha}","trees_url":"https://api.github.com/repos/peteward44/eslint/git/trees{/sha}","statuses_url":"https://api.github.com/repos/peteward44/eslint/statuses/{sha}","languages_url":"https://api.github.com/repos/peteward44/eslint/languages","stargazers_url":"https://api.github.com/repos/peteward44/eslint/stargazers","contributors_url":"https://api.github.com/repos/peteward44/eslint/contributors","subscribers_url":"https://api.github.com/repos/peteward44/eslint/subscribers","subscription_url":"https://api.github.com/repos/peteward44/eslint/subscription","commits_url":"https://api.github.com/repos/peteward44/eslint/commits{/sha}","git_commits_url":"https://api.github.com/repos/peteward44/eslint/git/commits{/sha}","comments_url":"https://api.github.com/repos/peteward44/eslint/comments{/number}","issue_comment_url":"https://api.github.com/repos/peteward44/eslint/issues/comments{/number}","contents_url":"https://api.github.com/repos/peteward44/eslint/contents/{+path}","compare_url":"https://api.github.com/repos/peteward44/eslint/compare/{base}...{head}","merges_url":"https://api.github.com/repos/peteward44/eslint/merges","archive_url":"https://api.github.com/repos/peteward44/eslint/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/peteward44/eslint/downloads","issues_url":"https://api.github.com/repos/peteward44/eslint/issues{/number}","pulls_url":"https://api.github.com/repos/peteward44/eslint/pulls{/number}","milestones_url":"https://api.github.com/repos/peteward44/eslint/milestones{/number}","notifications_url":"https://api.github.com/repos/peteward44/eslint/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/peteward44/eslint/labels{/name}","releases_url":"https://api.github.com/repos/peteward44/eslint/releases{/id}","deployments_url":"https://api.github.com/repos/peteward44/eslint/deployments","created_at":"2018-04-05T16:08:47Z","updated_at":"2018-06-13T20:30:58Z","pushed_at":"2018-06-20T20:37:28Z","git_url":"git://github.com/peteward44/eslint.git","ssh_url":"git@github.com:peteward44/eslint.git","clone_url":"https://github.com/peteward44/eslint.git","svn_url":"https://github.com/peteward44/eslint","homepage":"https://eslint.org","size":18136,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"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":"eslint:master","ref":"master","sha":"f93d6ff53acd19b39dbc1c7d0e5ffa7d71c826db","user":{"login":"eslint","id":6019716,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwMTk3MTY=","avatar_url":"https://avatars3.githubusercontent.com/u/6019716?v=4","gravatar_id":"","url":"https://api.github.com/users/eslint","html_url":"https://github.com/eslint","followers_url":"https://api.github.com/users/eslint/followers","following_url":"https://api.github.com/users/eslint/following{/other_user}","gists_url":"https://api.github.com/users/eslint/gists{/gist_id}","starred_url":"https://api.github.com/users/eslint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eslint/subscriptions","organizations_url":"https://api.github.com/users/eslint/orgs","repos_url":"https://api.github.com/users/eslint/repos","events_url":"https://api.github.com/users/eslint/events{/privacy}","received_events_url":"https://api.github.com/users/eslint/received_events","type":"Organization","site_admin":false},"repo":{"id":11061773,"node_id":"MDEwOlJlcG9zaXRvcnkxMTA2MTc3Mw==","name":"eslint","full_name":"eslint/eslint","owner":{"login":"eslint","id":6019716,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwMTk3MTY=","avatar_url":"https://avatars3.githubusercontent.com/u/6019716?v=4","gravatar_id":"","url":"https://api.github.com/users/eslint","html_url":"https://github.com/eslint","followers_url":"https://api.github.com/users/eslint/followers","following_url":"https://api.github.com/users/eslint/following{/other_user}","gists_url":"https://api.github.com/users/eslint/gists{/gist_id}","starred_url":"https://api.github.com/users/eslint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eslint/subscriptions","organizations_url":"https://api.github.com/users/eslint/orgs","repos_url":"https://api.github.com/users/eslint/repos","events_url":"https://api.github.com/users/eslint/events{/privacy}","received_events_url":"https://api.github.com/users/eslint/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/eslint/eslint","description":"A fully pluggable tool for identifying and reporting on patterns in JavaScript","fork":false,"url":"https://api.github.com/repos/eslint/eslint","forks_url":"https://api.github.com/repos/eslint/eslint/forks","keys_url":"https://api.github.com/repos/eslint/eslint/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eslint/eslint/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eslint/eslint/teams","hooks_url":"https://api.github.com/repos/eslint/eslint/hooks","issue_events_url":"https://api.github.com/repos/eslint/eslint/issues/events{/number}","events_url":"https://api.github.com/repos/eslint/eslint/events","assignees_url":"https://api.github.com/repos/eslint/eslint/assignees{/user}","branches_url":"https://api.github.com/repos/eslint/eslint/branches{/branch}","tags_url":"https://api.github.com/repos/eslint/eslint/tags","blobs_url":"https://api.github.com/repos/eslint/eslint/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eslint/eslint/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eslint/eslint/git/refs{/sha}","trees_url":"https://api.github.com/repos/eslint/eslint/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eslint/eslint/statuses/{sha}","languages_url":"https://api.github.com/repos/eslint/eslint/languages","stargazers_url":"https://api.github.com/repos/eslint/eslint/stargazers","contributors_url":"https://api.github.com/repos/eslint/eslint/contributors","subscribers_url":"https://api.github.com/repos/eslint/eslint/subscribers","subscription_url":"https://api.github.com/repos/eslint/eslint/subscription","commits_url":"https://api.github.com/repos/eslint/eslint/commits{/sha}","git_commits_url":"https://api.github.com/repos/eslint/eslint/git/commits{/sha}","comments_url":"https://api.github.com/repos/eslint/eslint/comments{/number}","issue_comment_url":"https://api.github.com/repos/eslint/eslint/issues/comments{/number}","contents_url":"https://api.github.com/repos/eslint/eslint/contents/{+path}","compare_url":"https://api.github.com/repos/eslint/eslint/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eslint/eslint/merges","archive_url":"https://api.github.com/repos/eslint/eslint/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eslint/eslint/downloads","issues_url":"https://api.github.com/repos/eslint/eslint/issues{/number}","pulls_url":"https://api.github.com/repos/eslint/eslint/pulls{/number}","milestones_url":"https://api.github.com/repos/eslint/eslint/milestones{/number}","notifications_url":"https://api.github.com/repos/eslint/eslint/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eslint/eslint/labels{/name}","releases_url":"https://api.github.com/repos/eslint/eslint/releases{/id}","deployments_url":"https://api.github.com/repos/eslint/eslint/deployments","created_at":"2013-06-29T23:59:48Z","updated_at":"2018-06-20T19:42:03Z","pushed_at":"2018-06-20T20:37:30Z","git_url":"git://github.com/eslint/eslint.git","ssh_url":"git@github.com:eslint/eslint.git","clone_url":"https://github.com/eslint/eslint.git","svn_url":"https://github.com/eslint/eslint","homepage":"https://eslint.org","size":18047,"stargazers_count":11644,"watchers_count":11644,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2000,"mirror_url":null,"archived":false,"open_issues_count":304,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":2000,"open_issues":304,"watchers":11644,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/eslint/eslint/pulls/10188"},"html":{"href":"https://github.com/eslint/eslint/pull/10188"},"issue":{"href":"https://api.github.com/repos/eslint/eslint/issues/10188"},"comments":{"href":"https://api.github.com/repos/eslint/eslint/issues/10188/comments"},"review_comments":{"href":"https://api.github.com/repos/eslint/eslint/pulls/10188/comments"},"review_comment":{"href":"https://api.github.com/repos/eslint/eslint/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/eslint/eslint/pulls/10188/commits"},"statuses":{"href":"https://api.github.com/repos/eslint/eslint/statuses/8ed00877255abbb7bb4ddc2a40cbcfa8dc3a552f"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"peteward44"}}