メモ
GitHub Code Quality は現在 パブリック プレビュー にあり、変更される可能性があります。 パブリック プレビュー の間、Code Quality は課金されませんが、Code Quality スキャンでは GitHub Actions 分が消費されます。
CodeQL を利用した分析
Code Quality では、 CodeQL を使用して、プル要求と既定のブランチのルールベースの分析を実行します。
-
**既定のブランチ**の結果は、リポジトリの [セキュリティ] タブの下の "標準の結果" ダッシュボードの下に表示されます。 -
**pull request の結果は、**`github-code-quality[bot]`によって行われたコメントとして表示されます。
Copilotの自動修正 の提案は、可能な場合に検出結果に対して提供されます。
サポートされている言語のクエリ リスト
各Code Qualityルールは、CodeQLでクエリとして書かれ、GitHub Actionsを使用して実行されます。
ルールは、GitHub とオープン ソース開発者の両方によって継続的に改良されています。
-
[AUTOTITLE](/code-security/code-quality/reference/codeql-queries/csharp-queries) -
[AUTOTITLE](/code-security/code-quality/reference/codeql-queries/go-queries) -
[AUTOTITLE](/code-security/code-quality/reference/codeql-queries/java-queries) -
[AUTOTITLE](/code-security/code-quality/reference/codeql-queries/javascript-queries) -
[AUTOTITLE](/code-security/code-quality/reference/codeql-queries/python-queries) -
[AUTOTITLE](/code-security/code-quality/reference/codeql-queries/ruby-queries)
CodeQL プロジェクトの詳細については、 https://codeql.github.com/を参照してください。
コード品質分析に使用されるワークフロー
Code Quality のすべてのワークフローの実行履歴は、あなたのリポジトリの [アクション] タブで確認できます。 動的ワークフローは"コード品質" と呼ばれます。
既定では、コード品質 ワークフローは標準の GitHub ランナーで実行されますが、特定のラベルを持つランナーを使用するように Code Quality を構成できます。 これらはGitHub またはセルフホステッドでホストできます。
組織でプライベート レジストリのキャッシュを構成している場合は、依存関係の解決に使用するコード品質分析に使用できます。
詳細については、以下を参照してください。
-
[AUTOTITLE](/code-security/code-quality/how-tos/enable-code-quality) -
[AUTOTITLE](/code-security/securing-your-organization/enabling-security-features-in-your-organization/giving-org-access-private-registries#code-quality-access-to-private-registries)
プルリクエストのステータスチェック
プル要求でコード品質分析を実行すると、プル要求の下部にある [チェック] セクションに "CodeQL - コード品質 / Analyze" チェックが表示されます。
スキャンによって識別されたコードの問題は、プル要求のコメントで報告されます。 コメントは github-code-quality[bot] によって作成され、Copilotの自動修正 候補が含まれています。
状態チェックの失敗
ワークフローの実行に失敗しました。 たとえば、アクションのための時間予算が使い果たされた場合です。 エラーを診断するには、ログの表示を参照してください。
マージがブロックされました: コード品質に関する問題が検出されました
スキャンによって、リポジトリのコード品質分岐規則によって設定された品質ゲートを超える問題がコードで検出されました。 pull request をマージする前に、これらの問題を解決する必要があります。 「pull request でのブロックの解決」を参照してください。