Cómo agregar un repository privado de github como dependencia de Composer

Tengo lo siguiente en mi Laravel 5.1 projects composer.json para agregar un repository público de github como dependencia.

... "repositories": [ { "type": "package", "package": { "name": "myVendorName/my_private_repo", "version": "1.2.3", "source": { "type" : "git", "url" : "git://github.com/myVendorName/my_private_repo.git", "reference" : "master" }, "dist": { "url": "https://github.com/myVendorName/my_private_repo/archive/master.zip", "type": "zip" } } } ], "require": { .... "myVendorName/my_private_repo": "*", }, ... 

Esto funciona siempre que el repository sea público. Ahora he establecido este repository en privado. Las cnetworkingenciales de git que uso para tirar / empujar a 'my_private_repo' son las de un queueborador del proyecto. ¿Cómo puedo lograr que el compositor saque de ese repository privado cuando ejecuto la actualización del compositor o la installation del compositor ?

Trabaja con repositorys privados en GitHub y BitBucket:

JSON

 { "require": { "vendor/my-private-repo": "dev-master" }, "repositories": [ { "type": "vcs", "url": "git@bitbucket.org:vendor/my-private-repo.git" } ] } 

El único requisito es la installation de keys SSH para un cliente git.

Documentos

Espero que mi respuesta no llegue demasiado tarde, ya que me acabo de enterar de esto mismo. También hice una input a mi blog: https://keevitaja.com/posts/using-github-private-repositories-as-composer-dependencies

Generando una key ssh

Puede generar n + 1 keys ssh con el command ssh-keygen. ¡Asegúrate de hacer esto en el server!

➜ ~ cd ~/.ssh ➜ .ssh ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): repo1 Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in repo1. Your public key has been saved in repo1.pub. The key fingerprint is: SHA256:EPc79FoaidfN0/PAsjSAZdomex2J1b/4zUR6Oj7IV2o user@laptop The key's randomart image is: +---[RSA 2048]----+ | . . o .. | | o B o .. | | . + B o . | | . * B = .o| | SBO B+o| | o B =.+*| | o....Bo| | o Eo| | +.o | +----[SHA256]-----+

Después de usar el command ssh-keygen, se le solicitará el nombre de file y la frase de contraseña. Necesita una key para cada repository privado que va a usar como dependencia del compositor. En este ejemplo, repo1 es el nombre del file.

Asegúrese de dejar la frase de contraseña y la confirmación en blanco.

Configurando el ssh para recoger la key correcta

En el file de serveres ~ / .ssh / config, puede asignar un alias para cada repository de GitHub. De lo contrario, el compositor intenta usar el id_rsa pnetworkingeterminado.

 Host repo1 HostName github.com User git IdentityFile ~/.ssh/repo1 IdentitiesOnly yes Host repo2 HostName github.com User git IdentityFile ~/.ssh/repo2 IdentitiesOnly yes 

Configurando Composer

En los proyectos del file composer.json, debe agregar los repositorys que desee como dependencies:

"repositories": [ { "type": "vcs", "url": "repo1:YourAccount/repo1.git" }, { "type": "vcs", "url": "repo2:YourAccount/repo2.git" } ],

repo1 y repo2 son los alias que ha creado en el file ~ / ssh / config. La url completa de ssh de GitHub para repo1 sería:

git@github.com: YourAccount / repo1.git

Y ahora deberías estar listo para el bien. Ahora puede solicitar sus dependencies:

composer require youraccount/repo1 -n composer require youraccount/repo2 -n

¡NÓTESE BIEN! Al usar repositorys de GitHub como dependencies de compositor, siempre debe agregar -n a cada command de compositor.