{"id":13756433,"url":"https://github.com/form8ion/eslint-config","last_synced_at":"2026-03-09T07:04:46.666Z","repository":{"id":34909557,"uuid":"188507258","full_name":"form8ion/eslint-config","owner":"form8ion","description":"shareable configuration for ESLint","archived":false,"fork":false,"pushed_at":"2026-03-04T09:16:49.000Z","size":3365,"stargazers_count":0,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-04T11:05:24.420Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://npm.im/@form8ion/eslint-config","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/form8ion.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-05-25T01:35:44.000Z","updated_at":"2026-03-04T09:16:11.000Z","dependencies_parsed_at":"2023-09-26T05:04:30.770Z","dependency_job_id":"43c96f2d-4eb5-4372-98bd-1b78f689db61","html_url":"https://github.com/form8ion/eslint-config","commit_stats":{"total_commits":470,"total_committers":8,"mean_commits":58.75,"dds":"0.44042553191489364","last_synced_commit":"5a6b1390a8df7273e2d9265f7c86ab3329578d8d"},"previous_names":[],"tags_count":169,"template":false,"template_full_name":null,"purl":"pkg:github/form8ion/eslint-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/form8ion%2Feslint-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/form8ion%2Feslint-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/form8ion%2Feslint-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/form8ion%2Feslint-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/form8ion","download_url":"https://codeload.github.com/form8ion/eslint-config/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/form8ion%2Feslint-config/sbom","scorecard":{"id":343338,"data":{"date":"2025-08-11","repo":{"name":"github.com/form8ion/eslint-config","commit":"980902de58c12b04b866d0dcd8908b32158813fd"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/22 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":10,"reason":"28 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/node-ci.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/form8ion/eslint-config/node-ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/form8ion/eslint-config/release.yml/master?enable=pin","Info:   4 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/node-ci.yml:48","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:11","Info: topLevel 'contents' permission set to 'read': .github/workflows/node-ci.yml:56","Info: topLevel 'contents' permission set to 'read': .github/workflows/release.yml:7"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/form8ion/.github/SECURITY.md:1","Info: Found linked content: github.com/form8ion/.github/SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: github.com/form8ion/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"15 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-62cx-5xj4-wfm4","Warn: Project is vulnerable to: GHSA-pr45-cg4x-ff4m","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-8hfj-j24r-96c4","Warn: Project is vulnerable to: GHSA-wc69-rhjr-hc9g","Warn: Project is vulnerable to: GHSA-56x4-j7p9-fcf9","Warn: Project is vulnerable to: GHSA-v78c-4p63-2j6c","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T06:29:54.678Z","repository_id":34909557,"created_at":"2025-08-18T06:29:54.679Z","updated_at":"2025-08-18T06:29:54.679Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30283734,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T11:00:44.018Z","updated_at":"2026-03-09T07:04:46.644Z","avatar_url":"https://github.com/form8ion.png","language":"JavaScript","funding_links":[],"categories":["Shareable Config"],"sub_categories":["Core"],"readme":"# eslint-config\n\n[shareable configuration](https://eslint.org/docs/developer-guide/shareable-configs#shareable-configs)\nfor [ESLint](https://eslint.org)\n\n\u003c!--status-badges start --\u003e\n\n[![Node CI Workflow Status][github-actions-ci-badge]][github-actions-ci-link]\n![SLSA Level 2][slsa-badge]\n\n\u003c!--status-badges end --\u003e\n\n## Table of Contents\n\n* [Philosophy](#philosophy)\n* [Usage](#usage)\n  * [Extending under your own scope](#extending-under-your-own-scope)\n    * [Installation](#installation)\n    * [Extend from the file exported as `main` in your config package](#extend-from-the-file-exported-as-main-in-your-config-package)\n    * [Example configs that extend this one](#example-configs-that-extend-this-one)\n  * [For projects in the `form8ion` organization](#for-projects-in-the-form8ion-organization)\n    * [Installation](#installation-1)\n    * [Add to the project config](#add-to-the-project-config)\n* [Contributing](#contributing)\n  * [Dependencies](#dependencies)\n  * [Verification](#verification)\n* [Related Projects](#related-projects)\n\n## Philosophy\n\nLint rules can be controversial, but I believe they should be extensive and\nstrict. I think that consistency is more valuable in a codebase than personal\npreference, especially when those preferences differ between team members and\neven individual members at different times.\n\nBecause of this, the [Airbnb base config](https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb-base)\nis extended as the as the base ruleset of this config. It is not extended\nbecause of agreeing with all of the rules, but because it defines an extensive\nruleset in a strict way. Rules are overridden from there, both to make some\nmore strict and to make some enforce a different convention.\n\n## Usage\n\n\u003c!--consumer-badges start --\u003e\n\n[![npm][npm-badge]][npm-link]\n[![MIT license][license-badge]][license-link]\n![node][node-badge]\n\n\u003c!--consumer-badges end --\u003e\n\n### Extending under your own scope\n\nExtending this config allows you to use this config as a base for your own\nconfig, enabling you to define further rules or override some defined in this\nconfig.\n\nIt is recommended to create your own config early rather than using this one\ndirectly even if you do not define any overrides at first. That way, your\nprojects will already depend on your custom config when you decide to define\ncustom rules later.\n\n#### Installation\n\n```sh\n$ npm install @form8ion/eslint-config --save-prod\n```\n\n#### Extend from the file exported as `main` in your config package\n\nNote that you can use the [shorthand version](https://eslint.org/docs/developer-guide/shareable-configs#npm-scoped-modules)\nof the config name\n\n```js\nmodule.exports = {extends: '@form8ion'};\n```\n\n#### Example configs that extend this one\n\n* [@travi/eslint-config](https://npm.im/@travi/eslint-config)\n* [@dsmjs/eslint-config](https://npm.im/@dsmjs/eslint-config)\n\n### For projects in the `form8ion` organization\n\n#### Installation\n\n```sh\n$ npm install @form8ion/eslint-config --save-dev\n```\n\n#### Add to the project config\n\nSuch as in an `.eslintrc.yml`\n\n```yml\nextends: '@form8ion'\n```\n\n## Contributing\n\n\u003c!--contribution-badges start --\u003e\n\n[![Conventional Commits][commit-convention-badge]][commit-convention-link]\n[![Commitizen friendly][commitizen-badge]][commitizen-link]\n[![semantic-release][semantic-release-badge]][semantic-release-link]\n[![PRs Welcome][PRs-badge]][PRs-link]\n[![Renovate][renovate-badge]][renovate-link]\n\n\u003c!--contribution-badges end --\u003e\n\n### Dependencies\n\n```sh\n$ nvm install\n$ npm install\n```\n\n### Verification\n\n```sh\n$ npm test\n```\n\n## Related Projects\n\n* [eslint-config-react](https://github.com/form8ion/eslint-config-react)\n* [eslint-config-hal](https://github.com/form8ion/eslint-config-hal)\n* [eslint-config-mocha](https://github.com/form8ion/eslint-config-mocha)\n* [eslint-config-cucumber](https://github.com/form8ion/eslint-config-cucumber)\n* [eslint-config-cypress](https://github.com/form8ion/eslint-config-cypress)\n\n[npm-link]: https://www.npmjs.com/package/@form8ion/eslint-config\n\n[npm-badge]: https://img.shields.io/npm/v/@form8ion/eslint-config?logo=npm\n\n[license-link]: LICENSE\n\n[license-badge]: https://img.shields.io/github/license/form8ion/eslint-config.svg\n\n[commit-convention-link]: https://conventionalcommits.org\n\n[commit-convention-badge]: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg\n\n[commitizen-link]: http://commitizen.github.io/cz-cli/\n\n[commitizen-badge]: https://img.shields.io/badge/commitizen-friendly-brightgreen.svg\n\n[semantic-release-link]: https://github.com/semantic-release/semantic-release\n\n[semantic-release-badge]: https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release\n\n[PRs-link]: http://makeapullrequest.com\n\n[PRs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg\n\n[github-actions-ci-link]: https://github.com/form8ion/eslint-config/actions?query=workflow%3A%22Node.js+CI%22+branch%3Amaster\n\n[github-actions-ci-badge]: https://img.shields.io/github/actions/workflow/status/form8ion/eslint-config/node-ci.yml.svg?branch=master\u0026logo=github\n\n[node-badge]: https://img.shields.io/node/v/@form8ion/eslint-config?logo=node.js\n\n[renovate-link]: https://renovatebot.com\n\n[renovate-badge]: https://img.shields.io/badge/renovate-enabled-brightgreen.svg?logo=renovatebot\n\n[slsa-badge]: https://slsa.dev/images/gh-badge-level2.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fform8ion%2Feslint-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fform8ion%2Feslint-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fform8ion%2Feslint-config/lists"}