Um private Bitbucket Packages in Composer einzubinden haben wir drei Möglichkeiten.
Enweder:
- Private Packagist (empfiehlt sich generell, um die Composer Maintainer zu unterstützen)
- Eigenen Satis Server.
- Oder direkt auf Bitbucket zugreifen.
Hier erkläre ich den letzten Weg. Dafür braucht Composer zwei Dinge:
- Bitbucket Zugriff (OAuth oder SSH).
- Ein in Composer verfügbares Repository.
Annahmen
Nehmen wir folgende Projektstruktur an:
├── composer.json
├── src/
└── tests/
Und eine composer.json
mit ähnlichem Inhalt:
{
"name": "smoothie/baum",
"description": "An example for private repositories on Bitbucket.",
"require": {
"smoothie/baum": "*"
},
"minimum-stability": "dev"
}
Wenn wir nun composer update
ausführen erklärt uns Composer, das dieses Package unbekannt ist.
Logisch, ist ja Privat.
Darum müssen wir Composer zeigen wo das Package liegt.
Repositories in Composer
Composer kennt etwas das wir Repositories nennen.
Für private Bitbucket Repositories reicht es zu wissen das diese Repositories mindestens einen Type und eine Url erwarten.
Ein Beispiel:
"repositories": [
{
"type": "vcs",
"url": "https://bitbucket.org/pobbd/foo.git"
}
]
Damit erklären wir Composer, das auf Bitbucket unter dem Benutzer (oder Team) pobbd
im Repository foo
ein Package liegt.
Bei einem update oder install wird eine composer.json
erwartet.
Findet Composer diese, wird es geladen. Wenn nicht, dann bricht es.
Per default ist das Repository packagist.org
angegeben.
Wir können beliebig weitere hinzufügen.
Um also unsere Augsangsdatei anzupassen brauchen wir eine URL. Bitbucket erlaubt uns die Auswahl. HTTPS oder SSH.
Am einfachsten erhalten wir die URL wenn wir das Repo im Browser öffnen und auf Clone klicken.
Falls du HTTPS verwendest entferne den Benutzer aus der URL.
Beispiel aus https://ieim@bitbucket.org/pobbd/foo.git
wird https://bitbucket.org/pobbd/foo.git
.
Beachte dass das ieim@
entfernt wurde.
Haben wir die URL öffnen die composer.json
und fügen unser Snippet mit URL ein.
Nun erwarten wir etwas ähnliches wie:
{
"name": "smoothie/baum",
"description": "An example for private repositories on Bitbucket.",
"require": {
"smoothie/baum": "*"
},
"repositories": [
{
"type": "vcs",
"url": "https://bitbucket.org/pobbd/foo.git"
}
],
"minimum-stability": "dev"
}
Noch ein composer update
und BAM – we are done.
Sollte composer ein Token erwarten oder eine Fehlermeldung wie Failed to execute git clone
werfen.
Dann stehen die Chancen hoch, das unautorisierte Anfragen an Bitbucket raus gehen.
Um autorisierte Anfragen aufzusetzen, habe ich zwei How-To’s für dich: HTTPS oder SSH.
Schreibe einen Kommentar