Zum Inhalt

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:

  1. Bei Änderungen von Dependency-Dateien in Merge-Requests zu Main- oder Release-Branches.
  2. Durch geplante Pipelines für regelmäßiges Compliance-Monitoring.
  3. 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.sh generiert formatierte Lizenzzusammenfassungen.
  • Das Skript create-gitlab-report.sh konvertiert 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.txt liefert 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