Cloud Source Repositories への GitLab リポジトリのミラーリング
- GCPプロジェクト作成
- 課金設定を有効にする
- gcloud コマンドでプロジェクトIDを選択し確認
# プロジェクトIDを選択(セット) $ gcloud config set project PROJECT_ID # 選択されたか確認 $ gcloud config get-value project
- Cloud Source Repositories API を有効にします
$ gcloud services enable sourcerepo.googleapis.com
GitLab の Git リポジトリを用意
ミラーリング対象のリポジトリを用意します。
既存のリポジトリがあるなら、そのプロジェクトページを開いておきます。
新規で作る場合も同様に、作成後のページを開いておきます。
Cloud Source Repositories の Git リポジトリ作成
以下、コマンドで CSR に Git リポジトリを作成します。
$ gcloud source repos create REPO_NAME
静的認証情報の生成
GitLab のリポジトリミラーリング設定をする時に利用する「静的認証情報(リポジトリURL
+ パスワード
)」を CSR のコンソール上で生成します。
- CSRの該当リポジトリページに移動
- [手動で生成した認証情報] > [Git認証情報を生成して保存します] を選択
- Google の OAuth2.0 認証画面で承認する
- 承認後に表示される [Configure Git] のスクリプトをコピーする
- ターミナルに貼り付けて実行 (
~/.gitcookies
に保存される) ~/.gitcookies
に書き込まれた内容からリポジトリURL
とパスワード
を抽出する(以下スクリプトを保存して実行)#!/bin/bash if [ $# -ne 1 ] ;then echo "リポジトリ名を指定してください。" 1>&2 exit 1 fi # 【パスワードの抽出】 echo "password: " grep 'source.developers.google.com' ~/.gitcookies | tail -1 | cut -d= -f2 CSR_USER=$(grep 'source.developers.google.com' ~/.gitcookies | \ tail -1 | cut -d$'\t' -f7 | cut -d= -f1) CSR_REPO=$(gcloud source repos describe $1 --format="value(url)") # 【リポジトリURLの抽出】 echo "repo url: " echo $CSR_REPO | sed "s/:\/\//:\/\/${CSR_USER}@/"# 実行例 $ ./gcloud_configure_git.sh REPO_NAME password: 1//0gI_x-iHtpfdsF.... repo url: https://git-REPO_USER@source.developers.google.com/p/PROJECT_ID/r/REPO_NAME
ミラーリングの設定
ハイライトされた部分が上記スクリプトから抽出した値です。
- ミラーリングする GitLab プロジェクトが表示されているブラウザ ウィンドウに戻ります。
- 画面左側のメニューで、[Settings] > [Repository] をクリックします。
- メインページ本文の [Repository Settings] セクションで、[Mirroring repositories] という見出しを見つけて、そのセクションの [Expand] ボタンをクリックします。
- 表示される [Mirror a repository] セクションで、次のフォーム値を入力します。
- Git repository URL: Cloud Shell からユーザー名を含むリポジトリ URL をコピーします。
- Mirror direction: [Push]。
- Authentication method: [Password]。
- Password: Cloud Shell からパスワードをコピーします。
- [Only mirror protected branches] はオフのままにします。
設定は以上です。
GitLab に Git Push して CSR に反映されるかを試します。
コメント
コメントを投稿