MF Blogs 便利ツール
濃紺の背景に光彩を帯びたオレンジとピンクのグラデーションの盾のアイコンが浮かび、右下にピンクの帯と青いチェックマークが入った白いライセンス文書のアイコンが重なって配置されたイラスト

記事

GitHub、依存関係のライセンス遵守チェックを正式提供開始——非準拠ライブラリをPR上で自動検知

GitHubがEnterprise Cloud向けにOpen source license complianceを正式提供しました。依存関係のライセンスを組織ポリシーに基づいて自動チェックし、プルリクエスト上で非準拠を検知・通知します。

0:00 0:00

GitHubは、依存関係のライセンスを組織単位で一元管理できる「Open source license compliance」機能を正式提供(General Availability)したと発表しました。GitHub Enterprise Cloudのカスタマー向けで、データレジデンシー対応のGHECも含まれます。対象はGitHub Code Securityを有効化したリポジトリです。プルリクエストを開いた時点でライセンス違反を検知できるようになり、依存関係まわりの法務リスクをコードレビューの手前で潰せるようになります。

rulesetベースの組織ポリシーで一元管理

今回の機能は、dependency reviewアクションが持っていた機能を拡張し、エンタープライズ全体に適用できるライセンスポリシーを導入したものです。既存のコードスキャン条件と同じ要領で、「Require license compliance results before merging」という新しいruleset条件をリポジトリに設定することでポリシーが有効になります。開発者が依存関係を追加・変更するプルリクエストを開くと、ライセンスチェックが自動で走り、新規または変更された依存関係のライセンスが許容範囲内かどうかを判定します。これまでは依存関係のライセンスをリポジトリごとに個別チェックするしかありませんでしたが、組織横断で統一ルールを敷けるようになった点が大きな変化です。

非準拠を検知したら、PR上で直接対応できる

非準拠の依存関係が見つかると、プルリクエスト上にその旨を知らせる注釈が自動で付きます。開発者はこの注釈を見て、依存関係を削除するか、別のライブラリに差し替えるか、ライセンスポリシー自体を変更するか、あるいは個別の例外(package exceptions)を作成するかを選んで対応する流れです。あわせて新しいエンタープライズロール「Enterprise Open-Source License Manager」も導入されました。このロールを割り当てられた個人やチームは、例外申請のクローズリクエストをレビュー・承認する権限を持ち、保留中のリクエストについてはメール通知も届きます。誰が最終判断を下すかという運用面の役割分担が、仕組みとして最初から用意されているのは地味ながら重要なポイントです。

PR作成からライセンスチェック、ポリシー適用までの3段階を示したフロー図イラスト

パブリックプレビューからの改善点

この機能は今年6月のパブリックプレビュー公開以降、いくつかの改善が加えられています。まず、データレジデンシー対応のGitHub Enterprise Cloudカスタマーでもライセンス情報が利用可能になりました。これによりライセンスコンプライアンス機能そのものに加え、依存関係グラフやSBOM(Software Bill of Materials)のエクスポートにもライセンスデータが反映されるようになっています。また、ライセンスポリシーの変更は監査ログイベントとして記録されるようになり、外部のシステムオブレコードと連携しやすくなりました。エンタープライズのライセンスポリシーをダウンロード・更新・置き換えするための新しいAPIエンドポイントも追加されています。

コーディングエージェントも意識したAPI拡張

特に注目したいのが、パッケージがポリシーに準拠しているかどうかを単体でチェックできる新しいAPIエンドポイントです。GitHubはこれについて、コーディングエージェントが組織のライセンス利用ポリシーに違反するパッケージを推奨したり組み込んだりするのを防げる、と説明しています。AIエージェントがコードを自律的に書き進める場面が増える中で、依存関係の選定もエージェント任せになりつつありますが、そこにライセンス遵守のガードレールを後付けできる設計は、今の開発スタイルの変化を踏まえた実用的な拡張と言えそうです。

利用にはAbout open source license complianceのドキュメントを参照するよう案内されており、詳細なAPI仕様は依存関係グラフ(dependency-graph)向けのREST APIエンドポイント一覧にまとめられています。オープンソースのライブラリを大量に取り込みながら開発する組織にとって、ライセンス起因のトラブルをマージ前に自動で止められる仕組みは、監査対応やセキュリティ体制の強化とあわせて検討する価値が大きいはずです。