GitHubにGitHubをミラーリングする


11

ローカルgitlabで、プロジェクトnovaのコピー(https://github.com/openstack/nova)を作成しました。

ローカルnovaリポジトリをgithubと同期して、1時間に1回または1日に1回更新する方法を教えてください。

ここに記載されているbitnamiに似たソリューションが欲しい:http ://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(Devstackを使用してOpenstackをインストールしました。)

回答:


6

GitLabにはこの機能が組み込まれています!
GitLab EE 8.2以降ではサポートされています。やった!

リモートリポジトリからプルする

リポジトリを設定して、そのブランチ、タグ、およびコミットがアップストリームリポジトリから自動的に更新されるようにすることができます。
...

新しいプロジェクトを作成するときに、「URLによる任意のリポジトリ」からリポジトリをインポートすることを選択すると、リポジトリミラーリングを有効にできます。プルするGitリポジトリの完全なURLを入力し、[ ミラーリポジトリ]チェックボックスをクリックします。

GitLab自動ミラーリング

既存のプロジェクトの場合、プロジェクトの[設定]➔[リポジトリ]にアクセスし、[リモートリポジトリからプル]セクションを検索して、ミラープルを設定できます。[ミラーリポジトリ]ボックスをオンにして、下部の[ 変更保存]をクリックます
...


1
彼らの例ではgitlabを使用していますが、その部分をGithubに置き換えた以外はまったく同じでしたが、更新は終わりません
...-MarcusJ

@MarcusJここでもまったく同じですが、解決策を見つけましたか?
MemphiZ

それは、私がこれをしなければならなかったので、しばらくして、私は私がやったことは、SSHのフォーマットでsshのURLを使用したと思います://git@gitlab.com:ユーザー名:RepoName.git
MarcusJ

私はちょうどあなたのレポが公開されている場合は簡単に、ちょうどgitlab設定でこのURLを貼り付けgitlabにgithubのから引っ張って、この仕事をされて作られた:https://github.com/yourGithubUserName/repoName.git、その後、コンボボックスでのパスワード方式を選択し、パスワードテキストボックスを空白のままに
knocte

4

ローカルコミットが必要ない場合は、次のレシピが機能します。

リポジトリをクローンし--mirrorます:

git clone --mirror https://github.com/openstack/nova.git

次に、cronjobで、これを1時間ごとに更新します。

0 * * * * cd /path/to/nova.git && git fetch

--mirrorあなたが変更をマージする必要はありませんので、後続のフェッチは、すべてのローカル参照文献を更新するような方法でrefspecsアップセット。もちろんそのレポにプッシュコミットが失われていることを意味しています。


これは、GitLabでミラーを取得するという質問に答えているようには見えません。
ケンウィリアムズ



0

これは、cronジョブを使用して実行できます。

ターミナルでcrontab -e(crontabを編集するために)タイプし、次の行を下部に追加します。

* 0 * * * git clone ssh://username@hostname:port/repo

毎日真夜中にクローンを実行します。


増分更新であることを願っています。もう一度ダウンロードする必要はありません。
user186107
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.