{"id":14978260,"url":"https://github.com/intellicode/eslint-plugin-react-native","last_synced_at":"2025-09-18T00:44:48.916Z","repository":{"id":39708561,"uuid":"46659634","full_name":"Intellicode/eslint-plugin-react-native","owner":"Intellicode","description":"React Native plugin for ESLint","archived":false,"fork":false,"pushed_at":"2024-12-30T20:27:43.000Z","size":824,"stargazers_count":742,"open_issues_count":83,"forks_count":131,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-20T21:14:48.675Z","etag":null,"topics":["eslint-plugin","javascript","npm","react-native"],"latest_commit_sha":null,"homepage":"","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/Intellicode.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}},"created_at":"2015-11-22T12:27:51.000Z","updated_at":"2025-05-15T13:44:51.000Z","dependencies_parsed_at":"2024-01-29T16:57:52.863Z","dependency_job_id":"9659f77f-ec15-4c54-ace1-208c6c86b123","html_url":"https://github.com/Intellicode/eslint-plugin-react-native","commit_stats":{"total_commits":286,"total_committers":52,"mean_commits":5.5,"dds":0.5874125874125874,"last_synced_commit":"aaefa10da25b75c77e4e43649e6b31295dd80f40"},"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"purl":"pkg:github/Intellicode/eslint-plugin-react-native","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Intellicode%2Feslint-plugin-react-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Intellicode%2Feslint-plugin-react-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Intellicode%2Feslint-plugin-react-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Intellicode%2Feslint-plugin-react-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Intellicode","download_url":"https://codeload.github.com/Intellicode/eslint-plugin-react-native/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Intellicode%2Feslint-plugin-react-native/sbom","scorecard":{"id":67054,"data":{"date":"2025-08-11","repo":{"name":"github.com/Intellicode/eslint-plugin-react-native","commit":"0c0c39a087785e6d159cf99aff2aa90d36f5695f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"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":"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":1,"reason":"Found 3/18 approved changesets -- score normalized to 1","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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yaml:1","Info: no jobLevel write permissions found"],"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":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"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":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/Intellicode/eslint-plugin-react-native/build.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/Intellicode/eslint-plugin-react-native/build.yaml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   1 npmCommand 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":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"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":"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":"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":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3"],"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-15T02:49:29.260Z","repository_id":39708561,"created_at":"2025-08-15T02:49:29.260Z","updated_at":"2025-08-15T02:49:29.260Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275691009,"owners_count":25510500,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-17T02:00:09.119Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["eslint-plugin","javascript","npm","react-native"],"created_at":"2024-09-24T13:57:10.472Z","updated_at":"2025-09-18T00:44:48.890Z","avatar_url":"https://github.com/Intellicode.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESLint plugin for React Native\n\n# Project update\n\nDear users, first of all, thanks for using the plugin! At the moment development activity is low, I've personally not worked with React Native for many years and have little time to continue updating the plugin. I'll do my best to update the plugin to ensure compatibility with new eslint versions, but unfortunately I do not have time to asses new features/pull requests. Thanks for your understanding!\n\n[![Greenkeeper badge](https://badges.greenkeeper.io/Intellicode/eslint-plugin-react-native.svg)](https://greenkeeper.io/)\n\n[![Maintenance Status][status-image]][status-url] [![NPM version][npm-image]][npm-url] [![Coverage Status][coverage-image]][coverage-url]\n\nReact Native specific linting rules for ESLint. This repository is structured like (and contains code from) the excellent [eslint-plugin-react](http://github.com/yannickcr/eslint-plugin-react).\n\n# Installation\n\nInstall [ESLint](https://www.github.com/eslint/eslint) either locally or globally.\n\n```sh\n$ npm install --save-dev eslint\n```\n\nTo make most use of this plugin, its recommended to install [eslint-plugin-react](http://github.com/yannickcr/eslint-plugin-react) in addition to [ESLint](https://www.github.com/eslint/eslint). If you installed `ESLint` globally, you have to install eslint-plugin-react globally too. Otherwise, install it locally.\n\n```sh\n$ npm install --save-dev eslint-plugin-react\n```\n\nSimilarly, install eslint-plugin-react-native\n\n```sh\n$ npm install --save-dev eslint-plugin-react-native\n```\n\n# Configuration\n\nAdd `plugins` section and specify ESLint-plugin-React (optional) and ESLint-plugin-react-native as a plugin.\n\n```json\n{\n  \"plugins\": [\"react\", \"react-native\"]\n}\n```\n\nIf it is not already the case you must also configure `ESLint` to support JSX.\n\n```json\n{\n  \"parserOptions\": {\n    \"ecmaFeatures\": {\n      \"jsx\": true\n    }\n  }\n}\n```\n\nIn order to whitelist all _browser-like_ globals, add `react-native/react-native` to your config.\n\n```json\n{\n  \"env\": {\n    \"react-native/react-native\": true\n  }\n}\n```\n\nTo use another stylesheet providers.\n\n```json\nsettings: {\n    'react-native/style-sheet-object-names': ['EStyleSheet', 'OtherStyleSheet', 'PStyleSheet']\n}\n```\n\nFinally, enable all of the rules that you would like to use.\n\n```json\n{\n  \"rules\": {\n    \"react-native/no-unused-styles\": 2,\n    \"react-native/split-platform-components\": 2,\n    \"react-native/no-inline-styles\": 2,\n    \"react-native/no-color-literals\": 2,\n    \"react-native/no-raw-text\": 2,\n    \"react-native/no-single-element-style-arrays\": 2\n  }\n}\n```\n\n# List of supported rules\n\n- [no-unused-styles](docs/rules/no-unused-styles.md): Detect `StyleSheet` rules which are not used in your React components\n- [sort-styles](docs/rules/sort-styles.md): Require style definitions to be sorted alphabetically\n- [split-platform-components](docs/rules/split-platform-components.md): Enforce using platform specific filenames when necessary\n- [no-inline-styles](docs/rules/no-inline-styles.md): Detect JSX components with inline styles that contain literal values\n- [no-color-literals](docs/rules/no-color-literals.md): Detect `StyleSheet` rules and inline styles containing color literals instead of variables\n- [no-raw-text](docs/rules/no-raw-text.md): Detect raw text outside of `Text` component\n- [no-single-element-style-arrays](docs/rules/no-single-element-style-arrays.md): No style arrays that have 1 element only `\u003cView style={[{height: 10}]}/\u003e`\n\n[npm-url]: https://npmjs.org/package/eslint-plugin-react-native\n[npm-image]: http://img.shields.io/npm/v/eslint-plugin-react-native.svg?style=flat-square\n[coverage-url]: https://coveralls.io/r/Intellicode/eslint-plugin-react-native?branch=master\n[coverage-image]: http://img.shields.io/coveralls/Intellicode/eslint-plugin-react-native/master.svg?style=flat-square\n[status-url]: https://github.com/Intellicode/eslint-plugin-react-native/pulse\n[status-image]: http://img.shields.io/badge/status-maintained-brightgreen.svg?style=flat-square\n\n# Shareable configurations\n\n## All\n\nThis plugin also exports an `all` configuration that includes every available rule.\n\n```js\n{\n  \"plugins\": [\n    /* ... */\n    \"react-native\"\n  ],\n  \"extends\": [/* ... */, \"plugin:react-native/all\"]\n}\n```\n\n**Note**: These configurations will import `eslint-plugin-react-native` and enable JSX in [parser options](http://eslint.org/docs/user-guide/configuring#specifying-parser-options).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintellicode%2Feslint-plugin-react-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintellicode%2Feslint-plugin-react-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintellicode%2Feslint-plugin-react-native/lists"}