code scanning の構成について
さまざまなツールを使って、リポジトリでの code scanning を構成できます。 詳細については、「コード スキャンの既定セットアップの構成」および「コード スキャンの詳細設定を構成する」を参照してください。
利用できるログと診断情報は、リポジトリ中でのcode scanningの利用方法によります。 使用しているcode scanningの種類を確認するには、リポジトリの [セキュリティ] タブで、アラート一覧の [ツール] ドロップダウン メニューを使用します。 詳しくは、「リポジトリのコード スキャンのアラートの評価」をご覧ください。
分析と診断情報について
code scanningの実行に対する分析と診断情報は、GitHub上のCodeQL分析を使用して見ることができます。
アラート一覧の上部にあるヘッダーに、最新の分析に関する分析情報が表示されます。 詳しくは、「リポジトリのコード スキャンのアラートの評価」をご覧ください。
診断情報は [アクション] ワークフロー ログに表示され、概要メトリックと抽出診断からなります。 GitHub の code scanning ログへのアクセスの詳細については、後述する「code scanning からのログ出力の表示」を参照してください。
GitHubの外部でCodeQL CLIを使っているなら、診断情報はデータベース分析の間に生成された出力中に示されます。 この情報は、code scanningの結果とともにGitHubにアップロードするSARIF結果ファイル中にも含まれています。
CodeQL CLI の詳細については、「CodeQL クエリによるコード分析」を参照してください。
サマリメトリクスについて
サマリのメトリクスには以下が含まれます。
- CodeQLデータベースの作成と抽出前のコードベース中のコードの行数(ベースラインとして使われます)
- 外部ライブラリと自動生成されたファイルを含む、コードから抽出されたCodeQLデータベース中のコードの行数
- 自動生成されたファイルと外部ライブラリを除く、CodeQLデータベース中のコードの行数
CodeQLソースコード抽出診断について
抽出診断は分析の間に見られたファイルのみをカバーし、以下のメトリクスを含みます。
- 分析に成功したファイル数
- データベースの作成中に抽出エラーを生成したファイル数
- データベースの作成中に抽出の警告を生成したファイル数
デバッグ ログを有効にすると、データベースの作成時に発生した CodeQL 抽出子のエラーと警告に関する詳しい情報を確認できます。 詳しくは、「ログの詳細が十分ではありません」をご覧ください。
code scanning からログ出力を表示する
このセクションは、GitHub Actionsを使って実行されるcode scanning(CodeQLあるいはサードパーティ)に適用されます。
リポジトリで code scanning を構成したら、実行したアクションの出力を見ることができます。
-
リポジトリ名の下にある [ Actions] をクリックします。
!["github/docs" リポジトリのタブのスクリーンショット。 [アクション] タブがオレンジ色の枠線で強調表示されています。](/assets/cb-12958/images/help/repository/actions-tab-global-nav-update.png)
code scanning ワークフローを実行するためのエントリを含むリストが表示されます。 エントリのテキストは、コミットメッセージに付けるタイトルです。
![[すべてのワークフロー] ページのスクリーンショット。 ワークフロー実行の一覧には、"Create .github/workflows/codeql.yml" というラベルの付いた実行があります。](/assets/cb-37609/images/help/repository/code-scanning-actions-list.png)
-
code scanning ワークフローのエントリをクリックします。
メモ
既定のセットアップを有効にすることでトリガーされた CodeQL ワークフローの実行を探す場合、そのエントリのテキストは「CodeQL」です。
-
左側のジョブ名をクリックします。 たとえば、 [分析 (言語)] です。
!["Analyze (go)" ジョブのログ出力のスクリーンショット。 左側のサイドバーの [ジョブ] 見出しの下に、"Analyze (go)" が表示されています。](/assets/cb-47516/images/help/repository/code-scanning-logging-analyze-action.png)
-
このワークフローの実行時にアクションから出力されるログを確認します。
-
必要に応じて、ワークフローの実行をトリガーしたコミットを詳しく表示するには、短いコミット ハッシュをクリックしてください。 短いコミット ハッシュは、コミット作成者のユーザー名のすぐ後に表示されている 7 つの小文字です。
-
すべてのジョブが完了すると、確認されたすべての code scanning アラートの詳細を表示できます。 詳しくは、「リポジトリのコード スキャンのアラートの評価」をご覧ください。
code scanning の既定の設定でプライベート レジストリが使われているかどうかを判断する
Code scanning の既定のセットアップワークフローには、Setup proxy for registries ステップが含まれます。 既定のセットアップのワークフロー実行を確認するときは、この手順を展開して対応するログを表示し、次のメッセージを探すことができます。
-
`Using registries_credentials input.`Organization に対して少なくとも 1 つのプライベート レジストリが構成されています。 これには、code scanning の既定のセットアップではサポートされていないプライベート レジストリの種類の構成が含まれます。 サポートされているレジストリの種類の詳細については、 [AUTOTITLE](/code-security/securing-your-organization/enabling-security-features-in-your-organization/giving-org-access-private-registries#code-scanning-default-setup-access-to-private-registries) を参照してください。 -
Credentials loaded for the following registries:-
次の構成の一覧がない場合は、code scanning の既定のセットアップでサポートされているプライベート レジストリ構成が見つかりませんでした。
-
それ以外の場合は、正常に読み込まれたサポートされている構成ごとに 1 行が表示されます。 たとえば、
Type: nuget_feed; Host: undefined; Url: https://nuget.pkg.github.com/; Username: undefined; Password: true; Token: falseを含む行は、プライベート NuGet フィード構成が読み込まれたことを示します。 -
ログ内の構成に関する情報は、UI で組織に対して構成されているものと正確に一致しない場合があります。 たとえば、UI で
Tokenが構成されている場合でも、ログはPasswordが設定されていることを示している場合があります。`Setup proxy for registries`ステップからの出力が想定どおりであっても、code scanning の既定のセットアップがプライベート レジストリの依存関係に正常にアクセスできない場合は、追加のトラブルシューティング情報を取得できます。 「[AUTOTITLE](/code-security/how-tos/scan-code-for-vulnerabilities/troubleshooting/troubleshooting-analysis-errors/logs-not-detailed-enough#creating-codeql-debugging-artifacts-for-codeql-default-setup)」を参照してください。
-
code scanning のプライベート レジストリへの既定のセットアップ アクセス権の付与の詳細については、 セキュリティ機能にプライベート レジストリへのアクセスを許可する を参照してください。