{"id":18028216,"url":"https://github.com/llorllale/bleach","last_synced_at":"2026-01-27T20:19:23.211Z","repository":{"id":80584387,"uuid":"128108940","full_name":"llorllale/bleach","owner":"llorllale","description":"My set of static analysis rules for projects.","archived":false,"fork":false,"pushed_at":"2018-04-04T21:04:12.000Z","size":23,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-17T05:58:32.158Z","etag":null,"topics":["checkstyle","checkstyle-plugin","maven-pom","static-analysis"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/llorllale.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":"2018-04-04T19:10:01.000Z","updated_at":"2018-04-06T19:40:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"2ea91706-326f-432d-af9c-f11d2074f32b","html_url":"https://github.com/llorllale/bleach","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llorllale%2Fbleach","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llorllale%2Fbleach/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llorllale%2Fbleach/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llorllale%2Fbleach/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/llorllale","download_url":"https://codeload.github.com/llorllale/bleach/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247243730,"owners_count":20907325,"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","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":["checkstyle","checkstyle-plugin","maven-pom","static-analysis"],"created_at":"2024-10-30T08:14:30.582Z","updated_at":"2026-01-27T20:19:18.168Z","avatar_url":"https://github.com/llorllale.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# bleach ![icon](/src/main/resources/icons/icon_32.png)\n\nExterminate bugs from your code!\n\nActually, no, these are just my personal uniform static analysis rules for my projects.\n\n## Motivation\n\n* I keep reusing the same set of rules across my projects so I need them defined in one place.\n* The rules themselves are starting to become a separate concern on their own: they are starting to evolve at a different pace from the projects where they're being used.\n* My rules are my own! They reflect my personal preferences.\n\n## Strictness\n\nMy style guide for test code is a bit less strict than that for production code.\n\nUse the `extra-bleach` profile for the `${project.build.sourceDirectory}` directory. This profile applies the full set of rules (most strict).\n\nUse the `bleach` profile for the `${project.build.testSourceDirectory}` directory. This profile excludes the following rules (less strict):\n\n* **[AvoidStaticImport](http://checkstyle.sourceforge.net/config_imports.html#AvoidStaticImport)**: My test framework of choice, [JUnit](https://junit.org), heavily relies on static methods. A declarative, OO approached would have been ideal but that's what we've got. Avoiding the use of static imports of these junit methods hurts readability of the tests.\n\n* **[MethodName](http://checkstyle.sourceforge.net/config_naming.html#MethodName)**: Test method names should express the test's intent. Although I still enforce javadocs on `@Test` methods, it's still better to have full sentences in these method names so that a) CRs are a bit easier, and b) reading the stack trace when a test fails is also easier.\n\n* **[MultipleStringLiterals](http://checkstyle.sourceforge.net/config_coding.html#MultipleStringLiterals)**: Tests should ideally share no dependencies. Also, having those string attributes declared at the top of the test class just serve as a distraction from what you *really* want to look at: the tests themselves.\n\n* **[AbbreviationAsWordInName](http://checkstyle.sourceforge.net/config_naming.html#AbbreviationAsWordInName)**: Applies mainly to integration tests where the test class' name ends in \"IT\".\n\n\u003cbr/\u003e\n\n\u003cdiv\u003eIcons made by \u003ca href=\"http://www.freepik.com\" title=\"Freepik\"\u003eFreepik\u003c/a\u003e from \u003ca href=\"https://www.flaticon.com/\" title=\"Flaticon\"\u003ewww.flaticon.com\u003c/a\u003e is licensed by \u003ca href=\"http://creativecommons.org/licenses/by/3.0/\" title=\"Creative Commons BY 3.0\" target=\"_blank\"\u003eCC 3.0 BY\u003c/a\u003e\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllorllale%2Fbleach","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllorllale%2Fbleach","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllorllale%2Fbleach/lists"}