2012-05-02 17 views
5

私は、私たちのプライベートGithubリポジトリから毎晩深夜に自動プルし、私たちの開発サイトを更新するbashスクリプトを書く方法を見つけようとしています。プライベートGitリポジトリからプッシュ/プルするためのBashスクリプト?

私たちのリポジトリは明白な理由からプライベートであり、私が見つけたものは、常にパスフレーズを要求しています。私たちのサーバーには、リポジトリからプッシュ&プルするために使用する独自のGithubアカウントがありますが、それを自動的に行う方法はわかりません。

誰でも正しい方向に向けることができますか?

答えて

7

プッシュ/プルを自動化するには、パスワードレス認証を設定する必要があります。これを行うには、httpsの代わりにsshを使用します。 githubでsshを使用していない場合、または以前にsshを使用していない場合は、設定を行うためにいくつかの手順を実行する必要があります。あなたのマシン上で

、SSHキー生成:

$ ssh-keygen -t rsa 

を使用すると、パスフレーズのフィールドを空白のままにしていることを確認します。これにより、ローカルの秘密鍵は暗号化されずに残されますが、インターネット上の実際の通信にはあまり安全ではありません。

次に、~/.ssh/id_rsa.pubをgithubにアップロードしてアカウント設定| SSHキー

これで、パスワードなしでそのマシンをプッシュしてプルできるようになりました。試してみてください:

git clone [email protected]:user/repo.git 

これらのコマンドは、必要に応じてbashスクリプトに入れることができます。複数のマシンでこれを行う必要がある場合は、各キーをアップロードするか、秘密鍵(~/.ssh/id_rsa)をそれぞれにコピーする必要があります。

詳細については、github helpを参照してください。 deploy keysページもご覧ください。状況によってセキュリティの細分性が向上する可能性があります。

+0

「git pull」はどうですか?私はそれが公開されたときにクローンを作成しました。今はプライベートなので更新できません。ありがとう! –

+1

'git pull'は' git clone'と変わりませんが、オプションで[別のプルとプッシュURL]を設定することもできます(https://www.kernel.org/pub/software/scm/git/docs/git- remote.html)。あなたの 'git remote'設定をチェックして、あなたのURLが正しく設定されていることを確認することをお勧めします。 – djs