GitHub Enterprise に接続する

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

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

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, Secret Manager APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  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, Secret Manager APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

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

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

  9. GitHub Enterprise リポジトリを所有しているか、共有リポジトリに対する管理者レベルの権限があることを確認します。
  10. GitHub Enterprise 組織のリポジトリを使用する場合は、GitHub アプリ マネージャーの権限があることを確認してください。

  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 権限を付与する

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

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

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

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

接続を作成する

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

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

コンソール

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

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

    Developer Connect に移動

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

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

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

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

    1. [名前] に、新しい接続の名前を入力します。
  3. [データ所在地のコンプライアンスを満たす接続を有効にする] チェックボックスをオンにして、この接続をデータ所在地の要件に準拠させます。

    Google Cloud コンソールを使用して作成された GitHub 接続は、接続の作成時にこのチェックボックスをオンにすると、データ所在地に準拠します。この操作を行うと、Developer Connect によって GitHub アプリが作成されます

    Google Cloud CLI を使用して GitHub 接続を作成すると、これらの接続はデータ所在地に準拠しません。他のすべての接続タイプはデータ所在地に関するコンプライアンスに準拠しています。

    1. [ホスト URL] に、接続するホストの URL を入力します。
  4. [詳細を表示] をクリックして、省略可能な構成設定を表示します。

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

    2. [ネットワークの種類] で [パブリック インターネット] を選択します。

      プライベート ネットワークを使用する場合は、プライベート ネットワークでホストされている GitHub Enterprise リポジトリに接続するをご覧ください。

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

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

    GitHub ダイアログが表示され、GitHub アプリの作成が求められます。

  6. GitHub のプロンプトに沿って、次のタスクを完了します。

    1. アプリの名前を入力します。

    2. アプリをインストールする組織を選択します。

    3. アクセスを許可するリポジトリを選択します。

    ダイアログが閉じます。

    Developer Connect は、GitHub から秘密鍵を取得し、Secret Manager のシークレットとして Google Cloud プロジェクトに保存します。シークレットを表示するには、Secret Manager でシークレットを一覧表示します。

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

リポジトリを接続にリンクする手順は次のとおりです。

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

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

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

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

Gemini Code Assist を設定している場合は、Gemini Code Assist のコードのカスタマイズを構成して使用するの手順に沿ってプロセスを続行します。

gcloud

次のタスクでは、ウェブブラウザでの操作が必要です。

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

  1. gcloud developer-connect connections create コマンドを実行して、GitHub Enterprise への接続を作成します。

    gcloud developer-connect connections create CONNECTION_NAME \
        --location=REGION \
        --github-enterprise-config-host-uri=HOST_URI \
        --git-proxy-config-enabled
    

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

    • CONNECTION_NAME: 接続の名前。
    • REGION: 接続のリージョン
    • HOST_URI: 接続するホストの URI。
    • --git-proxy-config-enabled: Developer Connect が GitHub Enterprise への Git 呼び出しのプロキシとして機能するようにする省略可能なフラグ。この機能はプレビュー版です。
  2. GitHub との接続を管理するには、GitHub アプリを作成する必要があります。次のコマンドを実行して、アプリ設定の URI を取得します。

    gcloud developer-connect connections describe CONNECTION_NAME \
        --location=REGION
    

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

    Developer Connect は、ブラウザ ウィンドウで次の手順を完了するためのリンクを返します。このリンクをコピーします。

  3. ウェブブラウザでリンクを開きます。

  4. ログインを求めるメッセージが表示された場合は、GitHub アカウントにログインします。

  5. GitHub のプロンプトに沿って、次のタスクを完了します。

    1. アプリの名前を入力します。

    2. アプリをインストールする組織を選択します。

    3. アクセスを許可するリポジトリを選択します。

    ダイアログが閉じます。

    Developer Connect は、GitHub から秘密鍵を取得し、Secret Manager のシークレットとして Google Cloud プロジェクトに保存します。シークレットを表示するには、Secret Manager でシークレットを一覧表示します。

接続を確認する

次のコマンドを実行して、GitHub 接続が作成されたことを確認します。

gcloud developer-connect connections describe CONNECTION_NAME \
    --location=REGION

ここで

  • CONNECTION_NAME: 接続の名前。
  • REGION: 接続のリージョン。

Developer Connect は installationState フィールドにステータスを返します。このフィールドの値が COMPLETE の場合、アプリのインストールは完了しています。それ以外の場合、Developer Connect は URI を返して、ブラウザの構成に戻ります。

接続が完了したら、リポジトリにリンクするの手順に沿って、リンクするリポジトリを選択します。

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

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

コンソール

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

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

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

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

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

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

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

  6. [作成] をクリックします。

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

gcloud

次のコマンドを実行します。

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

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

  • REPO_NAME: リポジトリ リンクの名前。
  • REPO_URI: リポジトリへのリンク。例: https://github.com/cloud-build/test-repo.git
  • CONNECTION_NAME: 接続の名前。
  • REGION: 接続のリージョン

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

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

Gemini Code Assist を設定している場合は、Gemini Code Assist のコードのカスタマイズを構成して使用するの手順に沿ってプロセスを続行します。

データ共有

この接続にリンクされている Google Cloud リソースのコンテンツは、GitHub に転送される場合があります。このステートメントは、この接続を利用するすべての既存のリソースと今後のリソースに適用されます。GitHub との情報共有を停止するには、 Google Cloud コンソールまたは gcloud CLI で Developer Connect 接続を削除し、GitHub でアクセス権を取り消します

次のステップ