Changelog
- 02ac294 β¬οΈ Bump
go
to1.22.8
- 48a4c87 β¬οΈ Bump
go
to1.24.0
- ffe2c94 β¬οΈ Bump actions/setup-java from 3 to 4 in the dependencies group
- 7a372c8 β¬οΈ Bump config loader β better output on invalid yaml
- e81ef35 β¬οΈ Bump config-loader-cli.jar to 0.0.16
- 8614b45 β¬οΈ Bump github.com/boyter/scc/v3
- 088b285 β¬οΈ Bump github.com/go-enry/go-enry/v2
- 85e648f β¬οΈ Bump github.com/go-enry/go-enry/v2
- f521171 β¬οΈ Bump github.com/pterm/pterm
- c0d8e6e β¬οΈ Bump github.com/stretchr/testify
- 1edb638 β¬οΈ Bump github.com/stretchr/testify
- bff4c22 β¬οΈ Bump github.com/zalando/go-keyring
- 90b4dc3 β¬οΈ Bump golang.org/x/crypto from 0.24.0 to 0.31.0 in /cli
- f5c232d β¬οΈ Bump golang.org/x/crypto from 0.24.0 to 0.31.0 in /core
- 2a16298 β¬οΈ Bump golang.org/x/crypto from 0.24.0 to 0.31.0 in /platform
- 150f126 β¬οΈ Bump golang.org/x/crypto from 0.26.0 to 0.31.0 in /cmd
- ab4d559 β¬οΈ Bump golang.org/x/net from 0.30.0 to 0.33.0 in /cmd
- 11ae2ee β¬οΈ Bump golang.org/x/net from 0.33.0 to 0.36.0 in /cmd
- 737b4df β¬οΈ Bump the dependencies group across 1 directory with 2 updates
- e6e23fa β¬οΈ Bump the dependencies group across 4 directories with 1 update
- 9e44ed7 β¬οΈ Bump the dependencies group across 4 directories with 2 updates
- bd7e75f β¬οΈ QD-11257 Fixed empty yaml reading, bump config-loader-cli.jar to 0.0.17
- 8e51fe8 β¬οΈ QD-11903 Upgrade config-loader-cli.jar
- e82027b β¬οΈ QD-11903 Upgrade config-loader-cli.jar
- db8ea3d β¬οΈ Update publisher to 3.0.7
- dec419d :brics: Add native run configuration
- 4ae526b :brics: QD-10741 Add --linter and --within-container parameters for scan command
- 48a7217 :brics: QD-10741 Fix qodana-clang
- 377fa80 :brics: QD-12003 Cleanup. Split GuessAnalyzer method.
- a3c414a :brics: QD-12003 Tests fixes
- 2333267 :brics: QD-12003 Handle review. Add test for choosing NativePathAnalyzer.
- a49f82c :brics: QD-12003 Refactor selection of linter parameters and datastructures
- 84e1878 :brics: QD-12017 Add optional auth for downloading linter distribution
- 5ec6c62 :brics: QD-12017 Add status check on HEAD request
- cff2d22 :brics: QD-12093 Add detailed output on tar failure
- c53280e π Escape special Windows characters (QD-11070)
- ae538d7 π Fix CLI completion generation (QD-9907)
- dac77a9 π Fix GitLab/BitBucket reports with baseline and no new problems (QD-10038)
- b1409ee π Fix
contributors
log options - 06393bd π Fix
view
command options - 9b825da π Fix custom plugin setup for
darwin
(QD-9921) - 84ff2f6 π Fix custom plugins container location (QD-9921)
- 6c2d6c5 π Fix forwarding testing endpoint to containers (QD-10281)
- f58a0bf π Fix qodana-clang build on master
- 762669d π Fix setting
--report-dir
for container runs (QD-10890) - c794264 π Handle errors for
.idea
cache and add logging (QD-9927) - cb78e5a π QD-10572 qodana-clang should respect arguments property
- 4f36307 π QD-10573 qodana-clang should work for master and release branches
- 2d09e71 π QD-10590 Plugins must be installed only inside native mode (inside docker is native)
- 28e9c20 π QD-10627 Don't fail analysis step if changeset is empty in case of scoped analysis. (#507)
- 0351582 π QD-10662: qodana-cli incorrectly retrieves current branch name (#549)
- de0a8a2 π QD-10767 Update submodules when checkout performed in full history and scoped script (#519)
- fad8dca π QD-10955 Add QODANA_TOKEN to docker env, QODANA_LICENSE_ONLY_TOKEN accessed only by os.Getenv
- 98dc5cd π QD-10984 introduce whitelist for quick-fixes support and include QDNET in it (#548)
- b38906c π QD-11241 Converter no longer needed for sending reports to cloud
- 3451c74 π QD-11241 Create final results dir in third-party linters
- 0c4e0ea π QD-11255 Handle absolute custom yaml config path
- cba6ab2 π QD-11263 qodana-cdnet supports partialFingerprints
- 6182065 π QD-11266 Add report saving for third party linters
- 009852f π QD-11266 Pass corrected ResultsDir for permissions correction
- 2662809 π QD-11276: qodana-cli tests fail on Windows when java exe has spaces in path (#552)
- edb15a7 π QD-11375 Python: sync jdk.table.xml with python environment
- 2558ef1 π QD-11458: 3rd party linters should update their binary in cache (#567)
- 68454e3 π QD-11464: clang subproject's tests do not work (#568)
- ef75a1a π QD-11482 Support user defined protocol
- 8dcff9f π QD-11516: Ensure subprocess termination on Windows (#589)
- 38a6b1f π QD-11538: qodana-clang fails to send report (#574)
- cb80558 π QD-11584 if cloud is http, use host network for docker. Env variables used both by CLI and docker are stored and accessed separately in global variable
- 17c7f7a π QD-11753 Ruby is eap only for now. Same for QDCPP.
- 5cccc68 π QD-12099 Add test. Replace %s with %w on error creation.
- 6c3e6c7 π QD-12099 Always try to clean up the temp folder
- 67a7e4a π QD-12099 Replace extracting dist to target with extracting to temp and move.
- a8f3b54 π QD-12099 Use 0755 permission for dist dir, use 0700 for download dir
- f0e13a4 π QD-12099 Use MkdirTemp instead MkdirAll
- 0a0943d π QD-12139: Fix inter-module dependency managment (#623)
- 0da0b9b π QD-12168 Fix messages for errors of linter's downloading
- c48b72d π QD-12252 Add copying as a fallback after linter unpack
- 92659ec π QD-12252 Fix wrong condition on returning error
- adc18cf π QD-12266: Fix qodana-cdnet build process (#629)
- c9f1bac π QD-12327: Fix multiple problems with 'go generate' (#641) (#642)
- a7e9e26 π QD-12352 Change exec.Command to functions from utils (#648)
- 9ab04a9 π QD-9921 Fix linux and windows custom-plugin path
- e97a627 π QD-9921 Remove quotes on passing disabled_plugins. Parameters passed through file should not be quoted.
- c5a49cc π Scoped script should keep baseline for the second run and track coverage feature usage.
- 5a7ab37 π When falling back to default scenario, reset options that lead to changes analysis
- 161a96a π When launching docker linter, log folder does not exist for CLI
- 89d0b44 π respect environment when creating a docker client in pull command (#532)
- ee25a08 πQD-10274 Stop modifying unnecessary files in native mode
- 8e899ca πQD-10360 Fix an order of setting variables custom JVM properties
- cb8d279 πQD-10360 Force installPlugins to use qodana attributes of EAP and version
- 780c39d πQD-10360 Refactor passing options to installPlugins, add necessary options to common part with scan options
- 4ce0f92 πQD-10419 Set up plugins once even in scoped script
- 96b36d6 πΈ Check args length before comparing
- 5a9660b πΈ Fallback to default execution scenario when revision is missing in history
- d3275c0 πΈ Fix output for CI, add simple tests
- 527679f πΈ Format CI messages for more visibility
- 9d5db8b πΈ Make non-CI warning similar to other warnings
- 6510798 πΈ Produce warnings if the linter version is incompatible
- e342dd1 π Remove incorrect "See log above for details", the placement of exception in stdout(err) is not guaranteed
- 54dbb1c βͺ (reverting for rebasing, commit is brought back later) Revert "QD-10767 Update submodules when checkout performed in full history and scoped script (#519)"
- 3d1cf31 β¨ QD-10856 Address review #527
- 08a2a37 β¨ QD-10856 Create effective configuration in qodana cli
- 6e3e6c8 β¨ QD-10955 Now in
qodana init
we require token if it's needed - 08a55a3 β¨ QD-11220: Support jetbrains/qodana-cpp as the docker image for QDCPP in CLI (#537)
- 1a497bd β¨ QD-11228 Provide effective qodana yaml to frontend as qodana yaml
- 1e6a491 π§ QD-10955 Codestyle
- e7f6795 β‘ Bump linters versions
- 5e336b8 β‘ QD-10306 Add logging for native configuration
- 9989b14 β‘ QD-11553 Bump Qodana CLI to 2025.1 linters, 251 is released
- e8937a4 β‘ QD-11553 Mute test which verify existense of 2025 linters in feed, because it's not yet released
- c16694e β‘ QD-11553 in feed eap is 2024.3, no 2025.1 eap in feed
- 677ea17 β‘ Switch from 2024.3 EAP to Release
- 8cf7f90 β‘ Switch to released 2024.2 images
- 8ef354a β‘ Unset Ruby-related variables for
QDRUBY
(RUBY-29231) - 41024f2 If a GitHub Actions job or workflow has no explicit permissions set, then the repository permissions are used. Repositories created under organizations inherit the organization permissions. The organizations or repositories created before February 2023 have the default permissions set to read-write. Often these permissions do not adhere to the principle of least privilege and can be reduced to read-only, leaving the write permission only to a specific types as issues: write or pull-requests: write.
- 4c19e42 Merge QDCL and QDCLC into a single linter (#566)
- a6d4bf8 Merge pull request #627 from JetBrains/bump-version-to-252
- 7d078c5 Merge pull request #644 from JetBrains/252-cherrypick-release
- 1a106ab QD-10767 Update submodules when checkout performed in full history and scoped script (#519)
- 832ae55 QD-11753 Add Ruby project recognition
- b8bf946 QD-12076 bump publisher-cli version
- 122eb71 QD-12099 Compilation fix
- 0c2b5a8 QD-12104 Fix tests
- f0a196d QD-12104 bump eap version to 252
- 7a706e6 QD-12104 set 252 as release (#640)
- 6206e09 QD-12168 Replace backticks in error messages
- 0a3949b Revert ":zap: QD-11553 Mute test which verify existense of 2025 linters in feed, because it's not yet released"
- a2c8de1 π QD-11565: Revert "Use canonical paths for ComputeChangedFiles (#584)" (#587)
- a15743d π QD-11565: Use canonical paths for ComputeChangedFiles (#584)
Install
π‘ The Qodana CLI is distributed and run as a binary. The Qodana linters with inspections are Docker Images or, starting from version
2023.2
, your local/downloaded by CLI IDE installations (experimental support).
- To run Qodana with a container (the default mode in CLI), you must have Docker or Podman installed and running locally to support this: https://www.docker.com/get-started, and, if you are using Linux, you should be able to run Docker from the current (non-root) user (https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)
- To run Qodana without a container, you must have the IDE installed locally to provide the IDE installation path to the CLI or specify the product code, and CLI will try to download the IDE automatically (experimental support).
macOS and Linux
Install with Homebrew (recommended)
brew install jetbrains/utils/qodana
Install with our installer
curl -fsSL https://jb.gg/qodana-cli/install | bash
Also, you can install nightly
or any other version (e.g. v2023.2.9
) the following way:
curl -fsSL https://jb.gg/qodana-cli/install | bash -s -- nightly
Windows
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
Anywhere else
Alternatively, you can install the latest binary (or the apt/rpm/deb/archlinux package) from this page.
Update
Update to the latest version depends on how you choose to install qodana
on your machine.
Update with Homebrew
brew upgrade qodana
Update with Scoop
scoop update qodana
Update with Chocolatey
choco upgrade qodana
Update on Linux and macOS with the installer script
curl -fsSL https://jb.gg/qodana-cli/install | bash
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.