In diesem Dokument wird beschrieben, wie Sie Gemini Code Assist-Code anpassen 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.
Hinweis
- Wenden Sie sich an Ihren Vertriebsmitarbeiter, um Zugriff auf die Codeanpassung für Gemini Code Assist zu erhalten.
- Sie benötigen ein Google Cloud-Administratorkonto, um Änderungen an Ihrem Projekt vornehmen zu können.
- Richten Sie Gemini Code Assist 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 Jeder Nutzer muss die folgenden Rollen haben:
Konfigurieren Sie Developer Connect und stellen Sie dann eine Verbindung zu Ihrem GitHub.com- oder GitLab.com-Repository her:
Außerdem werden Codeanpassungen nur für Developer Connect-Verbindungen an den Standorten
us-central1
undeurope-west1
unterstützt.Führen Sie in einer Shell-Umgebung den Befehl
gcloud components update
aus, um sicherzustellen, dass Sie alle installierten Komponenten der Google Cloud CLI auf die neueste Version aktualisiert haben.
Auswählen, welche privaten Repositories verbunden sind
Als Best Practice sollten Sie darauf achten, dass Sie Repositories verbinden, die:
- Der Code sollte einen ähnlichen Stil oder eine ähnliche Struktur haben wie der Code, Entwickelnden zu schreiben.
- Sie haben private Bibliotheken oder APIs, die Sie aus Ihrer aktuellen Codebasis aufrufen möchten.
Optional: Auswählen, welche Dateien nicht indexiert werden
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:
- Besonders vertrauliche Informationen mit eingeschränktem Zugriff innerhalb Ihrer Organisation
- Alter oder nicht mehr unterstützter Code
- Automatisch generierter oder temporärer Code
Um zu verhindern, dass Code offengelegt wird, den Sie nicht indexieren möchten, können Sie
Muster zu
Zugriff auf Ihren Index steuern
und verwenden Sie einen stabilen Zweig wie main
.
Alternativ können Sie auch Dateien aus dem Index ausschließen, indem Sie
Erstellen einer .aiexclude
-Datei.
Index erstellen
Die Codeanpassung stützt sich auf einen Index, um Ihr Repository zu analysieren und zu parsen schnellere Vorschläge und Suchvorgänge für die Codegenerierung.
-
In the Google Cloud console, activate Cloud Shell.
Verwenden Sie zum Erstellen des Index die Methode
gemini code-repository-indexes create
-Befehl:gcloud gemini code-repository-indexes create INDEX_NAME \ --project=PROJECT_ID \ --location=REGION
Ersetzen Sie Folgendes:
INDEX_NAME
ist Ihr Indexname.PROJECT_ID
ist Ihre Google Cloud-Projekt-ID.REGION
: eine unterstützte Region, entwederus-central1
odereurope-west1
, die Sie haben die in Developer Connect in Ihrem Google Cloud-Projekt konfiguriert wurden.
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 einen Index pro Projekt und Unternehmen. Wenn Sie mehr Code-Repository-Indexe benötigen, können Sie Fordern Sie ein höheres Kontingent an.
Zugriff auf Index mithilfe von Repository-Gruppen steuern
-
In the Google Cloud console, activate Cloud Shell.
Verwenden Sie zum Erstellen einer Repository-Gruppe die Methode
gemini code-repository-indexes repository-groups create
-Befehl:gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \ --project=PROJECT_ID \ --location=REGION \ --code-repository-index=INDEX_NAME \ --repositories='[{"resource": "projects/PROJECT_ID/locations/REGION/connections/INDEX_CONNECTION/gitRepositoryLinks/REPOSITORY", "branch_pattern": "BRANCH_NAMES"}]'
Ersetzen Sie Folgendes:
REPOSITORY_GROUP
ist der Name der Repository-Gruppe. z. B.default
.PROJECT_ID
ist Ihre Google Cloud-Projekt-ID.INDEX_NAME
ist der Name des Index, den Sie in einem erstellt haben. vorherigen Schritt, um einen Index zu erstellen.REGION
: eine unterstützte Region, entwederus-central1
odereurope-west1
, die Sie haben die in Developer Connect in Ihrem Google Cloud-Projekt konfiguriert wurden.INDEX_CONNECTION
: Verbindung des Index, den Sie die in einem vorherigen Schritt zum Erstellen eines Index erstellt wurden.BRANCH_NAMES
: Name der Branches, die Sie erstellen möchten Index, z. B.main|dev
.REPOSITORY
: das Repository, das Sie indexieren möchten. Ich muss mindestens ein Repository angeben. Sie können auch mehrere Repositories nach Bedarf.
Sie können auch eine Repository-Gruppe mit Repositories erstellen, die in einem JSON- oder YAML) angegeben, die wie folgt formatiert ist:
JSON
[
{
"resource": "projects/PROJECT_ID/locations/REGION/connections/INDEX_CONNECTION/gitRepositoryLinks/REPOSITORY", "branchPattern": "main|dev"
},
{
"resource": "projects/PROJECT_ID/locations/REGION/connections/INDEX_CONNECTION/gitRepositoryLinks/REPOSITORY", "branchPattern": "dev"
}
]
YAML
- resource: projects/PROJECT_ID/locations/REGION/connections/INDEX_CONNECTION/gitRepositoryLinks/REPOSITORY
branchPattern: main|dev
- resource: projects/PROJECT_ID/locations/REGION/connections/INDEX_CONNECTION/gitRepositoryLinks/REPOSITORY
branchPattern: dev
Verwenden Sie den Befehl gemini code-repository-indexes repository-groups create
, um eine Repositorygruppe auf der Grundlage einer JSON- oder YAML-Datei zu erstellen:
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 eine der folgenden Arten:
- Gewähren Sie Hauptkonten die Berechtigung, auf den gesamten Index zuzugreifen.
- Hauptkonten Zugriff auf einen Teil des Index gewähren
Berechtigungen für den Zugriff auf den gesamten Index gewähren
-
In the Google Cloud console, activate Cloud Shell.
Verwenden Sie den Befehl
projects add-iam-policy-binding
, um eine IAM-Richtlinie für ein Projekt zu verknüpfen: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 die 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 Repositorygruppen erstellen und verschiedenen IAM-Hauptkonten IAM-Rollen zuweisen.
Zum Einrichten einer IAM-Richtlinie müssen Sie den JSON- oder YAML-Datei mit einer Liste von IAM-Richtlinien IAM-Gruppen und zugewiesene Rollen Beispiel:
bindings:
- members:
- group:my-group@example.com
- user:test-user@example.com
role: roles/cloudaicompanion.repositoryGroupsUser
Weitere Informationen zur Syntax finden Sie unter Informationen zu Zulassungsrichtlinien
Verwenden Sie zum Festlegen der IAM-Richtlinie die Methode
gemini code-repository-indexes repository-groups set-iam-policy
-Befehl:
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, um den Zugriff auf den Index mithilfe von Repository-Gruppen zu steuern.POLICY_FILE
: die IAM-Richtlinie.REGION
: Eine unterstützte Region, entwederus-central1
odereurope-west1
, die Sie in Developer Connect in Ihrem Google Cloud-Projekt konfiguriert haben.INDEX_NAME
: der Name des Index, den Sie in einem vorherigen Schritt, um einen Index zu erstellen.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 länger dauern. Die Indexierung erfolgt alle 24 Stunden, wobei Änderungen übernommen werden. die im Repository erstellt wurden.
Rufen Sie in der Google Cloud Console den Log-Explorer auf.
Verwenden Sie den Filter für Lognamen, um
indexing
-Logs aufzurufen, oder suchen Sie mit dem folgenden Befehl nach den Indexierungslogs:gcloud logging read "logName="projects/PROJECT_ID/logs/indexing""
Ersetzen Sie
PROJECT_ID
durch die Projekt-ID, Repository-Gruppe befindet.Führen Sie beispielsweise folgenden Befehl aus, um Fehler in den
indexing
-Logs anzusehen: Befehl:gcloud logging read "logName="projects/PROJECT_ID/logs/indexing" AND severity>=ERROR"
Weitere Informationen finden Sie unter Logging-Abfragesprache.
Prüfen Sie die zugehörigen Indexierungsstatus, z. B.:
- Beginn der Repository-Indexierung, z. B.
Indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 6, failed: 0.
- Ende der Indexierung eines einzelnen Repositorys. Beispiel:
- 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. Beispiel:
- 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:
Im Indexstatus ist
REPOSITORY_NAME
das Repository. die Sie überprüfen möchten.- Beginn der Repository-Indexierung, z. B.
Prüfen Sie die zugehörigen Indexierungsfehler, 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, 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
-
In the Google Cloud console, activate Cloud Shell.
Verwenden Sie zum Auflisten aller Repository-Gruppen für den aktuellen Index die Methode
gemini code-repository-indexes repository-groups list
-Befehl: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, entwederus-central1
odereurope-west1
, die Sie haben in Developer Connect in Ihrem Google Cloud-Projekt konfiguriertPROJECT_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: Verwenden Sie zum Löschen des Index die Methode
gemini code-repository-indexes delete
-Befehl: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
- 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