{"repo":"cqfn/aibolit","free":true,"listed":false,"github":"https://github.com/cqfn/aibolit","clone":"git clone https://github.com/cqfn/aibolit.git","description":"A Static Analyzer for Java Powered by Machine Learning: Identifies Anti-Patterns Begging for Refactoring","language":"Java","stars":113,"topics":["machine-learning","machine-learning-algorithms","static-analysis","quality-control","code-quality","python","refactoring"],"license":"MIT","category":"dev-tools","readme_excerpt":"ML-Based Static Analyzer for Java Learn how Aibolit works in our [White Paper]. First, you install it (you must have Python 3.11+ and Pip installed): To run the latest version in Docker: To analyze your Java sources, located at src/java (for example), run: Also, you can set a folder with Java files: CLI usage example: It will run recommendation function for the model (model is located in [aibolit/binary files/model.pkl][model]). The model finds a pattern which contribution is the largest to the Cyclomatic Complexity. If anything is found, you will see all recommendations for the mentioned patterns. You can see the list of all patterns in Patterns.md. The output of recommendation will be redirected to the stdout. If the program has the 0 exit code, it means that all analyzed files do not have any issues. If the program has the 1 exit code, it means that at least 1 analyzed file has an issue. If the program has the 2 exit code, it means that program crash occurred. You can suppress certain patterns (comma separated value) and they will be ignored. They won't be included into the report, also their importance will be set to 0. You can change the format, using the --format parameter. The default value is --format=compact . It will output sorted patterns by importance in descending order and grouped by a pattern name: (P21: 30.95612931128819 1/4) means the following: You can use format=long . In this case all results will be sorted by a line number: You can also choose xml format.","default_branch":null,"files":null,"tree":[],"storefront":"/r/cqfn","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/cqfn/aibolit/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}