Repository navigation
Integrate Detekt via custom aspect_rules_lint aspect - #3
Merged
Merged
Conversation
Introduce custom Detekt aspect in tools/lint/detekt.bzl using aspect_rules_lint. Fetch io.gitlab.arturbosch.detekt:detekt-cli via rules_jvm_external maven dependency and run via java_binary. Wire Detekt into linters.bzl and .bazelrc, producing both terminal output and SARIF reports. Clean up ktlint configuration and baseline.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces
ktlintwithdetektas Calque's static analysis tool while keepingktfmtas the authoritative Kotlin formatter, eliminating rule overlap and enabling deep Kotlin-specific smell and complexity checks.Key Changes
io.gitlab.arturbosch.detekt:detekt-cli:1.23.8torules_jvm_externalmaven dependencies and declared ajava_binaryin//tools/lint:detekt.lint_detekt_aspectintools/lint/detekt.bzlbacked byaspect_rules_lint'slint_aspect.bzl. It outputs both human-readable console diagnostics and standard SARIF reports.detekt.ymlto the root with guard clause exclusions enabled and baseline support.detektintotools/lint/linters.bzland.bazelrcunder--config=lint.CognateDetector.ktto extract length constants and use idiomatic collection predicates, resolvingReturnCountandMagicNumberrules.ktlintrepo extensions,.editorconfigktlint rules, and baseline file.Verification
bazelisk run //:format&bazelisk run //:format.checkpass cleanly.bazelisk build --config=lint //...runs Detekt across all targets and passes.bazelisk test //...passes (21/21 tests passing).