ノート: Code scanningはGitHub Enterprise Server 2.22ではベータです。 Code Scanningの一般に利用なリリースについては、GitHub Enterprise Serverの最新リリースにアップグレードしてください。
code scanning について
Code scanning は、開発者が GitHub リポジトリ内のコードを分析して、セキュリティの脆弱性とコーディングエラーを見つけることができる機能です。 分析によって特定されたすべての問題はGitHub Enterprise Serverに表示されます。
You can configure code scanning to run CodeQL analysis and third-party analysis. Code scanning also supports running analysis natively using GitHub Actions or externally using existing CI/CD infrastructure. The table below summarizes all the options available to users when you configure GitHub Enterprise Serverのインスタンス to allow code scanning using actions.
|
アラート生成のオプション |
---|---|
Prerequisites for code scanning
-
A license for GitHub Advanced Security
-
Code scanning enabled in the management console (see "Enabling GitHub Advanced Security for your enterprise")
-
A VM or container for code scanning analysis to run in.
GitHub Actions を使用して code scanning を実行する
セルフホストランナーを設定する
GitHub Enterprise Server は、GitHub Actions ワークフローを使用して code scanning を実行できます。 まず、環境内に 1 つ以上のセルフホスト GitHub Actions ランナーをプロビジョニングする必要があります。 セルフホストランナーは、リポジトリ、Organization、または Enterprise アカウントレベルでプロビジョニングできます。 詳しい情報については、「セルフホストランナーについて」および「セルフホストランナーを追加する」を参照してください。
CodeQL アクションを実行するために使用するセルフホストランナーの PATH 変数に Git が含まれていることを確認する必要があります。
Provisioning the actions for code scanning
GitHub Actions を使用して GitHub Enterprise Server で code scanning を実行するには、適切なアクションがローカルで使用可能である必要があります。 アクションは 3 つの方法で利用可能にすることができます。
- 推奨: GitHub Connect を使用して、GitHub.com からアクションを自動的にダウンロードできます。 インスタンスをホストするマシンは、GitHub.com にアクセス可能である必要があります。 この方法で、最新のソフトウェアを自動的に入手できます。 詳しい情報については、「GitHub Actions を同期するために GitHub Connect を設定する」を参照してください。
- CodeQL分析ワークフロー を使用する場合は、https://github.com/github/codeql-action-sync-tool にある CodeQL Action 同期ツールを使用して、リポジトリを GitHub.com から GitHub Enterprise Server に同期できます。 コンピューターで GitHub Enterprise Serverのインスタンス と GitHub.com の両方に同時にアクセスできる限り、GitHub Enterprise Serverのインスタンス または GitHub Actions ランナーがインターネットにアクセスできるかどうかに関係なく、このツールを使用できます。
- アクションを含む GitHub.com リポジトリのクローンを作成することにより、サーバー上にアクションのリポジトリのローカルコピーを作成できます。 たとえば、CodeQL code scanning のアクションを使用する場合は、インスタンスに
github/codeql-action
というリポジトリを作成し、GitHub.com からリポジトリのクローンを作成して、そのリポジトリをインスタンスのgithub/codeql-action
リポジトリにプッシュできます。 また、GitHub.com のリポジトリからリリースをダウンロードし、リリースとしてインスタンスのgithub/codeql-action
リポジトリにアップロードする必要があります。
GitHub Actions を同期するために GitHub Connect を設定する
- GitHub.com からオンデマンドでアクションワークフローをダウンロードする場合は、GitHub Connect を有効にする必要があります。 詳しい情報については、「GitHub Connect を有効化する」を参照してください。
- また、GitHub Enterprise Serverのインスタンス に対して GitHub Actions を有効化する必要があります。 詳しい情報については、「GitHub Enterprise Server の GitHub Actions を使ってみる」を参照してください。
- 次のステップは、GitHub Connect を使用して、GitHub.com に対するアクションへのアクセスを設定することです。 詳しい情報については、「GitHub Connect を使用した GitHub.com アクションへの自動アクセスを有効化する」を参照してください。
- セルフホストランナーをリポジトリ、Organization、または Enterprise アカウントに追加します。 詳しい情報については「セルフホストランナーの追加」を参照してください。
CodeQLランナー を使用して code scanning を実行する
GitHub Actions を使用しない場合は、CodeQLランナー を使用して code scanning を実行できます。
CodeQLランナー は、サードパーティの CI/CD システムに追加できるコマンドラインツールです。 このツールは、GitHub リポジトリのチェックアウトに対して CodeQL 分析を実行します。 詳しい情報については、「code scanning を CI システムで実行する」を参照してください。