メモ
オープン ソース ライセンスのコンプライアンスは パブリック プレビュー であり、変更される可能性があります。
Overview
Open source ライセンス コンプライアンスは、依存関係ライセンスを追跡し、サプライ チェーン内のオープンソース ソフトウェアのポリシーを適用するのに役立ちます。 ライセンス コンプライアンスを使用すると、法的および運用上のリスクを軽減し、変更がマージされる 前に 不適合の依存関係をキャッチできます。
ライセンス ポリシーのしくみ
使用を許可するライセンスの依存関係を制御する企業または組織のポリシーを定義できます。
ライセンスは、組み込みリストから指定することも、ライセンスが一覧にない場合は、SPDX ライセンス識別子を手動で追加して指定することもできます。
ポリシーは、エンタープライズ、組織、リポジトリのスコープで適用されます。 Enterprise オープン ソース ライセンス マネージャーが要求を承認するときに、パッケージまたはライセンスの例外を追加することもできます。
ライセンスの評価では、依存関係グラフで検出された推移的な依存関係など、リポジトリからの依存関係データが使用されます。
プル リクエストの必須化の仕組み
オープン ソース ライセンスのコンプライアンスは、ブランチ ルールセットを通じて適用されます。 プル要求がパッケージ マニフェストを変更すると、 GitHub は基本ブランチとプル要求ブランチ間の依存関係の変更を比較し、検出されたライセンスをポリシーに対して評価し、違反を報告します。
"マージ前にライセンス コンプライアンスの結果が必要です" 条件を使用する アクティブ モードのルールセットがある場合、非準拠の依存関係を導入するプル要求は、違反が解決されるまでブロックされます。 その条件を持つ 評価 モードルールセットは、ライセンスチェックを実行し、プル要求に注釈を付けますが、マージをブロックしません。
さらに、マージする前にコメント解決を必要とする ブランチ保護規則 では、ライセンス チェックからの注釈が追跡されるため、 Evaluate ルールセットによって生成されたアラートでも保護の対象となります。
結果が表示される場所
依存関係のライセンスがポリシーに含まれていない場合、結果は pull request 注釈に表示されます。 注釈は例外要求を自動的に生成しません。開発者は、非準拠の依存関係を回避するためにコードを変更する可能性があるためです。 依存関係を使用する場合は、 GitHub 開発者に詳細を求め、ポリシーを変更するアクセス許可を持つエンタープライズ オープン ソース ライセンス マネージャーにクロージャ要求を送信します。
エンタープライズ オープン ソース ライセンス マネージャーの場合、保留中の例外要求はエンタープライズ セキュリティ ビューで使用でき、電子メール通知として送信されます。
スコープとガバナンス モデル
一般的なベースラインのエンタープライズ スコープでポリシーを作成し、必要に応じてリポジトリ固有の例外をレイヤー化できます。
大企業の場合、一般的なパターンは次のとおりです。
- 広範なポリシーを一元的に定義する
- ポリシーレビュー担当者に Enterprise Open Source License Manager ロールを割り当てる
- リポジトリのカスタム プロパティを使用して、リポジトリを非アクティブ、評価、またはアクティブとして分類する
- カスタム プロパティ値を対象とするルールセットを使用して、リポジトリ別の適用モードを制御する
書き込みアクセス権を持つ開発者は、リポジトリのライセンス ポリシー設定ページから、リポジトリの有効なポリシーと例外を表示できます。
次のステップ
始めるには、「オープンソース ライセンス ポリシーの構成」をご覧ください。
ルールセットの一般情報については、「ルールセットについて」をご覧ください。