web-dev-qa-db-ja.com

プライベートgithubリポジトリをComposer依存関係として追加する方法

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がそのプライベートリポジトリからプルされます)

21
epic_antihero

GitHubとBitBucketでプライベートリポジトリを操作します。

[〜#〜] json [〜#〜]

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

唯一の要件は、gitクライアントのSSHキーのインストールです。

ドキュメント

33
Sofiene Djebali

私はこれを自分自身で学んだので、私の答えが手遅れにならないことを願っています。また、私のブログにエントリを作成しました: https://keevitaja.com/posts/using-github-private-repositories-as-composer-dependencies

Sshキーの生成

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の構成

サーバーの〜/ .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の構成

プロジェクト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を追加する必要があります。

17
Tanel Tammik

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通常のパッケージ。

2
BassMHL