GitHubの新ツール、高額な損害を招くオープンソースライセンス違反の防止を支援

GitHubのOpen Source Program Office(OSPO)は現在パブリックプレビュー中の新機能「GitHub License Compliance」を利用し、数千件に及ぶオープンソース依存関係を管理するとともに、ライセンスの確認が必要な依存関係を特定しています。

この機能はGitHub Advanced Securityの顧客が利用でき、プルリクエスト内で新しい依存関係を確認し、そのライセンスが組織のポリシーに準拠しているかを検証したうえで、必要に応じて新規ライセンスやパッケージ固有の例外を承認できます。

GitHub Enterprise Cloudの顧客は、有効なGitHub Advanced Security(GHAS)のCode Securityライセンスを持つリポジトリ全体でLicense Compliance機能を利用できます。

GitHubのStaff Product ManagerであるJeff Luszcz氏とSenior Product ManagerであるEric Sorenson氏は、「ほぼすべてのソフトウェアには何らかのライセンス契約が付随しています。ライセンスは、その義務を遵守することを条件に、プロジェクトの利用を許可するものです。その義務は、ドキュメントに原著作者のクレジットを記載するといった単純なものである場合もあれば、プログラムを配布する際にソースコード全体の公開を求める場合もあります。場合によっては、特定の活動やカテゴリーの利用そのものを制限するライセンスも存在します」と説明しています

GitHubによれば、ライセンスの義務を遵守できない組織は、その依存関係の利用を避けるべきだといいます。後から置き換えるとなると、多大なエンジニアリング工数がかかる可能性があるためです。同社はさらに、エンタープライズソフトウェアにおいてライセンス違反が発生すると、法的紛争や評判の毀損につながりかねないと付け加えています。

ライセンスポリシーの構築

2カ月前、OSPOは社内で開発していたコンプライアンスツールから新しいGitHub License Compliance機能へと切り替えました。早期導入者として、同チームは複雑なコンプライアンス要件を抱える大規模組織向けにツールを改善するためのフィードバックを提供しました。

同社はもともと利用を許可するライセンスの一覧を保有しており、これを初期ポリシーとして活用しました。多くの依存関係はMIT、Apache 2.0、BSD-3-Clauseといった寛容なライセンスを採用しており、ポリシー策定の良い出発点となりました。

GitHubは組織全体に適用するルールセットを用いて、この機能を「Evaluate」モードで展開しました。これによりマージをブロックすることなくPRに注釈が生成され、開発者が新しいワークフローに慣れるのに役立ちました。約1カ月後には、アラートのほとんどが、通常とは異なる、記載がない、あるいは明示的に許可されていないライセンスを持つパッケージに関するものになりました。

機能の仕組み

GitHub License Complianceはルールを用いて、プルリクエストを通じて追加された新しい依存関係を自動的にスキャンします。直接的な依存関係と間接的な依存関係の両方について、ライセンスを組織のコンプライアンスポリシーと照合します。ポリシーに適合しないライセンスが見つかった場合は、該当するパッケージを示すアラートをプルリクエストに追加します。

Image

sidekiq #1で検出された非準拠のライセンス表記(出典:GitHub)

ライセンスが許容できないものであれば、開発者は該当の依存関係を削除または置き換えることができます。当該パッケージを許可すべきだと考える場合は、例外申請を提出できます。この申請は組織のポリシーレビューチームによって審査され、パッケージを承認するか、ライセンスポリシーを更新するかが判断されます。

例外申請を審査する際、ポリシーレビューチームはライセンス全体を承認するか、それとも該当パッケージのみを承認するかを判断するとともに、その承認を組織全体に適用するのか、単一のリポジトリに限定するのかを決定します。

コンプライアンス上のリスクが低く、一般的に使用されているライセンスは、組織全体で承認される場合があります。商用ライセンスは通常、そのソフトウェアを購入したチームが所有するリポジトリに限定して承認されます。GitHubは、ライセンス情報を欠くことが多い社内ソフトウェアについては、パッケージ固有の例外を作成しています。

ワイルドカードルールを使えば、組織はパッケージを個別に確認するのではなく、関連するパッケージ群をまとめて承認できます。

レビューのワークフロー

GitHubのライセンスレビューチームは複数のタイムゾーンに分散配置されており、承認プロセスの迅速化を図っています。同社は正式なサービスレベル合意(SLA)を策定中で、ライセンス申請の大半は数時間以内に審査されます。レビュー担当者は新規申請が提出されるとメール通知を受け取り、ダッシュボードを通じて審査待ちの案件を追跡できます。

GitHubは、OSPOへの問い合わせ手順と、緊急性の高いPRに対する緊急オーバーライドの利用手順を定めています。ライセンスの適用はリポジトリのプロパティを通じて制御されているため、チームはリポジトリを一時的に「Active」モードから「Evaluate」モードに切り替えることができ、ライセンス上の問題を審査している間も重要な修正を先に進められるようになっています。

翻訳元: https://www.helpnetsecurity.com/2026/07/02/github-license-compliance-feature/

ソース: helpnetsecurity.com