Ich habe mir den erforderlichen Prozess jetzt nochmal näher angesehen und erfolgreich getestet.
Hier meine Ergebnisse:
Ausgangssituation
Laut Jo's Aussage im Slack Channel (übersetzt ins Deutsche):
Für diejenigen, die es noch nicht wussten und Gridelements 11 bereits gesponsert haben: Sie können uns einen bestimmten öffentlichen SSH-Schlüssel schicken, der als Deploy Key auf GitHub gespeichert wird. Dies wird die Handhabung von Gridelements Installationen und Updates mit Composer erleichtern.
wurde dein Public SSH Key als Deploy Key in den Einstellungen des Early Access Repositories hinterlegt. Das Setup erfolgte also nach folgender Anleitung:
https://docs.github.com/en/authentication/connecting-to-github-with-ssh/managing-deploy-keys#set-up-deploy-keys
Deploy Key != Access Token
Folgendes steht in der Einleitung zum Thema Deploy Keys in der Doku (übersetzt ins Deutsche):
Mit einem Deploy Key, einem SSH-Schlüssel, der Zugriff auf ein einzelnes Repository gewährt, können Sie Projekte aus einem Repository auf GitHub.com auf Ihrem Server starten. GitHub verknüpft den öffentlichen Teil des Schlüssels direkt mit Ihrem Repository anstelle eines persönlichen Kontos, und der private Teil des Schlüssels verbleibt auf Ihrem Server.
Entgegen meiner hier getroffenen Aussage im Forum, einen GitHub Access Token zu nutzen, ist es bei näherer Betrachtung also ratsamer direkt den Deploy Key für den Zugriff auf das Repository anzuwenden. Ich schätze mal, dass es in meinem Fall auch mit dem GitHub Access Token funktioniert hatte, da ich tatsächlich den gleichen Key, den ich für meinen Personal GitHub Account nutze, auch als Deploy Key für das Gridelements Repository eintragen lassen habe.
Deploy Key anwenden
Mit Hilfe dieser Beschreibung, wie sich mehrere GitHub Deploy Keys nutzen lassen und der Composer Dokumentation zur Einbindung privater Repositories gelang es schließlich, den richtigen SSH Key für den Abruf zu verwenden.
Schritt 1: SSH-Konfiguration
Zunächst muss ein dedizierter Eintrag in deiner SSH Konfigurationsdatei (~/.ssh/config
) unter einem Host-Identifikator (z.B. github.com-gridelements_ea
), der explizit für den Gridelements-Abruf vorgesehen ist und Bezug nimmt auf den privaten SSH Key, der als Deploy Key eingerichtet wurde (hier gridelements_EA-Private-SSH-Key
):
Host github.com-gridelements_ea
Hostname github.com
IdentityFile ~/.ssh/gridelements_EA-Private-SSH-Key
Schritt 2: composer.json anpassen
Einrichtung des Gridelements EA Repository als privates Version Control System (VCS) Repository in der composer.json
unter Zuhilfenahme des zuvor eingerichteten dedizierten Host-Identifikators github.com-gridelements_ea
aus unserer SSH-Konfiguration:
"repositories": [
...
{
"type": "vcs",
"url": "git@github.com-gridelements_ea:CodersCare/gridelements_EA.git"
}
]
Schritt 3: Package installieren
Jetzt kann der TYPO3 v12 kompatible Branch ea_12-0
installiert werden:
composer req gridelementsteam/gridelements:dev-ea_12-0
Bonus: Installation mit DDEV
Falls du DDEV als lokale Entwicklungsumgebung benutzt, wirst du feststellen, dass es nicht ausreicht, wenn die SSH-Konfiguration in deinem DDEV Host-System vorliegt. Die Installation innerhalb des DDEV Containers funktioniert erst, wenn du auch darin die o.g. SSH-Konfiguration vorsiehst.
SSH-Konfiguration in .ddev/homeadditions
Daten, die im Verzeichnis <Projektpfad>/.ddev/homeadditions/
hinterlegt werden, werden beim nächsten Start von DDEV 1:1 in das Home-Verzeichnis des Containers gelegt. Das machen wir uns nun zunutze und erzeugen ein .ssh
-Verzeichnis mit den erforderlichen Inhalten.
Am Ende sieht das dann so aus:
In der Datei <Projektpfad>/.ddev/homeadditions/.ssh/config
legst du o.g. SSH-Konfiguration und den privaten SSH-Schlüssel kopierst du dir am besten aus deinem Host-System ebenfalls in das Verzeichnis <Projektpfad>/.ddev/homeadditions/.ssh/
.
DDEV Restart und Gridelements-Installation
Jetzt musst du nurnoch
ddev restart
ausführen und kannst anschließend auch dort Gridelements installieren 😉
ddev composer req gridelementsteam/gridelements:dev-ea_12-0
Fertig! 🥳