Laravel 5.1プロジェクトcomposer.jsonに公開githubリポジトリを依存関係として追加するために、次のものがあります。
...
"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": "*",
},
...
これは、リポジトリがパブリックである限り機能します。これで、このリポジトリをプライベートに設定しました。 「my_private_repo」へのプル/プッシュに使用するgitクレデンシャルは、プロジェクトの協力者です。 composer updateまたはcomposer installを実行すると、そのcomposerがそのプライベートリポジトリからプルされます)
GitHubとBitBucketでプライベートリポジトリを操作します。
[〜#〜] json [〜#〜]
{
"require": {
"vendor/my-private-repo": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "[email protected]:vendor/my-private-repo.git"
}
]
}
唯一の要件は、gitクライアントのSSHキーのインストールです。
私はこれを自分自身で学んだので、私の答えが手遅れにならないことを願っています。また、私のブログにエントリを作成しました: https://keevitaja.com/posts/using-github-private-repositories-as-composer-dependencies
Ssh-keygenコマンドでn + 1個のsshキーを生成できます。サーバーでこれを行うようにしてください!
➜ ~ 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|
| S B O B+o|
| o B =.+*|
| o....Bo|
| o E.o|
| +.o |
+----[SHA256]-----+
Ssh-keygenコマンドを使用すると、ファイル名とパスフレーズの入力を求められます。 composer依存関係として使用するプライベートリポジトリごとにキーが必要です。この例では、repo1はファイル名です。
パスフレーズと確認は空のままにしてください。
サーバーの〜/ .ssh/configファイルで、各GitHubリポジトリにエイリアスを割り当てることができます。そうでない場合、composer=はデフォルトのid_rsaを使用しようとします。
Host repo1
HostName github.com
User git
IdentityFile ~/.ssh/repo1
IdentitiesOnly yes
Host repo2
HostName github.com
User git
IdentityFile ~/.ssh/repo2
IdentitiesOnly yes
プロジェクトcomposer.jsonファイルで、依存関係として必要なリポジトリを追加する必要があります。
"repositories": [
{
"type": "vcs",
"url": "repo1:YourAccount/repo1.git"
},
{
"type": "vcs",
"url": "repo2:YourAccount/repo2.git"
}
],
repo1とrepo2は、〜/ ssh/configファイルで作成したエイリアスです。 repo1の完全なGitHub ssh URLは次のとおりです。
[email protected]:YourAccount/repo1.git
そして今、あなたは永遠に準備ができているはずです。依存関係を要求できるようになりました:
composer require youraccount/repo1 -n
composer require youraccount/repo2 -n
NB! GitHubリポジトリをcomposer依存関係として使用する場合、各composerコマンドに常に-nを追加する必要があります。
1。 Gitリポジトリーを指す
Composer.jsonを更新し、リポジトリを追加します。
"repositories":[
{
"type": "vcs",
"url": "[email protected]:vendor/secret.git"
}
]
2。 SSHキーを作成します
パッケージをインストールするマシンにSSHキーを作成します。
開発マシンで作業している場合は、おそらくSSHキーをGitHub/BitBucket/GitLabアカウントに追加する必要があります。これにより、アカウントがアクセスできるすべてのプライベートリポジトリにアクセスできます。
Github、Bitbucket、またはGitlab SSHキーを追加する方法の詳細については、こちらをご覧ください excellent article
展開サーバーを構成する場合は、アクセスキーまたは展開キーを構成することをお勧めします。アクセスキーは、単一のリポジトリへのアクセスのみを提供するため、より具体的なアクセス管理が可能です。
3。 composerを実行します
composer requireまたはcomposer install
通常のパッケージ。