ノート: Code scanningはGitHub Enterprise Server 2.22ではベータです。 Code Scanningの一般に利用なリリースについては、GitHub Enterprise Serverの最新リリースにアップグレードしてください。
ノート: この機能を使用するには、サイト管理者がGitHub Enterprise Serverのインスタンスのcode scanningを有効にする必要があります。 詳しい情報については「アプライアンスのためのcode scanningの設定」を参照してください。
code scanning について
Code scanning は、開発者が GitHub リポジトリ内のコードを分析して、セキュリティの脆弱性とコーディングエラーを見つけることができる機能です。 分析によって特定されたすべての問題はGitHub Enterprise Serverに表示されます。
code scanning を使用して、コード内の既存の問題の修正を検索し、トリアージして、優先順位を付けることができます。 また、Code scanning は、開発者による新しい問題の発生も防ぎます。 スキャンを特定の日時にスケジュールしたり、プッシュなどの特定のイベントがリポジトリで発生したときにスキャンをトリガーしたりすることができます。
code scanning がコードに潜在的な脆弱性またはエラーを見つけた場合、GitHub はリポジトリにアラートを表示します。 アラートを引き起こしたコードを修正すると、GitHubはそのアラートを閉じます。 詳しい情報については、「リポジトリの code scanning アラートを管理する」を参照してください。
リポジトリまたは Organization をまたいで code scanning による結果を監視するには、webhooks や code scanning API を使用できます。 code scanning 用の webhook に関する詳しい情報については、「Webhook イベントとペイロード」を参照してください。 API に関する情報については、 「Code scanning」を参照してください。
code scanning を始めるには、「リポジトリに対する code scanning をセットアップする」を参照してください。
CodeQL について
デフォルトでは、code scanning はセマンティックコード分析エンジンである CodeQL を使用します。 CodeQL はコードをデータとして扱い、コードの潜在的な脆弱性を従来の静的分析よりも高い精度で見つけることができます。
QL は CodeQL を動作させるクエリ言語です。 QL はオブジェクト指向ロジックプログラミング言語です。 GitHub、言語の専門家、セキュリティ研究者が code scanning に使用するクエリを作成します。クエリはオープンソースです。 コミュニティはクエリを維持および更新して、分析を改善し、誤検出を減らします。 詳しい情報については、GitHub Security Lab Web サイトの「CodeQL」を参照してください。
code scanning の API エンドポイントについての詳細は、「Code scanning」を参照してください。
- C/C++
- C#
- Go
- Java
- JavaScript/TypeScript
- Python
github/codeql
リポジトリで code scanning のクエリを表示して貢献できます。 詳しい情報については、 CodeQL ドキュメントの「CodeQL クエリ」を参照してください。
サードパーティのコードスキャンツールについて
サードパーティの静的解析ツールからGitHubにSARIFファイルをアップロードし、リポジトリ内でそれらのツールからのcode scanningアラートを見ることができます。
Code scanningは、Static Analysis Results Interchange Format (SARIF) データを出力するサードパーティのコードスキャンニングツールと相互運用できます。 SARIFはオープン標準です。 詳しい情報については「code scanningのためのSARIF出力」を参照してください。
始めるには、「GitHubへのSARIFファイルのアップロード」を参照してください。
参考リンク
- GitHub Security Lab
- OASIS 委員会 の Web サイトの「OASIS Static Analysis Results Interchange Format (SARIF) 」TC