Qodana 2024.3 Help

Quick start

The current version of Qodana (2024.1) provides the linters that let you analyze Java, Kotlin, Groovy, PHP, JavaScript, TypeScript, C#, Visual Basic, C, C++, Python, and Golang projects. You can also extend the default linter configuration using various features.

As an example, this section explains how you can quickly start working with Qodana using:

Prerequisites

Depending on your Qodana license, you probably need to obtain a trial license and accomplish the project setup stage in Qodana Cloud.

To run Qodana in the CLI and GitHub, you will be using a project token available after creating a Qodana Cloud project. To learn more about it, see the Project tokens section.

Run Qodana in JetBrains IDEs

Starting from version 2023.2, Qodana is available in IntelliJ IDEA and PyCharm (both the Professional and Community editions), PhpStorm, WebStorm, GoLand, and Rider.

Here is the short video showing how you can run Qodana in your IDE.

Running Qodana in an IDE

Here is the description of all steps shown in this video:

  1. In your IDE, navigate to the Problems tool window.

  2. In the Problems tool window, click the Server-Side Analysis tab.

  3. On the Server-Side Analysis tab, click the Try locally button to start Qodana.

  4. On the Server-Side Analysis tab, you can view inspection results. It also contains two links in the upper part of the tab.

    Links on the Server-Side Analysis tab

    Open the inspection report in your browser.

    Qodana report

    Open the configuration wizard for using Qodana in CI/CD pipelines.

    Qodana report

    To learn more about Qodana and CI/CD pipelines, see the Integration with CI systems section.

Run Qodana using CLI

Qodana provides two options for local analysis of your code. Qodana CLI is the easiest option to start. Alternatively, you can use the Docker command from the Docker image tab.

To run Qodana CLI in the default mode, you must have Docker or Podman installed and running locally. If you are using Linux, you should be able to run Docker under your current non-root user.

  1. Install Qodana CLI on your machine using available options:

    Install with Homebrew (recommended):

    brew install jetbrains/utils/qodana

    Alternatively, you can install Qodana CLI using our installer:

    curl -fsSL https://jb.gg/qodana-cli/install | bash

    You can install a nightly or any other version the following way:

    curl -fsSL https://jb.gg/qodana-cli/install | bash -s -- nightly

    On Linux, you can also install Qodana using Go:

    go install github.com/JetBrains/qodana-cli@latest

    Install with Windows Package Manager (recommended):

    winget install -e --id JetBrains.QodanaCLI

    Install with Chocolatey:

    choco install qodana

    Install with Scoop:

    scoop bucket add jetbrains https://github.com/JetBrains/scoop-utils scoop install qodana
  2. In the project root directory, declare the QODANA_TOKEN variable containing the project token described in the prerequisites:

    QODANA_TOKEN=<cloud-project-token>
    set QODANA_TOKEN=<cloud-project-token>
  3. Run Qodana:

    qodana scan
    qodana scan

This section assumes that you have the Docker application deployed on your machine.

  1. Pull the image from Docker Hub (only necessary to get the latest version):

    docker pull <image>

    Here, image denotes the Docker image name of a Qodana linter from this table:

    Image name

    Application

    jetbrains/qodana-jvm:2024.3

    Java and Kotlin for Server Side projects, based on IntelliJ IDEA Ultimate.

    jetbrains/qodana-jvm-community:2024.3

    Java and Kotlin for Server Side projects, based on IntelliJ IDEA Community.

    jetbrains/qodana-jvm-android:2024.3

    Java and Kotlin for Server Side projects, based on IntelliJ IDEA with the Android support.

    jetbrains/qodana-php:2024.3

    PHP projects, based on PhpStorm.

    jetbrains/qodana-python:2024.3

    Python projects, based on PyCharm Professional.

    jetbrains/qodana-python-community:2024.3

    Python projects, based on PyCharm Community.

    jetbrains/qodana-js:2024.3

    JavaScript and TypeScript projects, based on WebStorm.

    jetbrains/qodana-go:2024.3

    Golang projects, based on Goland.

    jetbrains/qodana-dotnet:2024.3

    .NET projects, based on Rider.

    jetbrains/qodana-cdnet:2024.3-eap

    .NET projects, based on ReSharper.

    jetbrains/qodana-clang:2024.3-eap

    C and C++ projects containing compilation databases.

  2. Run this command to analyze your codebase:

    docker run \ -v <source-directory>/:/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter>

    Here, <source-directory> points to the root of your project, and the QODANA_TOKEN variable contains the project token described in the prerequisites.

  3. Navigate to your Qodana Cloud account to see inspection results.

Run Qodana on GitHub

Here is the short video showing how you can configure and run Qodana in GitHub.

Running Qodana in GitHub

Assuming that you already generated a project token as described in the Prerequisites chapter, follow these steps to configure Qodana in GitHub:

  1. On the Settings tab of the GitHub UI, create the QODANA_TOKEN encrypted secret and save the project token as its value. If you are using a Qodana Cloud instance other than https://qodana.cloud/, override it by declaring the QODANA_ENDPOINT environment variable.

  2. On the Actions tab of the GitHub UI, set up a new workflow and create the .github/workflows/code_quality.yml file.

  3. To inspect the main and master branches, as well as release branches and the pull requests coming to your repository, save this workflow configuration to the .github/workflows/code_quality.yml file:

    name: Qodana on: workflow_dispatch: pull_request: push: branches: # Specify your branches here - main # The 'main' branch - master # The 'master' branch - 'releases/*' # The release branches jobs: qodana: runs-on: ubuntu-latest permissions: contents: write pull-requests: write checks: write steps: - uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit fetch-depth: 0 # a full history is required for pull request analysis - name: 'Qodana Scan' uses: JetBrains/qodana-action@v2024.3 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}

Next steps

Last modified: 04 December 2024