In diesem Dokument wird beschrieben, wie Sie die Codeanpassung in Gemini Code Assist einrichten, indem Sie Gemini Code Assist mit Ihren privaten Code-Repositories verbinden. Mit dieser Funktion können Sie Code-Empfehlungen erhalten, die auf den internen Bibliotheken, privaten APIs und dem Codierungsstil Ihrer Organisation basieren.
Hinweise
- Gemini Code Assist einrichten mit einem Enterprise-Abo.
- Endnutzerkonten erstellen oder konfigurieren Jeder Entwickler in Ihrer Organisation, der Gemini Code Assist verwendet, muss eine Nutzeridentität inGoogle Cloud haben, die die Berechtigung hat, auf Ihr Google Cloud -Projekt zuzugreifen. Weitere Informationen finden Sie unter Rollen in der Google Cloud -Konsole zuweisen. Jeder Nutzer muss die folgenden Rollen haben:
Konfigurieren Sie Developer Connect und stellen Sie dann eine Verbindung zu Ihrem GitHub.com-, GitLab.com- oder Bitbucket.org-Repository her:
GitHub
GitLab
Bitbucket
Außerdem ist die Codeanpassung nur für Developer Connect-Verbindungen an den folgenden Standorten (Regionen) verfügbar:
us-central1
europe-west1
asia-southeast1
Führen Sie in einer Shell-Umgebung den
gcloud components update
-Befehl aus, um sicherzustellen, dass Sie alle installierten Komponenten der gcloud CLI auf die neueste Version aktualisiert haben. Für diesen Schritt können Sie die gcloud CLI installieren und initialisieren oder den Cloud Shell-Editor verwenden.gcloud components update
Auswählen, welche privaten Repositories verbunden werden
Als Best Practice sollten Sie nur Repositories verbinden, die
- Code, der dem Stil oder der Struktur ähnelt, die Sie von Ihren Entwicklern erwarten.
- Sie haben private Bibliotheken oder APIs, die Sie aus Ihrer aktuellen Codebasis aufrufen möchten.
Optional: Auswählen, welche Dateien nicht indexiert werden sollen
Standardmäßig werden bei der Codeanpassung alle unterstützten Codedateien in den von Ihnen angegebenen Repositories indexiert.
Um zu verhindern, dass Code, den Sie nicht indexieren möchten, offengelegt wird, können Sie Branchmuster verwenden, um den Zugriff auf Ihren Index zu steuern, und einen stabilen Branch wie main
verwenden.
Alternativ können Sie Dateien auch aus dem Index ausschließen, indem Sie eine .aiexclude
-Datei erstellen.
Index erstellen
Die Codeanpassung verwendet einen Index, um Ihr Repository zu analysieren und zu parsen und so schneller Vorschläge für die Codegenerierung und Suchvorgänge bereitzustellen.
gcloud-CLI
Verwenden Sie den Befehl gemini code-repository-indexes create
, um den Index in einer Shell-Umgebung zu erstellen:
gcloud gemini code-repository-indexes create INDEX_NAME \
--project=PROJECT_ID \
--location=REGION
Terraform
resource "google_gemini_code_repository_index" "example" {
location = "REGION"
code_repository_index_id = "INDEX_NAME"
}
Ersetzen Sie Folgendes:
INDEX_NAME
: Ihr Indexname. Wichtig: Notieren Sie sich den Namen des Index. Sie benötigen sie für mehrere Schritte in diesem Dokument.PROJECT_ID
: Ihre Google Cloud -Projekt-ID.REGION
: Eine unterstützte Region, wie im Abschnitt Vorbereitung auf dieser Seite beschrieben, die Sie in Developer Connect in Ihrem Google Cloud-Projekt konfiguriert haben.
Die Indexerstellung dauert in der Regel 30 Minuten, kann aber auch bis zu einer Stunde in Anspruch nehmen.
Google beschränkt die Anzahl der Code-Repository-Indizes auf einen pro Projekt und Organisation.
Zugriff auf Ihren Index mit Repository-Gruppen steuern
Eine Repository-Gruppe ist ein Container für die Indexierungskonfiguration, der Repositorys und ihre Branch-Muster enthält. Repository-Gruppen sind für die detaillierte IAM-Steuerung konzipiert. Entwickler erhalten Zugriff auf die indexierten Daten aus diesen Gruppen, sofern sie die Berechtigung cloudaicompanion.repositoryGroups.use
haben.
Repository-Gruppen enthalten Developer Connect-Repositories oder Links aus demselben Projekt und vom selben Standort.
Administratoren führen die folgenden Aktionen aus:
- Erstellen Sie eine Code-Repository-Indexressource.
- Konfigurieren Sie im selben Projekt und am selben Standort eine neue Developer Connect-Verbindung.
- Git-Repositories in der Verbindung verknüpfen
Ressourcennamen von Links abrufen, für jeden Link ein zu indexierendes Branch-Muster auswählen und in eine oder mehrere Repository-Gruppen einfügen.
gcloud-CLI
Verwenden Sie zum Erstellen einer Repository-Gruppe in einer Shell-Umgebung den Befehl gemini code-repository-indexes repository-groups create
:
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories='[{"resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "BRANCH_NAMES"}]'
Terraform
resource "google_gemini_repository_group" "example" {
location = "REGION"
code_repository_index = "INDEX_NAME"
repository_group_id = "REPOSITORY_GROUP"
repositories {
resource = "REPOSITORY_RESOURCE_NAME"
branch_pattern = "BRANCH_NAMES"
}
}
Ersetzen Sie Folgendes:
REPOSITORY_GROUP
: Name der Repository-Gruppe, z. B.default
.PROJECT_ID
: Ihre Google Cloud -Projekt-ID.REGION
: Eine unterstützte Region, wie im Abschnitt Vorbereitung auf dieser Seite beschrieben, die Sie in Developer Connect in Ihrem Google Cloud-Projekt konfiguriert haben.INDEX_NAME
: Name des Index, den Sie in einem vorherigen Schritt zum Erstellen eines Index erstellt haben.REPOSITORY_RESOURCE_NAME
: Name des Repositorys in der Developer Connect-Verbindung. Den Namen des Repositorys finden Sie in der Developer Connect-Seite in der Google Cloud -Konsole. Suchen Sie auf dem Tab Repositories in der Tabelle in der Spalte Verbindung nach der Verbindungs-ID. Klicken Sie zum Kopieren des Ressourcennamens auf das more_vert und wählen Sie Ressourcenpfad kopieren aus.BRANCH_NAMES
: Name der Zweige, die indexiert werden sollen, z. B.main|dev
.
Sie können auch eine Repository-Gruppe mit Repositorys erstellen, die in einer JSON- oder YAML-Datei definiert sind. Die Datei muss so formatiert sein:
JSON
[
{
"resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "main|dev"
},
{
"resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "dev"
}
]
YAML
- resource: REPOSITORY_RESOURCE_NAME
branchPattern: main|dev
- resource: REPOSITORY_RESOURCE_NAME
branchPattern: dev
So erstellen Sie eine Repository-Gruppe auf Grundlage einer JSON- oder YAML-Datei in einer Shell-Umgebung mit dem gemini code-repository-indexes repository-groups create
-Befehl:
JSON
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories=FILEPATH.json
YAML
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories=FILEPATH.yaml
Sie können Ihre Daten auch mit einem vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) über Cloud Key Management Service verschlüsseln und verwalten. Weitere Informationen zur Verwendung von CMEK finden Sie unter Daten mit vom Kunden verwalteten Verschlüsselungsschlüsseln verschlüsseln.
Der Repository-Gruppe in einem Projekt eine IAM-Rolle zuweisen
Sie erhalten nur Vorschläge aus Repositories im Index. Jedes Repository gehört zu einer oder mehreren Repository-Gruppen. Damit Sie auf Vorschläge zugreifen können, müssen Sie der Repository-Gruppe die IAM-Rolle „Cloud AI Companion Repository Groups User“ (roles/cloudaicompanion.repositoryGroupsUser
) zuweisen. Diese enthält die erforderliche IAM-Berechtigung cloudaicompanion.repositoryGroups.user
. Das kann auf eine der folgenden Arten erfolgen:
- Hauptkonten die Berechtigung zum Zugriff auf den gesamten Index gewähren
- Hauptkonten Zugriff auf eine Teilmenge des Index gewähren
Berechtigung für Zugriff auf den gesamten Index erteilen
Verwenden Sie den
projects add-iam-policy-binding
-Befehl, um eine IAM-Richtlinie für ein Projekt in einer Shell-Umgebung zu binden:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='PRINCIPAL' \ --role='roles/cloudaicompanion.repositoryGroupsUser'
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID des Projekts, in dem sich die Repository-Gruppe befindet.PRINCIPAL
: Die E-Mail-Adresse des Hauptkontos, das Zugriff benötigt, z. B.user:test-user@gmail.com
für eine Einzelperson odergroup:admins@example.com
für eine Gruppe.
Weitere Informationen finden Sie unter
gcloud projects set-iam-policy
.Wenn Sie aufgefordert werden, eine Bedingung anzugeben, geben Sie
None
ein.
Hauptkonten Zugriff auf eine Teilmenge des Index gewähren
Sie können mehrere Repository-Gruppen erstellen und verschiedenen IAM-Hauptkonten IAM-Rollen zuweisen.
gcloud-CLI
Um eine IAM-Richtlinie einzurichten, müssen Sie die JSON- oder YAML-Datei für die IAM-Richtlinie vorbereiten. Sie enthält eine Liste mit IAM-Gruppen und zugewiesenen Rollen. Beispiel:
bindings:
- members:
- group:my-group@example.com
- user:test-user@example.com
role: roles/cloudaicompanion.repositoryGroupsUser
Weitere Informationen und die Syntax finden Sie unter „allow”-Richtlinien.
Verwenden Sie zum Festlegen der IAM-Richtlinie in einer Shell-Umgebung den Befehl gemini code-repository-indexes repository-groups set-iam-policy
:
gcloud gemini code-repository-indexes repository-groups set-iam-policy GROUP_NAMEPOLICY_FILE \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME
Ersetzen Sie Folgendes:
GROUP_NAME
: Der Name der Repository-Gruppe, die Sie in einem vorherigen Schritt erstellt haben, um den Zugriff auf Ihren Index mit Repository-Gruppen zu steuern.POLICY_FILE
: Die IAM-Richtlinie.REGION
: Eine unterstützte Region, wie im Abschnitt Vorbereitung auf dieser Seite beschrieben, die Sie in Developer Connect in IhremGoogle Cloud -Projekt konfiguriert haben.INDEX_NAME
: Der Name des Index, den Sie in einem vorherigen Schritt erstellt haben.Weitere Informationen finden Sie unter
gcloud gemini code-repository-indexes repository-groups set-iam-policy
.
Terraform
data "google_iam_policy" "foo" {
binding {
role = "roles/cloudaicompanion.repositoryGroupsUser"
members = ["test-user@example.com"]
}
}
resource "google_gemini_repository_group_iam_policy" "foo" {
project = "PROJECT_ID"
location = "REGION"
code_repository_index_id = "INDEX_NAME"
repository_group_id = "GROUP_NAME"
policy_data = data.google_iam_policy.foo.policy_data
}
data "google_gemini_repository_group_iam_policy" "foo" {
project = "PROJECT_ID"
location = "REGION"
code_repository_index_id = "INDEX_NAME"
repository_group_id = "GROUP_NAME"
depends_on = [
google_gemini_repository_group_iam_policy.foo
]
}
Sie können auch eine Bindung erstellen:
resource "google_gemini_repository_group_iam_binding" "foo" {
project = "PROJECT_ID"
location = "REGION"
code_repository_index_id = "INDEX_NAME"
repository_group_id = "GROUP_NAME"
role = "roles/cloudaicompanion.repositoryGroupsUser"
members = ["test-user@example.com"]
}
Ersetzen Sie Folgendes:
GROUP_NAME
: Der Name der Repository-Gruppe, die Sie in einem vorherigen Schritt erstellt haben, um den Zugriff auf Ihren Index mit Repository-Gruppen zu steuern.REGION
: Eine unterstützte Region, wie im Abschnitt Vorbereitung auf dieser Seite beschrieben, die Sie in Developer Connect in IhremGoogle Cloud -Projekt konfiguriert haben.INDEX_NAME
: Der Name des Index, den Sie in einem vorherigen Schritt erstellt haben.Weitere Informationen finden Sie unter
gcloud gemini code-repository-indexes repository-groups set-iam-policy
.
Indexierungsstatus prüfen
Je nach Anzahl der zu indexierenden Repositories und deren Größe kann das Indexieren von Inhalten bis zu 24 Stunden dauern. Bei großen Repositories kann die Indexierung länger dauern. Die Indexierung erfolgt einmal alle 24 Stunden und berücksichtigt alle Änderungen, die im Repository vorgenommen wurden.
Suchen Sie nach den
indexing
-Logs. Weitere Informationen finden Sie unter Logging-Abfragesprache.Console
Rufen Sie in der Google Cloud Console den Log-Explorer auf.
Verwenden Sie den Filter für Log-Namen, um
indexing
-Logs aufzurufen.
gcloud-CLI
Verwenden Sie in einer Shell-Umgebung den
logging read
-Befehl, um nach den Indexierungsprotokollen zu suchen:gcloud logging read "logName="projects/PROJECT_ID/logs/indexing""
Ersetzen Sie
PROJECT_ID
durch die Projekt-ID, in der sich die Repository-Gruppe befindet.Wenn Sie beispielsweise Fehler in den
indexing
-Logs ansehen möchten, führen Sie den folgenden Befehl aus:gcloud logging read "logName="projects/PROJECT_ID/logs/indexing" AND severity>=ERROR"
Sehen Sie sich die zugehörigen Indexierungsstatus an, z. B.:
- Beginn der Repository-Indexierung, z. B.
Indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 6, failed: 0.
- Ende der Indexierung einzelner Repositorys, z. B.:
- Erfolgreich:
Successfully finished indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 7, failed: 0.
- Fehler:
Failed to index repository REPOSITORY_NAME. Error: [<error message>]. Total number of repositories: 10, succeeded: 7, failed: 1.
- Erfolgreich:
- Ende der Repository-Indexierung, z. B.:
- Erfolgreich:
Finished indexing process. Repositories attempted: 10. Repositories successfully indexed: 9. Repositories unsuccessfully fetched: 0.
- Fehler:
Finished indexing process. Repositories attempted: 10. Repositories successfully indexed: 9. Repositories unsuccessfully fetched: 1. Repositories that were not successfully fetched will be retried in the next run.
- Erfolgreich:
In den Indexstatus ist
REPOSITORY_NAME
das Repository, das Sie prüfen möchten.- Beginn der Repository-Indexierung, z. B.
Sehen Sie sich die zugehörigen Indexierungsfehler an, z. B.:
- Repository konnte nicht abgerufen werden.
- Repository-Dateien konnten nicht aufgelistet werden.
- Repository-Informationen konnten nicht aus dem Index abgerufen werden.
- Dateien konnten nicht aus dem Index abgerufen werden.
- Interner Fehler.
Codeanpassung verwenden
Nachdem Sie die Codeanpassung eingerichtet haben, werden Ihnen Vorschläge für die Vervollständigung und Generierung von Code angezeigt, die möglicherweise auf privatem Code basieren, den Sie zusätzlich zu Ergebnissen aus der vollständigen Codebasis indexiert haben.
Weitere Informationen zur Verwendung von Codeanpassungen und zu Best Practices finden Sie unter Codeanpassung verwenden.
Codeanpassung deaktivieren
Verwenden Sie den
gemini code-repository-indexes repository-groups list
-Befehl, um alle Repository-Gruppen für den aktuellen Index in einer Shell-Umgebung aufzulisten:gcloud gemini code-repository-indexes repository-groups list --location=REGION \ --project=PROJECT_ID \ --code-repository-index=INDEX_NAME --uri
Ersetzen Sie Folgendes:
REGION
: Eine unterstützte Region, wie im Abschnitt Vorbereitung auf dieser Seite beschrieben, die Sie in Developer Connect in IhremGoogle Cloud -Projekt konfiguriert haben.PROJECT_ID
: Ihre Google Cloud -Projekt-ID.INDEX_NAME
: Name des Index, den Sie in einem vorherigen Schritt zum Erstellen eines Index erstellt haben.
Verwenden Sie den
gemini code-repository-indexes repository-groups delete
-Befehl, um eine Repository-Gruppe aus dem aktuellen Index zu löschen:gcloud gemini code-repository-indexes repository-groups delete REPOSITORY_GROUP \ --location=REGION \ --project=PROJECT_ID \ --code-repository-index=INDEX_NAME
Wiederholen Sie Schritt 3 für jede Repository-Gruppe, bis Sie alle Repository-Gruppen aus dem Index gelöscht haben.
Optional: Wenn Sie den Index löschen möchten, verwenden Sie in einer Shell-Umgebung den Befehl
gemini code-repository-indexes delete
:gcloud gemini code-repository-indexes delete INDEX_NAME \ --location=REGION \ --project=PROJECT_ID
Nächste Schritte
- So nutzen Sie Gemini Code Assist:
- VS Code, IntelliJ und andere unterstützte JetBrains-IDEs: Mit Gemini Code Assist programmieren
- Cloud Shell-Editor: Mit Gemini Code Assist programmieren
- Cloud Workstations: Mit Gemini Code Assist programmieren
- Weitere Informationen zur Verwendung von Codeanpassungen und Best Practices
- Informationen zum Verschlüsseln von Daten mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK)
- Weitere Informationen zu Developer Connect
- Weitere Informationen dazu, wie und wann Gemini für Google Cloud Ihre Daten verwendet