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 erhalten Sie Codeempfehlungen, die auf den internen Bibliotheken, privaten APIs und dem Codierungsstil Ihrer Organisation basieren.
Hinweise
- Richten Sie Gemini Code Assist mit einem Enterprise-Abo ein.
- Erstellen oder konfigurieren Sie Endnutzerkonten. Jeder Entwickler in Ihrer Organisation, der Gemini Code Assist verwendet, muss eine Nutzeridentität in Google Cloud mit Berechtigung zum Zugriff auf Ihr Google Cloud-Projekt haben. Weitere Informationen finden Sie unter Rollen in der Google Cloud Console gewähren. Achten Sie darauf, dass jeder Nutzer die folgenden Rollen hat:
Konfigurieren Sie Developer Connect und stellen Sie dann eine Verbindung zu Ihrem GitHub.com- oder GitLab.com-Repository her:
Außerdem wird die Codeanpassung nur für Developer Connect-Verbindungen an den folgenden Standorten (Regionen) unterstützt:
us-central1
europe-west1
asia-southeast1
Führen Sie in einer Shell-Umgebung den Befehl
gcloud components update
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 Cloud Shell verwenden.gcloud components update
Auswählen, welche privaten Repositories verbunden werden
Als Best Practice sollten Sie Repositories verbinden, die:
- Der Code sollte einen ähnlichen Stil oder eine ähnliche Struktur haben wie der Code, den Ihre Entwickler schreiben sollen.
- 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 Ihren angegebenen Repositories indexiert.In vielen Fällen gibt es bestimmte Dateien oder untergeordnete Verzeichnisse, die nicht indexiert werden sollen. Beispiel:
- Hochsensible Informationen mit eingeschränktem Zugriff innerhalb Ihrer Organisation
- Alter oder eingestellter Code
- Automatisch generierter oder temporärer Code
Wenn Sie verhindern möchten, dass Code freigegeben wird, den Sie nicht indexieren möchten, können Sie mithilfe von Branch-Mustern den Zugriff auf Ihren Index 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
Für die Codeanpassung wird ein Index verwendet, um Ihr Repository zu analysieren und zu parsen. So können schneller Vorschläge zur Codegenerierung und Suchanfragen durchgeführt werden.
Verwenden Sie in einer Shell-Umgebung den Befehl gemini code-repository-indexes create
, um den Index zu erstellen:
gcloud gemini code-repository-indexes create INDEX_NAME \
--project=PROJECT_ID \
--location=REGION
Ersetzen Sie Folgendes:
INDEX_NAME
: Der Name des Index. Wichtig: Notieren Sie sich den Indexnamen. Sie benötigen sie für mehrere Schritte in diesem Dokument.PROJECT_ID
ist Ihre Google Cloud-Projekt-ID.REGION
: Eine unterstützte Region, wie im Abschnitt Vorab auf dieser Seite angegeben, 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 dauern.
Google begrenzt die Anzahl der Code-Repository-Indexe auf eins pro Projekt und Organisation.
Zugriff auf Index mithilfe von Repository-Gruppen steuern
Eine Repository-Gruppe ist ein Container für die Indexierungskonfiguration, der Repositories und ihre Verzweigungsmuster enthält. Repositorygruppen sind für eine detaillierte IAM-Steuerung konzipiert. Entwickler erhalten Zugriff auf die indexierten Daten dieser Gruppen, wenn sie die Berechtigung cloudaicompanion.repositoryGroups.use
haben.
Repositorygruppen enthalten Developer Connect-Repositories oder -Links aus demselben Projekt und Speicherort.
Administratoren führen die folgenden Aktionen aus:
- Erstellen Sie eine Code-Repository-Indexressource.
- Konfigurieren Sie im selben Projekt und am selben Speicherort eine neue Developer Connect-Verbindung.
- Verknüpfen Sie Git-Repositories in der Verbindung.
- Ressourcennamen von Links abrufen, Verzweigungsmuster für jeden Link auswählen und in eine oder mehrere Repositorygruppen einfügen
Verwenden Sie in einer Shell-Umgebung den Befehl gemini code-repository-indexes repository-groups create
, um eine Repositorygruppe zu erstellen:
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"}]'
Ersetzen Sie Folgendes:
REPOSITORY_GROUP
: Name der Repository-Gruppe, z. B.default
.PROJECT_ID
ist Ihre Google Cloud-Projekt-ID.REGION
: Eine unterstützte Region, wie im Abschnitt Vorab auf dieser Seite angegeben, 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 Repositories finden Sie in der Google Cloud Console auf der Seite Developer Connect. Suchen Sie auf dem Tab Repositories in der Spalte Verbindung nach der Verbindungs-ID. Wenn Sie den Ressourcennamen kopieren möchten, klicken Sie auf das Dreipunkt-Menü more_vert und wählen Sie Ressourcenpfad kopieren aus.BRANCH_NAMES
: Name der Zweige, die Sie indexieren möchten, z. B.main|dev
.
Sie können auch eine Repositorygruppe mit Repositories erstellen, die in einer JSON- oder YAML-Datei definiert sind. Die Formatierung muss dabei so aussehen:
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
Wenn Sie eine Repositorygruppe basierend auf einer JSON- oder YAML-Datei erstellen möchten, verwenden Sie in einer Shell-Umgebung den Befehl gemini code-repository-indexes repository-groups create
:
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
IAM-Rolle für die Repository-Gruppe in einem Projekt zuweisen
Sie erhalten nur Vorschläge von Repositories im Index. Jedes Repository gehört zu einer oder mehreren Repositorygruppen. 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, die die erforderliche IAM-Berechtigung cloudaicompanion.repositoryGroups.user
enthält. Das geht auf folgende Arten:
- Gewähren Sie Hauptkonten die Berechtigung zum Zugriff auf den gesamten Index.
- Hauptkonten Zugriff auf einen Teil des Index gewähren
Berechtigungen für den Zugriff auf den gesamten Index gewähren
Verwenden Sie den Befehl
projects add-iam-policy-binding
, um in einer Shell-Umgebung eine IAM-Richtlinie für ein Projekt zu binden:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='PRINCIPAL' \ --role='roles/cloudaicompanion.repositoryGroupsUser'
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID, in der 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 einen Teil des Index gewähren
Sie können mehrere Repositorygruppen erstellen und verschiedenen IAM-Hauptkonten IAM-Rollen zuweisen.
Um eine IAM-Richtlinie einzurichten, müssen Sie die JSON- oder YAML-Datei der IAM-Richtlinie vorbereiten. Diese Datei enthält eine Liste der 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 Syntax finden Sie unter „allow“-Richtlinien.
Verwenden Sie in einer Shell-Umgebung den Befehl gemini code-repository-indexes repository-groups set-iam-policy
, um die IAM-Richtlinie festzulegen:
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 Repositorygruppe, den Sie in einem vorherigen Schritt erstellt haben, um den Zugriff auf Ihren Index mithilfe von Repositorygruppen zu steuern.POLICY_FILE
: die IAM-Richtlinie.REGION
: Eine unterstützte Region, wie im Abschnitt Vorab auf dieser Seite angegeben, die Sie in Developer Connect in Ihrem Google Cloud-Projekt konfiguriert haben.INDEX_NAME
: Der Name des Index, den Sie im vorherigen Schritt zum Erstellen eines Index erstellt haben.Weitere Informationen finden Sie unter
gcloud gemini code-repository-indexes repository-groups set-iam-policy
.
Indexierungsstatus prüfen
Je nach Anzahl der Repositories, die Sie indexieren möchten, und deren Größe kann die Indexierung 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
-Protokollen. Weitere Informationen finden Sie unter Logging-Abfragesprache.Console
Rufen Sie in der Google Cloud Console den Log-Explorer auf.
Verwenden Sie den Filter „Lognamen“, um
indexing
-Logs aufzurufen.
gcloud
Verwenden Sie in einer Shell-Umgebung den Befehl
logging read
, 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
-Protokollen sehen möchten, führen Sie den folgenden Befehl aus:gcloud logging read "logName="projects/PROJECT_ID/logs/indexing" AND severity>=ERROR"
Prüfen Sie die zugehörigen Indexierungsstatus, z. B.:
- Start der Repository-Indexierung, z. B.
Indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 6, failed: 0.
- Ende der Indexierung des einzelnen Repositories, 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 steht
REPOSITORY_NAME
für das Repository, das Sie überprüfen möchten.- Start der Repository-Indexierung, z. B.
Prüfen Sie die zugehörigen Indexierungsfehler, z. B.:
- Repository konnte nicht abgerufen werden.
- Repositorydateien 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, sehen Nutzer Vorschläge zur Codevervollständigung und Codegenerierung, die neben den Ergebnissen aus der vollständigen Codebasis auch auf von Ihnen indexiertem privaten Code basieren können.
Codeanpassung deaktivieren
Verwenden Sie den Befehl
gemini code-repository-indexes repository-groups list
in einer Shell-Umgebung, um alle Repositorygruppen für den aktuellen Index 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 Vorab auf dieser Seite angegeben, die Sie in Developer Connect in Ihrem Google Cloud-Projekt konfiguriert haben.PROJECT_ID
ist 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 Befehl
gemini code-repository-indexes repository-groups delete
, um eine Repositorygruppe 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 verwenden Sie Gemini Code Assist:
- VS Code: Code mit Gemini Code Assist schreiben
- IntelliJ: Code mit Gemini Code Assist
- Cloud Shell-Editor: Code mit Gemini Code Assist schreiben
- Cloud Workstations: Mit Gemini Code Assist programmieren
- Weitere Informationen zu Developer Connect
- Weitere Informationen dazu, wie und wann Gemini for Google Cloud Ihre Daten verwendet