felipebz/zpa

GitHub: felipebz/zpa

专为 Oracle PL/SQL 设计的静态代码分析工具,可无缝集成 SonarQube 实现数据库代码质量门禁。

Stars: 237 | Forks: 81

# ZPA [![最新版本](https://img.shields.io/github/release/felipebz/zpa.svg) ](https://github.com/felipebz/zpa/releases/latest) [![构建](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5a47c32338064715.svg)](https://github.com/felipebz/zpa/actions/workflows/build.yml) [![质量阀状态](https://sonarqube.felipebz.com/api/project_badges/measure?project=com.felipebz.zpa%3Azpa&metric=alert_status)](https://sonarqube.felipebz.com/dashboard?id=com.felipebz.zpa%3Azpa) ZPA 是 PL/SQL 和 Oracle SQL 的解析器及静态代码分析工具。 你可以在 [SonarQube](https://www.sonarqube.org) 本地实例中使用它。SonarQube 是一个用于管理代码质量的开放平台。 请查看我们的 [SonarQube 实例](https://sonarqube.felipebz.com/projects?languages=plsqlopen) 中的一些示例! 想在托管于 [SonarCloud](https://sonarcloud.io) 的项目中使用此分析器吗?试试 [zpa-cli](https://github.com/felipebz/zpa-cli) 吧! ## 安装说明 - 下载 [最新的 sonar-zpa-plugin 版本](https://github.com/felipebz/zpa/releases/latest) 并复制到 SONARQUBE_HOME/extensions/plugins 目录; - 重启 SonarQube 服务器; - 导航到 Marketplace (SONARQUBE_URL/marketplace?filter=installed)。它应该在 "Installed Plugins" 标签页下列出 "ZPA"; - 使用 [SonarScanner](https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/overview/) 运行分析。 ## 兼容性矩阵 | ZPA 版本 | SonarQube 版本 (最小/最大) | |------------------------|-----------------------------| | 4.0.0 | 25.2 / 25.10 | | 4.1.0 (开发中) | 25.8 / 26.1 | ## ZPA Toolkit ZPA Toolkit 是一个可视化工具,用于查看解析器生成的 AST (抽象语法树) 和符号表。 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/3fa5c708f0064716.png) 最新的 ZPA Toolkit 可以从 [发布页面](https://github.com/felipebz/zpa/releases/latest) 下载,它需要 JDK 11 或更新版本。 ### 运行集成测试 有两组集成测试: - [sonar-zpa-plugin/integrationTest](https://github.com/felipebz/zpa/tree/main/sonar-zpa-plugin/src/integrationTest):检查指标是否正确导入到 SonarQube 中 - [zpa-checks/integrationTest](https://github.com/felipebz/zpa/tree/main/zpa-checks/src/integrationTest):针对真实代码检查解析器和规则的质量 要运行集成测试,首先更新子模块: ``` git submodule update --init --recursive ``` 构建主插件和自定义规则示例: ``` ./gradlew build publishToMavenLocal ./gradlew build -p plsql-custom-rules ``` 然后运行测试: ``` ./gradlew integrationTest ``` 默认情况下,测试将使用 SonarQube Community Build 25.8 执行。你可以使用属性 `sonar.runtimeVersion` 更改 SonarQube 版本,传递格式为 `LATEST_RELEASE[number]` 的值,例如 `LATEST_RELEASE[25.3]`,或者 `a.b.c.d` 表示包含内部版本号的精确版本: ``` ./gradlew integrationTest -Dsonar.runtimeVersion=LATEST_RELEASE[25.8] ```
标签:JS文件枚举, Kafka, Oracle SQL, PL/SQL, SAST, SonarQube插件, ZPA, 代码规范, 后台面板检测, 安全专业人员, 数据库开发, 盲注攻击, 语法分析器, 错误基检测, 静态代码分析