この手順は、Google で GitHub Enterprise ソースコード リポジトリを使用するアプリケーション デベロッパー、プラットフォーム管理者、セキュリティ マネージャーを対象としています。 具体的には、 Gemini Code Assist で GitHub Enterprise リポジトリを使用できます。
Developer Connect の詳細については、 Developer Connect の概要をご覧ください。
始める前に
-
ログイン Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、 新しいアカウントを登録します。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Developer Connect and Service Directory APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Developer Connect and Service Directory APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
GitHub Enterprise のアカウントにアクセスできることを確認します。
チームの作業を安全に保つため、このガイドの手順は、個人用アカウントではなく、ボット アカウントまたはチームで共有するアカウントを使用して完了することをおすすめします。
- GitHub Enterprise リポジトリを所有しているか、共有リポジトリに対する管理者レベルの権限があることを確認します。
GitHub Enterprise 組織でリポジトリを使用する場合は、 GitHub アプリ マネージャーの権限があることを確認します。
- プライベート ネットワークに接続するための Service Directory サービス リソースが
あることを確認するか、
Service Directory サービス リソースを
作成します。Service Directory サービス リソースは、Developer Connect で使用しているのと同じプロジェクトに作成することも、別のプロジェクトを使用することもできます。
以外のネットワークに接続する場合は、Service Directory の構成が異なる場合があります。 Google CloudService Directory を使用して 外のホストにアクセスする をご覧ください Google Cloud。
- 省略可: Developer Connect が作成する認証シークレットを暗号化するための顧客管理の 暗号鍵(CMEK)を作成します。
- 省略可: このガイドのコマンドラインの手順を使用するには、次の操作を行います。
- Google Cloud CLI をインストールする。すでに gcloud CLI をインストールしている場合は、
gcloud components updateを実行して、最新のバージョンがインストールされていることを確認してください。 - 次のコマンドを実行して、Developer Connect サービス アカウント
を作成します。PROJECT_ID はGoogle Cloud プロジェクト IDです:
gcloud beta services identity create \ --service=developerconnect.googleapis.com \ --project=PROJECT_ID
- Google Cloud CLI をインストールする。すでに gcloud CLI をインストールしている場合は、
Developer Connect を有効にすると、 Secret Manager API も有効になります。
必要な IAM 権限を付与する
接続とリンクの作成に必要な権限を取得するには、管理者に次の 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
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
Service Directory を使用するための権限を付与する
Developer Connect で Service Directory を使用し、Service Directory が VPC ネットワーク リソースにアクセスできるようにするには、次の操作を行います。
次のコマンドを実行して、Developer Connect サービス アカウントに Service Directory を使用する権限を付与します。
PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") SERVICE_ACCOUNT="service-${PROJECT_NUMBER}@gcp-sa-devconnect.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding SERVICE_DIRECTORY_RESOURCE_PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/servicedirectory.viewer"次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- SERVICE_DIRECTORY_RESOURCE_PROJECT_ID: Service Directory サービス リソースを含む プロジェクトの Google Cloud プロジェクト ID。
Service Directory に VPC ネットワーク リソースへのアクセス権を付与します。ネットワーク リソースは別のプロジェクトに配置できます。
gcloud projects add-iam-policy-binding NETWORK_RESOURCE_PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/servicedirectory.pscAuthorizedService"NETWORK_RESOURCE_PROJECT_ID は、VPC ネットワーク リソースを含むプロジェクトのプロジェクト ID に置き換えます。
Service Directory を使用して 外のホストにアクセスする Google Cloud
Service Directory は、IP アドレス範囲 35.199.192.0/19 を使用して
外のホストを接続します Google Cloud。この範囲をファイアウォールの許可リストに追加する必要があります。さらに、この範囲を Cloud VPN または Cloud Interconnect 接続経由でルーティングするようにプライベート ネットワークを構成する必要があります。
接続で Cloud Router を使用する場合は、プライベート ネットワークへの範囲を通信するように接続を構成できます。
詳細については、プライベート ネットワーク アクセスを構成するをご覧ください。
Cloud Load Balancing を使用して Google Cloud外のホストにアクセスする
ネットワーク構成で Service Directory の IP アドレス範囲 35.199.192.0/19 を Cloud VPN または Cloud Interconnect にルーティングできない場合は、Cloud Load Balancer を使用してロードバランサを作成して、トラフィックをホストに転送できます。
Service Directory エンドポイントを作成するときは、ホストの IP アドレスではなく、ロードバランサの転送ルールの IP アドレスを使用してください。エンドポイントの作成時に、内部 HTTPS ロードバランサまたは内部伝送制御プロトコル(TCP)ロードバランサを使用できます。
TCP ロードバランサを作成する場合は、次の点を考慮してください。
- ホストに到達するには、ハイブリッド接続ネットワーク エンドポイント グループ(NEG)のみが必要です。
- TCP ロードバランサでは、SSL 証明書用に暗号化されていない秘密鍵は必要ありません。
- Cloud VPN の設定では、グローバル動的ルーティングで Cloud Router を使用する必要があります。Cloud VPN で静的ルーティングが使用されている場合は、代わりに Cloud Service Mesh を使用するプロキシを使用できます。詳細については、ハイブリッド デプロイ用にネットワーク エッジ サービスを設定するをご覧ください。
HTTPS ロードバランサの作成の詳細については、ハイブリッド接続で内部アプリケーション ロードバランサを設定するをご覧ください。TCP ロードバランサの作成の詳細については、 ハイブリッド接続でリージョン内部プロキシ ネットワーク ロードバランサを設定するをご覧ください。
接続を作成する
このセクションでは、Developer Connect と GitHub Enterprise の間に接続を作成する方法について説明します。コンソールを使用している場合は、接続の設定が完了したら、リポジトリへのリンクの追加を開始することもできます。 Google Cloud
新しい GitHub Enterprise 接続を作成するには、次のいずれかのオプションを選択します。
コンソール
次の手順で接続を開始します。
コンソールで [Developer Connect] を開きます。 Google Cloud
Developer Connect に [Git リポジトリ] ページが表示されます。
- ソースコード管理プロバイダのリストが表示された場合: ソースコード管理プロバイダを選択して、最初の接続の構成を開始します。GitHub Enterprise カードで [接続] をクリックします。
既存の接続のリストが表示された場合: [**接続を作成**] > [**GitHub Enterprise**] をクリックして、ソースコード管理プロバイダを設定します。
[接続を作成] ページが開きます。
[**リージョン**] で、接続リソースのリージョン を選択します。
- [**名前**] に、新しい接続の名前を入力します。
[データ所在地のコンプライアンスを満たす接続を有効化] チェックボックスをオンにして、この接続をデータ所在地の要件に準拠させます。
コンソールを使用して作成された GitHub 接続は、接続の作成時にこのチェックボックスをオンにすると、データ所在地のコンプライアンスに準拠します。 Google Cloud この操作を行うと、Developer Connect は GitHub アプリを作成します
Google Cloud CLI を使用して GitHub 接続を作成する場合、これらの接続はデータ所在地のコンプライアンスに準拠していません。他のすべての接続タイプはデータ所在地のコンプライアンスに準拠しています。
[Host URL] に、接続先のホストの URL を入力します。
[詳細を表示] をクリックすると、省略可能な構成設定が表示されます。
[Developer Connect プロキシを有効にする] チェックボックスは、Developer Connect が GitHub Enterprise への Git 呼び出しのプロキシとして機能できるように、デフォルトでオンになっています。
[ネットワーキング] セクションの [ネットワークの種類] で、[プライベート ネットワーク] を選択します。
[CA 証明書] で [参照] をクリックして、自己署名 証明書をアップロードします。
証明書のサイズは 10 KB 以下で、PEM 形式(.pem、.cer、.crt)にする必要があります。このセクションを空白のままにすると、デフォルトの証明書セットが代わりに使用されます。
[Service Directory サービス] セクションで、サービスのロケーションを選択します。
- [プロジェクト
your-project内] - 別のプロジェクト内
- [手動で入力]
[別のプロジェクト内] または [手動で入力] を選択した場合は、 プロジェクト ID を指定します。 Google Cloud プルダウン メニューでプロジェクトを選択するか、プロジェクト ID を手動で入力します。
- [プロジェクト
[Region]: Service Directory サービスのリージョンを選択します。サービス用に指定されるリージョンは、接続に関連付けられたリージョンと一致する必要があります。
[**名前空間**]: Service Directory サービスの名前空間を選択します。
[Service]: 名前空間内の Service Directory サービス名を選択します。
省略可: [暗号化] セクションで、Developer Connect が作成する Secret Manager シークレットを暗号化する [CMEK 鍵]を選択します。
[続行] をクリックします。
GitHub のダイアログが表示され、GitHub アプリの作成を求められます。
GitHub のプロンプトに従って、次のタスクを完了します。
アプリの名前を入力します。
アプリをインストールする組織を選択します。
アクセス権を付与するリポジトリを選択します。
ダイアログが閉じます。
Developer Connect は、GitHub から秘密鍵を取得し、 プロジェクトに Secret Manager シークレットとして保存します。 Google Cloud シークレットを表示するには、 Secret Manager でシークレットを一覧表示します。
接続が作成されると、[リポジトリをリンク] ページが表示されます。
次の手順で、リポジトリを接続にリンクします。
使用するリポジトリを、利用可能なリポジトリのリストから選択します。
[OK] をクリックします。
[リンク] をクリックします。
接続が [Connections] ページに追加され、リポジトリ リンクが [Repositories] ページにコンソールで追加されます。 Google Cloud 既存の接続にリンクを追加することはいつでもできます。
Gemini Code Assist を設定する場合は、Gemini Code Assist のコード カスタマイズを構成して使用する の手順に沿って操作を続けます 。
gcloud
次のタスクでは、ウェブブラウザで操作が必要です。
gcloud developer-connect connections createコマンドを実行して、GitHub Enterprise への接続を作成します。gcloud developer-connect connections create CONNECTION_NAME \ --location=REGION \ --project=PROJECT_ID \ --github-enterprise-config-host-uri=HOST_URI --github-enterprise-config-service-directory=SERVICE_DIRECTORY_RESOURCE --git-proxy-config-enabled次のように置き換えます。
- CONNECTION_NAME: 接続の名前。
- REGION:接続の リージョン。
- HOST_URI:接続先のホストの URI。
- SERVICE_DIRECTORY_RESOURCE: Service Directory リソースパス。形式は
projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICEです。 --git-proxy-config-enabledは、Developer Connect が GitHub Enterprise への Git 呼び出しのプロキシとして機能できるようにする省略可能なフラグです。プライベート ネットワークでホストされている GitHub Enterprise ソースコード リポジトリで Gemini Code Assist のコード カスタマイズ を実行する場合は、この機能を有効にする必要があります。--github-enterprise-config-ssl-ca-certificateは、SSL 証明書を追加する省略可能なフラグです。形式は$HOME/my-ssl-ca.txtです。
GitHub との接続を管理するには、GitHub アプリを作成する必要があります。次のコマンドを実行して、アプリ設定の URI を取得します。
gcloud developer-connect connections describe CONNECTION_NAME \ --location=REGION次のように置き換えます。
- CONNECTION_NAME: 接続の名前。
- REGION:接続の リージョン。
Developer Connect は、ブラウザ ウィンドウで次の手順を完了するためのリンクを返します。このリンクをコピーします。
ウェブブラウザでリンクを開きます。
ログインを求められたら、GitHub アカウントにログインします。
GitHub のプロンプトに従って、次のタスクを完了します。
アプリの名前を入力します。
アプリをインストールする組織を選択します。
アクセス権を付与するリポジトリを選択します。
ダイアログが閉じます。
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 接続にリポジトリ リンクを作成するには、次のいずれかのオプションを選択します。
コンソール
コンソールで [**リポジトリ**] ページを開きます。 Google Cloud
[リポジトリをリンクする] をクリックします。
[Git リポジトリをリンク] ペインが開きます。
接続リストで、接続を選択します。
[続行] をクリックします。
リポジトリ リストで、リンクするリポジトリを選択します。
[作成] をクリックします。
Developer Connect はリポジトリ リンクを作成し、 the 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 との情報共有を停止するには、 コンソールまたは gcloud CLI で Developer Connect 接続を削除し、 Google Cloud GitHub でアクセス権を取り消します。
次のステップ
- Gemini Code Assist のコード カスタマイズの設定を完了する。
- Gemini Code Assist がソフトウェア開発を加速する仕組みを確認する。
- Developer Connect で利用できる他の統合について確認する。