web-dev-qa-db-ja.com

gitlabとgithubを同期する方法

ローカルGitlabインスタンスで作業している開発者が何人かいます。クライアントは、Githubリポジトリを最新の状態に保つ必要があります。したがって、GitlabリポジトリはすべてのコミットをGithubに直接プッシュする必要があります。 Githubへのコミットも同様にGitlabにプルする必要があります。

私は最初の部分(dev-> gitlab-> github)をジェンキンスか何かで行うことができましたが、逆に行き詰まっています。 GitlabとJenkinsはファイアウォールの内側で実行されます。

ヒントやポインタ(またはソリューションのドロップ!)をいただければ幸いです。

16
mdekkers

これはエンタープライズ版とGitLab.comにのみ存在しますが、GitLabはこの機能を回避策なしで直接導入しています。

それらは リモートリポジトリからのプルの文書化 です。

プッシュできる構成の同じセクションにもあります。

  1. プロジェクト内から歯車アイコンを使用してMirror Repositoryを選択します
  2. 下にスクロールしてPush to a remote repository
  3. チェックマークリモートミラーリポジトリ:リモートミラーのブランチ、タグ、およびコミットをこのリポジトリから1時間ごとに自動的に更新します。
  4. 更新するリポジトリを入力します。 GitHubの場合、次のようにURLにユーザー名とパスワードを含めることができます:https://yourgithubusername:[email protected]/agaric/guts_discuss_resource.git

まだ試していませんが、同じリポジトリにプッシュしたりプルしたりできるはずです。リモートリポジトリ(drupal.org)からプルしたり、別のリモートリポジトリ(gitlab.com)にプッシュしたりするのに最適です。

14
mlncn

GitHubからGitLabに同期する場合、 Webhooks を使用してサイトに通知を送信し、おそらくこれを何らかの方法で管理できます(GitLabがこれをサポートしているかどうかはわかりません)。

そして、もう少し実装すると、(理論的には)GitHub APIを使用できます。

「-redscriptの問題とgitlabの問題の間の単純な(そしてダーティーな)同期」という名前の 小さなスクリプト も見つけました。

2
rugk

Rugkとmlncnの回答は古くなっています。

正しい手順について説明します gitlab docsのこの部分

0
Garo