GitLab に接続する

このページでは、GitLab への接続を作成し、GitLab リポジトリへのリンクを作成する方法について説明します。 これらのタスクは、 Google Cloud コンソール、 または Google Cloud CLI を使用して完了できます。

この手順は、Google で GitLab ソースコード リポジトリを使用するアプリケーション デベロッパー、プラットフォーム管理者、セキュリティ マネージャーを対象としています。 具体的には、 Gemini Code Assist で GitLab リポジトリを使用できます。

Developer Connect の詳細については、 Developer Connect の概要をご覧ください。

始める前に

  1. ログイン Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、 新しいアカウントを登録します

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Developer Connect API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Developer Connect API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Developer Connect を有効にすると、 Secret Manager API も有効になります。

  9. GitLab のアカウントにアクセスできることを確認します。

    チームの作業を安全に保つため、このガイドの手順は、サービス アカウントまたはチームで共有するアカウントを使用して完了することをおすすめします。個人用アカウントは使用しないでください。

  10. GitLab リポジトリを所有しているか、共有リポジトリに対する管理者レベルの権限があることを確認します。
  11. 省略可: Developer Connect が作成する認証シークレットを暗号化するための顧客管理の 暗号鍵(CMEK)を作成します。
  12. 省略可: このガイドのコマンドラインの手順を使用するには、次の操作を行います。
    1. Google Cloud CLI をインストールする。すでに gcloud CLI をインストールしている場合は、 gcloud components update を実行して、最新のバージョンがインストールされていることを確認してください。
    2. 次のコマンドを実行して、Developer Connect サービス アカウント を作成します。PROJECT_IDGoogle Cloud プロジェクト IDです:
              gcloud beta services identity create \
                  --service=developerconnect.googleapis.com \
                  --project=PROJECT_ID
              

必要なロール

接続とリンクの作成に必要な権限を取得するには、管理者に次の IAM のロールを付与するよう依頼してください。

  • プロジェクト オーナーでない場合: Developer Connect 管理者 roles/developerconnect.admin) ユーザー アカウントに対する
  • CMEK を使用して Developer Connect が作成するシークレットを暗号化する場合: Cloud KMS CryptoKey の暗号化/復号 (roles/cloudkms.cryptoKeyEncrypterDecrypter) Secret Manager サービス アカウントに対する権限。
  • gcloud CLI を使用してこのガイドの手順を完了する場合: Secret Manager 管理者ロール roles/secretmanager.admin) Developer Connect サービス アカウントに対する。
  • コンソールを使用してこのガイドの手順を完了する場合: ユーザー アカウントに対するプロジェクト IAM 管理者 roles/resourcemanager.projectIamAdmin)。 Google Cloud

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

アクセス トークンを作成する

GitLab でアクセス トークンを作成する手順は次のとおりです。

  1. GitLab にログインします

  2. GitLab のドキュメントの手順に沿って、次の権限で 個人用アクセス トークングループ アクセス トークン、 または プロジェクト アクセス トークン を作成します。

    • リポジトリの接続と切断を行うための api スコープのトークン。
    • Developer Connect がリポジトリ内のソースコードを読み取れるようにする read_api スコープのトークン。
    • グループ アクセス トークンとプロジェクト アクセス トークンの場合、トークンにはメンテナー以上のロールが必要です。

接続を作成する

このセクションでは、Developer Connect と GitLab の間に接続を作成する方法について説明します。コンソールを使用している場合は、接続の設定が完了したら、リポジトリへのリンクの追加を開始することもできます。 Google Cloud

新しい GitLab 接続を作成するには、次のいずれかのオプションを選択します。

コンソール

次の手順で接続を開始します。

  1. コンソールで [Developer Connect] を開きます。 Google Cloud

    Developer Connect に移動

    Developer Connect に [Git リポジトリ] ページが表示されます。

    • ソースコード管理プロバイダのリストが表示された場合: ソースコード管理プロバイダを選択して、最初の接続の構成を開始します。GitLab カードの [接続] をクリックします。
    • 既存の接続のリストが表示された場合: [接続を作成] > [GitLab] をクリックして、ソースコード管理プロバイダを設定します。

      [接続を作成] ページが開きます。

  2. [**リージョン**] で、接続リソースのリージョン を選択します。

    1. [**名前**] に、新しい接続の名前を入力します。
  3. [**アクセス トークン**] セクションに、アカウントの [トークン]を入力します。

    • API アクセス トークン: api スコープのアクセス トークンを入力します。
    • 読み取り API アクセス トークン: read_api スコープのアクセス トークンを入力します。

    GitLab トークンが有効であることを確認する必要があります。 GitLab トークンの最大有効期間は 365 日です。ただし、トークン作成者または管理者が別途指定している場合は除きます。トークンの有効期限の設定と通知を管理する方法については、個人用アクセス トークン、グループ アクセス トークン、プロジェクト アクセス トークンに関する GitLab のドキュメントをご覧ください。

  4. [詳細を表示] をクリックして、省略可能な構成設定を表示します。

    1. 省略可: [暗号化] セクションで、Developer Connect が作成する Secret Manager シークレットを暗号化する [CMEK 鍵]を選択します。

    2. 省略可: デフォルトでは、Developer Connect は GitLab への Git 呼び出しのプロキシとして機能できます。 このオプションを無効にするには、[Developer Connect プロキシを有効にする] チェックボックスをオフにします。

  5. [続行] をクリックします。

接続が作成されると、[リポジトリをリンク] ページが表示されます。

次の手順で、リポジトリを接続にリンクします。

  1. 使用するリポジトリを利用可能なリポジトリのリストから選択します。

  2. [OK] をクリックします。

  3. [リンク] をクリックします。

接続が [Connections] ページに追加され、リポジトリ リンクが [Repositories] ページにコンソールで追加されます。 Google Cloud 既存の接続にリンクを追加することはいつでもできます。

Gemini Code Assist を設定する場合は、Gemini Code Assist のコード カスタマイズを構成して使用する の手順に沿って操作を続けます

gcloud

  1. 次のコマンドを実行して、Secret Manager で Webhook シークレットを作成します。 WEBHOOK_SECRET_NAME は Webhook シークレットの名前です。

         cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create WEBHOOK_SECRET_NAME
    
  2. 次のコマンドを実行して、Secret Manager にアクセス トークンを保存します。

    gcloud secrets create API_SECRET_NAME
    
    echo -n API_SECRET_DATA | gcloud secrets versions add API_SECRET_NAME --data-file=-
    
    gcloud secrets create READ_SECRET_NAME
    
    echo -n READ_SECRET_DATA | gcloud secrets versions add READ_SECRET_NAME --data-file=-
    

    次のように置き換えます。

    • API_SECRET_NAME: api スコープのトークンを保存するシークレットの名前。
    • API_SECRET_DATA: api スコープのトークン(glpat-XXXXXXXXXXXXXXXX など)。
    • READ_SECRET_NAME: read_api スコープのトークンを保存するシークレットの名前。
    • READ_SECRET_DATAread_api スコープのトークン(glpat-XXXXXXXXXXXXXXXXなど)。
  3. developer-connect connections create コマンドを実行して、GitLab アカウントへの接続を開始します。

    gcloud developer-connect connections create CONNECTION_NAME \
        --location=REGION \
        --gitlab-config-authorizer-credential-user-token-secret-version=projects/PROJECT_ID/secrets/API_SECRET_NAME/versions/VERSION \
        --gitlab-config-read-authorizer-credential-user-token-secret-version=projects/PROJECT_ID/secrets/READ_SECRET_NAME/versions/VERSION \
        --gitlab-config-webhook-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET_NAME/versions/VERSION
        --git-proxy-config-enabled
    

    次のように置き換えます。

    • CONNECTION_NAME: 接続の名前。
    • REGION: 接続のリージョン。
    • PROJECT_NAME: あなたの Google Cloud プロジェクト ID
    • API_SECRET_NAME: api スコープのトークンを含む Secret Manager シークレットの 名前。
    • READ_SECRET_NAME: read_api スコープのトークンを含む Secret Manager シークレットの 名前。
    • WEBHOOK_SECRET_NAME: Webhook シークレットを含む Secret Manager シークレットの名前。
    • VERSION: 各シークレットのバージョン番号。最新のバージョン番号を使用するには、latest を指定します。
    • --git-proxy-config-enabled: Developer Connect が GitLab への Git 呼び出しのプロキシとして機能できるようにする省略可能なフラグ。 この機能はプレビュー版です。

    Developer Connect が GitLab への接続を完了します。次に、 リポジトリにリンクします

GitLab への接続を確立したら、リポジトリにリンクできます。必要に応じて、後でこの手順を繰り返してリポジトリを追加でリンクできます。

既存の GitLab 接続にリポジトリ リンクを作成するには、次のいずれかのオプションを選択します。

コンソール

次の手順でリポジトリへのリンクを作成します。

  1. コンソールで [**リポジトリ**] ページを開きます。 Google Cloud

    [リポジトリ] ページを開く

  2. [リポジトリをリンクする] をクリックします。

    [Git リポジトリをリンク] ペインが開きます。

  3. 接続リストで接続を選択します。

  4. [続行] をクリックします。

  5. リポジトリ リストで、リンクするリポジトリを選択します。

    Developer Connect に、リポジトリ リソースの推奨名が表示されます。

  6. リポジトリ リソースの命名オプションを選択します。

    • 生成: 生成されたリポジトリ リソース名を使用します。
    • 手動: 独自の名前を入力します。
  7. [作成] をクリックします。

Developer Connect がリポジトリ リンクを作成し、 コンソールに Google Cloud 表示します。

gcloud

次のコマンドを実行して、GitLab リポジトリにリンクします。

gcloud developer-connect connections git-repository-links create REPO_NAME \
    --clone-uri=REPO_URI \
    --connection=CONNECTION_NAME \
    --location=REGION

次のように置き換えます。

  • REPO_NAME: リポジトリ リンクの名前。
  • REPO_URI:リポジトリへのリンク(https://gitlab.com/my-project/test-repo.git など)。
  • CONNECTION_NAME: 接続の名前。
  • REGION: 接続のリージョン。

Developer Connect がリポジトリ リンクを作成します。

リンクされたリポジトリを一覧表示するには、 developer-connect connections git-repository-links list コマンドを実行します。

Gemini Code Assist を設定する場合は、Gemini Code Assist のコード カスタマイズを構成して使用する の手順に沿って操作を続けます

次のステップ