Dateien an einem Ort verwalten und mittels gt verteilen
15. November 2022
gt -- g(it)t(ools) -- ist ein Bash-basiertes Tool, welches Dateien von Git-Repositories herunterlädt und mittels GPG verifiziert. Es ist unter der European Union Public Licence EUPL-1.2 lizenziert.
Vielleicht bist du ja in derselben Situation wie wir waren (nun ja... immer noch ein wenig sind). Viele Dateien werden über mehrere Projekte und Repositories dupliziert geführt. Angefangen bei der Lizenz-Datei, dem CODE_OF_CONDUCT.md, über Konfigurationsdateien (wie beispielsweise .editorconfig), hin zu Workflow-Dateien und Scripts. Einige von ihnen wirst du nie mehr ändern (zumindest denkst du das zum jetzigen Zeitpunkt), andere änderst du vielleicht einmal pro Jahr (z.B. das Jahr im Copyright anpassen) und wiederum andere änderst du mit Sicherheit regelmässiger.
In all diesen Situationen macht es Sinn, die Dateien an einem zentralen Ort (sprich Repository) zu pflegen, zu verwalten und sie auf irgendeine Art zu verteilen. gt kann als leichtgewichtiger Paket-Manager angesehen werden, allerdings ohne Unterstützung für Abhängigkeiten, dafür mit einem starken Sinn für Datei-Integrität. Du kannst jedes beliebige git Repository mittels gt remote add als Quelle verwenden und dann mittels gt pull eine oder mehrere Dateien aus diesem Repository in dein Repository herunterladen. Ob du diese Dateien dann committest oder sie auf der .gitignore-Liste landen und deine Mitstreiter:innen sie entsprechend via gt re-pull herunterladen, ist dir überlassen.
Mit gt update lassen sich bereits heruntergeladene Dateien auf die neuste oder eine spezifizierte Version aktualisieren. Ein entsprechender GitHub-Workflow (welchen du natürlich mit gt in dein Repository holst) übernimmt die periodische Überprüfung nach neueren Versionen und erstellt einen entsprechenden Pull-Request.
Wir hoffen gt wird die Verteilung von Dateien auch für dich erleichtern und freuen uns auf dein Feedback.