Skip to main content

CodeQL を利用したコード品質の分析

Code Qualityの CodeQL を利用した分析のしくみ、使用されるワークフロー、プル要求で報告された状態チェックに関する情報。

CodeQLのパワーによる分析

Code Quality では、 CodeQL を使用して、プル要求と既定のブランチのルールベースの分析を実行します。

  • 既定のブランチの結果は、リポジトリの [標準の結果] タブの [ Security and quality] ダッシュボードの下に表示されます。

  • pull request の結果は、github-code-quality[bot]によって行われたコメントとして表示されます。

Copilot の自動修正 可能な限り、結果に関する提案が提供されます。

スキャン情報

各 CodeQL 分析では GitHub Actions 分が使用され、リポジトリの [ アクション] タブに表示されます。 これらの実行では、CodeQL というワークフロー名が使われます。code scanning でも同じ名前が使われるため、ワークフロー名だけでは Code Quality の実行と code scanning の実行を確実に区別できません。 代わりに、Code Quality実行はそのGitHub Actionsラベルで識別します。たとえば、「Code Quality: push on main」などです。

サポートされている言語のクエリ リスト

各 Code Quality ルールは、 CodeQL でクエリとして書き込まれ、 GitHub Actionsを使用して実行されます。

規則は、 GitHub とオープン ソースの開発者の両方によって継続的に改良されています。

CodeQL プロジェクトの詳細については、「https://codeql.github.com/」を参照してください。

コード品質分析に使用されるワークフロー

リポジトリの Code Quality タブで、**** のすべてのワークフロー実行を確認できます。 Code Quality実行は、GitHub Actions ラベルで識別できます (例: "Code Quality: メインへのプッシュ"

既定では、 コード品質 ワークフローは標準の GitHub ランナーで実行されますが、特定のラベルを持つランナーを使用するように Code Quality を構成できます。 これらは、 GitHub またはセルフホステッドによってホストされる場合があります。

組織でプライベート レジストリのキャッシュを構成している場合は、依存関係の解決に使用するコード品質分析に使用できます。

詳細については、以下を参照してください。

プルリクエストのステータスチェック

プル要求でコード品質分析を実行すると、pull request の下部にある [チェック] セクションに "CodeQL - コード品質 /Analyze" チェックが表示されます。

スキャンによって識別されたコードの問題は、プル要求のコメントで報告されます。 コメントは github-code-quality[bot] によって作成され、 Copilot の自動修正 提案が含まれています。

状態チェックの失敗

ワークフローの実行に失敗しました。 たとえば、アクションのための時間予算が使い果たされた場合です。 エラーを診断するには、ログの表示を参照してください

マージがブロックされました: コード品質に関する問題が検出されました

スキャンによって、リポジトリのコード品質分岐規則によって設定された品質ゲートを超える問題がコードで検出されました。 pull request をマージする前に、これらの問題を解決する必要があります。 「pull request でのブロックの解決」を参照してください。