All Projects → felipebz → Zpa

felipebz / Zpa

Licence: lgpl-3.0
A parser and source code analyzer for PL/SQL and Oracle SQL.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Zpa

Sonar Java
☕️ SonarSource Static Analyzer for Java Code Quality and Security
Stars: ✭ 745 (+500.81%)
Mutual labels:  static-analysis, analysis, quality, sonarqube
Sonarondocker
🐳 📡 Docker way of running SonarQube + any DB
Stars: ✭ 25 (-79.84%)
Mutual labels:  static-analysis, quality, sonarqube
sonar-scala
A free and open-source SonarQube plugin for static code analysis of Scala projects.
Stars: ✭ 113 (-8.87%)
Mutual labels:  quality, static-analysis, sonarqube
sbt-sonar
An sbt plugin which provides an easy way to integrate Scala projects with SonarQube.
Stars: ✭ 62 (-50%)
Mutual labels:  quality, analysis, sonarqube
sonarlint4netbeans
SonarLint integration for Apache Netbeans
Stars: ✭ 23 (-81.45%)
Mutual labels:  quality, static-analysis, sonarqube
Sonarjs
SonarSource Static Analyzer for JavaScript and TypeScript
Stars: ✭ 696 (+461.29%)
Mutual labels:  static-analysis, sonarqube
Sonarts
Static code analyzer for TypeScript
Stars: ✭ 776 (+525.81%)
Mutual labels:  static-analysis, sonarqube
Sonar Jproperties Plugin
SonarQube Java Properties Analyzer
Stars: ✭ 5 (-95.97%)
Mutual labels:  static-analysis, sonarqube
Structured Acceptance Test
An open format definition for static analysis tools
Stars: ✭ 10 (-91.94%)
Mutual labels:  static-analysis, analysis
Spoon
Spoon is a metaprogramming library to analyze and transform Java source code (up to Java 15). 🥄 is made with ❤️, 🍻 and ✨. It parses source files to build a well-designed AST with powerful analysis and transformation API.
Stars: ✭ 1,078 (+769.35%)
Mutual labels:  static-analysis, parser
Static Analysis
⚙️ A curated list of static analysis (SAST) tools for all programming languages, config files, build tools, and more.
Stars: ✭ 9,310 (+7408.06%)
Mutual labels:  static-analysis, analysis
Sonarqube
Continuous Inspection
Stars: ✭ 6,365 (+5033.06%)
Mutual labels:  static-analysis, sonarqube
Phan
Phan is a static analyzer for PHP. Phan prefers to avoid false-positives and attempts to prove incorrectness rather than correctness.
Stars: ✭ 5,194 (+4088.71%)
Mutual labels:  static-analysis, analysis
Security Code Scan
Vulnerability Patterns Detector for C# and VB.NET
Stars: ✭ 550 (+343.55%)
Mutual labels:  static-analysis, analysis
Codecharta
CodeCharta visualizes multiple code metrics using 3D tree maps.
Stars: ✭ 85 (-31.45%)
Mutual labels:  sonarqube, parser
Sonar Dotnet
Code analyzer for C# and VB.NET projects https://redirect.sonarsource.com/plugins/vbnet.html
Stars: ✭ 466 (+275.81%)
Mutual labels:  static-analysis, sonarqube
Codechecker
CodeChecker is an analyzer tooling, defect database and viewer extension for the Clang Static Analyzer and Clang Tidy
Stars: ✭ 1,209 (+875%)
Mutual labels:  static-analysis, analysis
Pyreportcard
🚥 A report card for Python application
Stars: ✭ 90 (-27.42%)
Mutual labels:  analysis, quality
Qualinsight Plugins Sonarqube Badges
Plugin for SonarQube that generates badges displaying information about a project's or view's quality.
Stars: ✭ 108 (-12.9%)
Mutual labels:  quality, sonarqube
Binee
Binee: binary emulation environment
Stars: ✭ 408 (+229.03%)
Mutual labels:  static-analysis, analysis

Z PL/SQL Analyzer - ZPA

Latest release Build Status Azure DevOps coverage Azure DevOps tests Quality Gate Status

The Z PL/SQL Analyzer (or simply ZPA) is a code analyzer for PL/SQL and Oracle SQL code.

Currently you can use it in SonarQube. SonarQube is an open platform to manage code quality. This project supports SonarQube 6.7.x and newer.

See some examples in our SonarQube instance!

Soon: you'll be able to analyze code without using the SonarQube environment with zpa-cli and more.

Installation

  • Download the latest sonar-plsql-open-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 "Z PL/SQL Analyzer" on the tab "Installed Plugins";
  • Run an analysis with SonarQube Scanner.

If you like to live on the bleeding edge, you can use the latest development version. Download it from the button "Artifacts" in Azure DevOps.

Contribute

Everyone is welcome to contribute. Note that no matter how you contribute, your participation is governed by our code of conduct.

There are a few things you need to know about the code. It is divided in these modules:

  • its - Integration tests with SonarQube (more below).
  • plsql-checks-testkit - Test helper for coding rules, it can be used to test custom rules.
  • plsql-checks - The built-in coding rules provided by ZPA.
  • plsql-custom-rules - Demo project showing how to extend ZPA with custom coding rules.
  • sonar-plsql-open-plugin - The SonarQube plugin itself, this module contains all the code necessary to integrate with the SonarQube platform.
  • zpa-core - The heart of this project. It contains the lexer, the parser and the code required to understand and process PL/SQL code.
  • zpa-toolkit - 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 org.sonar.plugins.plsqlopen.api (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.

If you're interested in a stable API to integrate ZPA with another software, please open an issue or contact us directly explaining your needs.

Running the integration tests

There are two sets of integration tests:

  • plugin: checks if the metrics are imported correctly in SonarQube
  • ruling: checks the quality of parser and rules against real-world code

To run the integrations tests, update the submodules:

git submodule update --init --recursive

Build the main plugin and the custom rules example:

./mvnw clean install
./mvnw -f plsql-custom-rules/pom.xml package

Download the Oracle HTML documentation to any folder.

Then run the tests:

./mvnw test -Pit -DoracleDocs="path/to/oracle-database_19.zip"

By default the tests will be executed using SonarQube 6.7.x LTS. You can change the SonarQube version using the property sonar.runtimeVersion, passing the specific version or one of LATEST_RELEASE[6.7] (for SonarQube 6.7.x LTS), LATEST_RELEASE (latest official release) or DEV (unstable version, in development):

./mvnw test -Pit -DoracleDocs="path/to/oracle-database_19.zip" -Dsonar.runtimeVersion=7.7
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].