back to home

felipebz / zpa

Parser and static code analysis tool for PL/SQL and Oracle SQL.

238 stars
81 forks
21 issues
KotlinHTMLPLSQL

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing felipebz/zpa in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/felipebz/zpa)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

ZPA ZPA is parser and static code analysis tool for PL/SQL and Oracle SQL. You can use it in a SonarQube on-premise instance. SonarQube is an open platform to manage code quality. See some examples in our SonarQube instance! Do you want to use this analyzer in a project hosted on SonarCloud? Try the zpa-cli! Installation • Download the latest sonar-zpa-plugin release and copy to the SONARQUBE_HOME/extensions/plugins directory; • Restart your SonarQube server; • Navigate to the Marketplace (SONARQUBE_URL/marketplace?filter=installed). It should list "ZPA" on the tab "Installed Plugins"; • Run an analysis with SonarScanner. Compatibility matrix | ZPA version | SonarQube version (min/max) | |------------------------|-----------------------------| | 4.0.0 | 25.2 / 25.10 | | 4.1.0 (in development) | 25.8 / 26.1 | ZPA Toolkit The ZPA Toolkit is visual tool to review the AST (abstract syntax tree) and the symbol table generated by the parser. The latest ZPA Toolkit can be downloaded from the releases page and it requires JDK 11 or newer. Contribute Everyone is welcome to contribute. Please read our contribution guidelines for more information. There are a few things you need to know about the code. It is divided in these modules: • - Demo project showing how to extend ZPA with custom coding rules. • - The SonarQube plugin itself, this module contains all the code necessary to integrate with the SonarQube platform. • - The built-in coding rules provided by ZPA. • - Test helper for coding rules, it can be used to test custom rules. • - The heart of this project. It contains the lexer, the parser and the code required to understand and process PL/SQL code. • - A visual tool to review the AST (abstract syntax tree) generated by the parser. The API exposed to custom plugins must be located in the package (it's a requirement from the SonarQube server). The classes located outside this package are not prepared for external consumption, so if you use them, your code can break without any further notice. Running the integration tests There are two sets of integration tests: • sonar-zpa-plugin/integrationTest: checks if the metrics are imported correctly in SonarQube • zpa-checks/integrationTest: checks the quality of parser and rules against real-world code To run the integrations tests, first update the submodules: git submodule update --init --recursive Build the main plugin and the custom rules example: ./gradlew build publishToMavenLocal ./gradlew build -p plsql-custom-rules Then run the tests: ./gradlew integrationTest By default, the tests will be executed using SonarQube Community Build 25.8. You can change the SonarQube version using the property , passing a value in the format , like , or for an exact release including build number: ./gradlew integrationTest -Dsonar.runtimeVersion=LATEST_RELEASE[25.8]