コード品質の概要
| セクション | 内容 |
|---|---|
| PRチェックの設定 | 新規コードに対する品質チェック — プルリクエストごとに変更行をスキャンします。 |
| リポジトリスキャン | 既存コードに対する品質チェック — リポジトリ全体のスコア、検出結果、ホットスポットを確認できます。 |
| カスタムコードルールの追加 | デフォルトを超えたチーム固有のチェックを定義します。 |
| 追加のコードコンテキストの提供 | コードベースや規約について Aikido に背景情報を伝えます。 |
| 特定行の無視 | レビュー済みで問題ないと判断した行の検出結果を抑制します。 |
Code Qualityとは?
Section titled “Code Qualityとは?”Code Quality は、これから出荷する新規コードと、すでにリポジトリにある既存コードの両方について、コードベース全体で高い水準を維持するのに役立ちます。
Aikido は、チームが有効にしたルールに対して AI を活用したチェックを適用します。検出結果には平易な言葉での説明と修正ガイダンスが含まれるため、セキュリティの専門家でなくても開発者が対応できます。
Code Quality は、2つのモードに明確に分かれています。
| モード | 対象範囲 |
|---|---|
| PRチェック | 新規コード — プルリクエストで追加・変更された行 |
| リポジトリスキャン | 既存コード — 現時点のコードベース全体 |
いずれか一方のモードを単独で使うことも、両方を組み合わせて使うこともできます。PRチェックは品質の悪化を防ぎ、リポジトリスキャンはすでに存在する問題と、クリーンアップに集中すべき箇所を可視化します。
PRチェック — 新規コード
Section titled “PRチェック — 新規コード”Aikido はすべてのプルリクエストで、変更された行のみをスキャンし、インラインコメントを残します(設定によってはゲートを失敗させることもできます)。これにより、マージ前にリグレッションを検出し、新規に追加されるコードをチームの基準に沿ったものに保てます。
セットアップの全体的な流れについては、PRチェックの設定を参照してください。
リポジトリスキャン — 既存コード
Section titled “リポジトリスキャン — 既存コード”コードベース全体のスキャンでは、各リポジトリを4つの品質カテゴリでスコアリングし、すでにマージされたコード内のすべての未解決の検出結果を一覧表示し、変更頻度が高く品質が低い箇所(ホットスポット)を強調表示します。
セットアップ方法、料金、結果の読み方については、リポジトリスキャンを参照してください。
ユースケース
Section titled “ユースケース”- レビュー時に新規コードを守る — 変更行に対するPRチェック、必要に応じてゲート失敗のオプションも
- 既存コードの健全性を把握する — リポジトリごとにコードベース全体のカテゴリスコアを確認
- レガシークリーンアップの優先順位付け — 変更頻度が高く技術的負債が多いファイルを散布図のホットスポットで可視化
- チーム基準の徹底 — チームの規約に合わせたカスタムルールとコードコンテキスト
- 両方のレイヤーをカバー — マージごとのPRチェックと、年間サブスクリプション期間中の増分再スキャンによるリポジトリスキャン
サポート言語
Section titled “サポート言語”Code Quality は幅広く、かつ拡大を続ける言語・フレームワークをサポートしています。全一覧は以下をクリックしてください。
サポート言語
- ABAP (SAP)
- angular
- Ansible
- Apex (Salesforce)
- C/C++
- C#
- Clojure
- COBOL
- ColdFusion
- Dart
- Delphi
- Elixir
- Erlang
- go
- Groovy
- Haskell
- Java
- JS
- JSON
- Julia
- Kotlin
- Kubernetes / Helm charts
- Lua
- MySQL
- OCaml
- OpenEdge
- Pascal
- perl
- PHP
- PL/SQL
- PowerShell
- PY
- R
- react
- Ruby
- Rust
- Scala
- shell
- Solidity
- SQL
- svelte
- Swift/Objective-C
- Terraform
- TS
- Visual Basic
- vue
- YAML
- Zig
リポジトリ内の .aikido 設定ファイルを使って検出結果を無視する方法については、Aikidoファイルによるコード内無視を参照してください。