Lizenzchecks
Lizenz-Anforderungen und Compliance-Checks: Automatisierte Überwachung in der CI/CD-Pipeline
Die Einhaltung von Lizenzbestimmungen in der Entwicklung des KIVA KI-Plattform ist zentral, um rechtliche Risiken und Compliance-Probleme zu vermeiden. Dieser Aspekt wird durch strenge Governance-Regeln und automatisierte Werkzeuge in der CI/CD-Pipeline sichergestellt.
1. Grundlagen und Lizenz-Governance
Das KIVA KI-Plattform basiert auf einem strikten Open-Source-Ansatz, wobei alle Beiträge der MIT-Lizenz unterliegen müssen. Die Plattform nutzt unteranderen z.B. einen Fork von LiteLLM in Version v1.74.4, dessen Enterprise-Ordner entfernt wurde, um die Einhaltung der MIT-Lizenz zu gewährleisten. Um die Lizenzen transparent zu verwalten, setzt das Projekt den REUSE Standard zur klaren Definition von Lizenz- und Copyright-Informationen im gesamten Quellcode ein.
2. Der Lizenz-Scanner: ORT-Integration
Zur automatisierten Sicherstellung der Compliance wird ein spezieller Lizenz-Compliance-Scanner eingesetzt, der auf dem OSS Review Toolkit (ORT) basiert. Dieses Tool wurde für die automatisierte Dependency-Lizenzanalyse in Softwareprojekten entwickelt und ist speziell für den Einsatz in Unternehmensumgebungen mit Proxy-Unterstützung konzipiert.
- Funktion: Der Scanner analysiert den vollständigen Dependency-Baum, um Lizenzen von Projekt-Dependencies und potenzielle Compliance-Probleme zu identifizieren.
- Fokus: Der Scanner konzentriert sich darauf, proprietäre, kommerzielle, unbekannte oder nicht identifizierte Lizenzen hervorzuheben, die eine manuelle rechtliche Überprüfung erfordern. Er identifiziert auch Dependencies mit fehlenden Lizenzinformationen.
- Unterstützte Technologien: Die Analyse umfasst eine breite Palette von Paketmanagern für Sprachen wie Python (
requirements*.txt,pyproject.toml), JavaScript/Node.js, Go, Java und Rust. - Konfiguration: Die Steuerung des Scanners erfolgt über die Hauptkonfigurationsdatei
.ort.yml, welche den Analyzer (zur Dependency-Erkennung), Ausschlüsse (Excludes) und Resolutions (Behandlung bekannter Probleme) steuert.
3. CI/CD-Workflow und Berichterstattung
Der Lizenz-Scanner integriert sich nahtlos in die GitLab CI/CD-Pipelines über die Konfiguration license_check.yml.
Auslösemechanismen
Der Lizenzcheck-Job wird automatisch unter folgenden Bedingungen ausgeführt:
- Bei Änderungen von Dependency-Dateien in Merge-Requests zu Main- oder Release-Branches.
- Durch geplante Pipelines für regelmäßiges Compliance-Monitoring.
- Manuell über die GitLab-UI.
Berichterstattung
Um die generische ORT-Ausgabe für schnelle Compliance-Überprüfungen aufzubereiten, werden benutzerdefinierte Bash-Skripte eingesetzt.
- Das Skript
check-licenses.shgeneriert formatierte Lizenzzusammenfassungen. - Das Skript
create-gitlab-report.shkonvertiert die Ergebnisse in das GitLab-kompatible Lizenz-Scanning-Format (gl-license-scanning-report.json) für die Anzeige im Security-Dashboard. - Die erzeugte Zusammenfassung
license-check-summary.txtliefert prägnante Informationen, wie die Gesamtzahl analysierter Pakete und die Anzahl der nicht identifizierten oder fehlenden Lizenzen.
4. Detaillierte Informationen und Repository
Die vollständige Implementierung des Lizenz-Scanners, einschließlich der Konfiguration, der angepassten Skripte und der CI/CD-Einrichtung, ist im dedizierten Repository öffentlich verfügbar.
Weitere Informationen zur Konfiguration und den Scripts finden Sie unter:
https://gitlab.opencode.de/baden-wuerttemberg/innenministerium/kiva.apps/kiva-license-scanner