Hinweis
Die Open Source-Lizenzcompliance befindet sich in Öffentliche Vorschau und kann geändert werden.
Overview
Open source Lizenzcompliance hilft Ihnen, Abhängigkeitslizenzen nachzuverfolgen und Richtlinien für die Open Source Software in Ihrer Lieferkette zu erzwingen. Sie können die Lizenzcompliance verwenden, um das rechtliche und betriebliche Risiko zu reduzieren und nichtkonformierende Abhängigkeiten abzufangen, bevor Änderungen zusammengeführt werden.
Funktionsweise der Lizenzrichtlinie
Sie können eine Unternehmens- oder Organisationsrichtlinie definieren, die festlegt, welche Lizenzen für Abhängigkeiten zulässig sind.
Sie können Lizenzen entweder aus einer integrierten Liste oder, wenn keine Lizenz aufgeführt ist, angeben, indem Sie manuell einen SPDX-Lizenzbezeichner hinzufügen.
Ihre Richtlinie wird auf Unternehmens-, Organisations- und Repositoryebene angewendet. Sie können auch Paket- oder Lizenzausnahmen hinzufügen, wenn ein Enterprise Open Source License Manager Anfragen genehmigt.
Die Lizenzauswertung verwendet Abhängigkeitsdaten aus Ihren Repositorys, einschließlich transitiver Abhängigkeiten, die im Abhängigkeitsdiagramm erkannt wurden.
Wie die Durchsetzung von Pull Requests funktioniert
Die Einhaltung von Open-Source-Lizenzen wird durch Regelsätze für Branches durchgesetzt. Wenn ein Pull Request Paketmanifeste ändert, GitHub vergleicht Abhängigkeitsänderungen zwischen dem Basis-Branch und dem Pull-Request-Branch, bewertet erkannte Lizenzen anhand der Richtlinien und meldet Verstöße.
Wenn im aktiven Modus ein Regelsatz vorhanden ist, der die Bedingung "Erfordert Lizenzcomplianceergebnisse vor dem Zusammenführen" verwendet, werden Pullanforderungen, die nicht kompatible Abhängigkeiten einführen, blockiert, bis Verstöße aufgelöst werden. Ein Regelsatz im Modus Evaluate mit dieser Bedingung führt Lizenzprüfungen aus und kommentiert den Pull Request, blockiert aber keine Merges.
Darüber hinaus erfasst eine Branchschutz-Regel, die vor dem Zusammenführen das Auflösen von Kommentaren erfordert, Annotationen aus Lizenzprüfungen, sodass sogar Warnungen, die von Evaluate-Rulesets generiert werden, dieser Schutzregel unterliegen.
Wo Ergebnisse angezeigt werden
Wenn die Lizenz einer Abhängigkeit nicht in Ihrer Richtlinie enthalten ist, werden Befunde in Anmerkungen zu Pull Requests angezeigt. Die Anmerkungen generieren nicht automatisch eine Ausnahmeanforderung, da der Entwickler entscheiden konnte, seinen Code zu ändern, um die nicht kompatible Abhängigkeit zu vermeiden. Wenn sie die Abhängigkeit verwenden möchten, fordert GitHub den Entwickler auf, weitere Informationen anzugeben, und sendet anschließend die Schließungsanfrage an die Enterprise Open Source License Managers, die berechtigt sind, die Richtlinie zu ändern.
Für Enterprise Open Source License Managers stehen ausstehende Ausnahmeanforderungen in Unternehmenssicherheitsansichten zur Verfügung und werden als E-Mail-Benachrichtigungen gesendet.
Umfangs- und Steuerungsmodell
Sie können eine Richtlinie mit unternehmensweitem Geltungsbereich als gemeinsame Grundlage erstellen und bei Bedarf repositoriespezifische Ausnahmen ergänzen.
Für große Unternehmen ist ein gängiges Muster:
- Allgemeine Richtlinie zentral definieren
- Weisen Sie den Richtlinienprüfern die Enterprise Open Source License Manager-Rolle zu
- Verwenden einer benutzerdefinierten Repositoryeigenschaft zum Klassifizieren von Repositorys als inaktiv, ausgewertet oder aktiv
- Verwenden Sie Regelsätze, die auf benutzerdefinierte Eigenschaftswerte ausgerichtet sind, um den Erzwingungsmodus pro Repository zu steuern.
Entwickler mit Schreibzugriff können die effektive Richtlinie und Ausnahmen für ein Repository auf der Seite mit den Lizenzrichtlinieneinstellungen des Repositorys anzeigen.
Nächste Schritte
Weitere Informationen zu den ersten Schritten findest du unter Konfigurieren von Open Source Lizenzrichtlinien.
Weitere Informationen zu Regelsätzen finden Sie unter Informationen zu Regelsätzen.