🦁

Qodana Cloud

2023/08/28に公開

Qodana Cloud

前回 は JetBrains の IDE で Qodana 静的検査を実行しました。

今回は Qodana Cloud を利用します。

  • Qodana Ultimate / Ultimate Plus のライセンスがあれば、.NET などの有償版リンターを使えます。コミュニティ版では Python や Java でかつフレームワークもほとんど対応していませんでしたが、様々な言語やフレームワークに対応しています。
  • 検査レポートを保管し、チーム間で共有できます。この機能は Qodana Community でも利用できます。

目次

Qodana Cloud を使う

これまでは Qodana Community を利用していたので Qodana Cloud は不要でした。しかし、有償版の Qodana で静的検査をするためには Qodana Cloud が必要になります。

Qodana Cloud プロジェクトを作る

Qodana Cloud のプロジェクトを作る前に、組織 (Organization) とチームの作成が必要です。90


Qodana クラウドコンポーネントより図を拝借

Qodana CloudUltimate Plus の 60 日体験版にアクセスして Continue with your JetBrains Account からログインがちゃがちゃやると、組織 (Organzation) を作れとか言われるので作ります。

その組織にチームを、そのチームにプロジェクトを作ります。図は dummy という名前のプロジェクトを作成したところです。

表示されているトークン (図では塗りつぶしてますが) が必要ですので、この画面はひらっきぱなしにしておきます。

なお、組織の設定で公開・非公開を選べます。今の時点ではプロジェクト単位に公開・非公開を選ぶことはできないようです。

Qodana CLI で使う

と同じようにスキャンしますが、せっかくなので有償版の Python 用 Qodana を利用しましょう。

$ qodana scan --linter jetbrains/qodana-python

...

?  Do you want to open the team page to get the token? [Y/n]: 

y と答えるとブラウザーが起動しますが、無視してもともと開いていたブラウザーのプロジェクトからトークンをコピーしてコンソールに貼り付けます。

?  Do you want to open the team page to get the token? [Y/n]: Yes
>  Enter the token (will be saved to the system keyring and used for .):

あとは Qodana Community で静的コード検査 でやったのと同じです。Do you want to open the latest report [Y/n]: と聞かれたら、y と答えればブラウザーが起動して結果を表示します。

なお、二度目以降はトークンの入力は不要です。

検査の結果は Qodana Cloud にアップロードされています。

プロジェクトを開くと、見慣れた検査結果の詳細が表示されます。

JetBrains IDE で使う

JetBrains IDE で Qodana で静的コード検査 と手順は同じで、途中でトークンを入力するだけです。

IDE の検査結果をアップロードするする必要性は薄いと思いますが、Qodana CLI と異なり、IDE のライセンスさえあれば Qodana のライセンスは不要だと思われます。

なお、Qodana Cloud プロジェクトの上に過去の結果が並んでます。

Qodana Cloud の料金

  • Qodana Community の利用は無料。Qodana Cloud も利用できる。ただし、利用できる Linter が限られる。
  • Qodana Ultimate / Ultimate Plus の料金は公式サイトを見てください。今は値段変動が多そうでここでは明記しません。
  • Ultimate Plus は Ultimate に加えて、脆弱性検査やライセンス監査などが付いています。
  • 料金はアクティブユーザーに対してかかります。

よくある質問によくまとまっていますので一読したほうがいいと思います。

最後に

Qodana をローカルのパソコンで使ってもそれほどうれしくないと思います。同等の静的解析機能が JetBrains IDE に備わっていますし。

CI で利用できるようになったのが大きいです。次回は GitLab CI にチャレンジしてみます。

Discussion