1. Hinweis
In diesem Codelab erfahren Sie, wie Sie Gemini Code Assist so vorbereiten, dass Vorschläge zur Codeanpassung bereitgestellt werden, die auf Ihre privaten Repositories zugeschnitten sind. Dadurch können die Ergebnisse von Code Assist deutlich nützlicher sein, insbesondere für Teams, die bestimmte Konventionen für ähnliche Arbeiten haben, die oft wiederholt werden. Wenn Sie Gemini erlauben, Ihre privaten Codebases für diese Funktion zu indexieren, wird Gemini nicht mit Ihrem privaten Code trainiert.
Außerdem wird erläutert, wie Sie mit einer .aiexclude-Datei vertrauliche oder irrelevante Dateien von der Codeanpassung ausschließen können.
Vorbereitung
- Grundkenntnisse von Gemini Code Assist und Zugriff auf ein Projekt, in dem es aktiviert ist
- Kenntnisse einer unterstützten Programmiersprache für die Codeanpassung
- Sie müssen Ressourcen in
us-central1odereurope-west1erstellen können, da für die Codeanpassung Developer Connect-Verbindungen an diesen Standorten erforderlich sind. - Eine aktuelle, authentifizierte Google Cloud CLI
Lerninhalte
- Codeanpassung in Gemini Code Assist Enterprise verwenden
- Einer von vielen Anwendungsfällen, in denen die Codeanpassung Ihren Teams Zeit sparen kann
Voraussetzungen
- Ein Google Cloud-Projekt mit aktiviertem Gemini Code Assist
- Ein privates Repository, das für Anpassungsanfragen indexiert werden soll
- Zeit, die zum Indexieren des Codes für Anpassungsanfragen benötigt wird. Dieser Vorgang kann bis zu 24 Stunden dauern
- Eine IDE mit installiertem Gemini Code Assist
2. Kontext
Um die Codeanpassung auszuprobieren, sind zwei Dinge erforderlich:
- Zugriff auf ein Google Cloud-Projekt mit aktiviertem Gemini
- und ein privates Repository, um die Antworten von Gemini zu informieren.

Die besten Kandidaten-Repositories für die Indexierung durch Gemini enthalten Code, der in Ihrer Organisation häufig wiederverwendet wird. Das für diesen Codelab bereitgestellte Beispiel-Repository enthält einen standardmäßigen Spring Boot-Webdienst mit einem Ordner mit Datenübertragungsobjekten, die diese Kriterien erfüllen. Eine ähnliche Klasse würde erstellt, um jede Entität in einer Datenbank zu beschreiben, wenn sie in die Darstellungsebene übertragen wird.
3. Optional: Repository-Einrichtung
Wenn Sie lieber ein Beispiel-Repository als ein eigenes privates Repository verwenden möchten, können Sie die folgenden Schritte im Terminal-Editor Ihrer Wahl oder in der Cloud Shell ausführen. Erstellen Sie zuerst ein privates Repository, damit wir die Codeanpassung in Aktion sehen können:
mkdir customization-starter
cd customization-starter
curl https://start.spring.io/starter.zip -d dependencies=web,lombok \
-d javaVersion=21 \
-d type=maven-project \
-d bootVersion=3.3.4 -o cc-starter.zip
unzip cc-starter.zip
rm cc-starter.zip
pushd src/main/java/com/example/demo
mkdir dtos
touch dtos/LedgerDTO.java
Fügen Sie der Datei „LedgerDTO“ Folgendes hinzu:
package com.example.demo.dtos;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@Getter
@Setter
@Accessors(chain = true)
public class LedgerEntryDto {
private Long id;
private String accountName;
private double amount;
private String transactionType;
private String description;
private java.util.Date transactionDate;
}
Das reicht aus, um zu zeigen, dass die Accessoren, die andere Mitwirkende an dieser Codebasis verwenden würden, bei aktivierter Codeanpassung korrekt generiert werden.
Erstellen Sie ein neues Repository und achten Sie darauf, dass es privat bleibt. So übertragen Sie den Starter in Ihr neues Repository:
popd
gh auth login
git init
git add .
git commit -m "code customization starter"
git remote add origin git@github.com:<YOUR_GITHUB_ID>/customization-starter.git
git branch -M main
git push -u origin main
4. Dateien ausschließen
Bevor Sie Gemini Zugriff auf Ihre privaten Repositories gewähren, sollten Sie wissen, wie Sie irrelevante oder vertrauliche Dateien ausschließen, die Ihr Team nicht indexieren lassen möchte. Dazu wird eine .aiexclude-Datei verwendet, die einer .gitignore ähnelt, aber einige wichtige Unterschiede aufweist:
- Eine leere
.aiexclude-Datei blockiert alle Dateien im zugehörigen Verzeichnis und allen Unterverzeichnissen.- Dies entspricht einer Datei, die
**/*enthält.
- Dies entspricht einer Datei, die
- Bei
.aiexclude-Dateien wird die Negation nicht unterstützt (Muster mit!voranstellen).
Berücksichtigen Sie dabei Dateitypen oder Verzeichnisse, die Ihr Team ausschließen möchte, und führen Sie sie jeweils in separaten Zeilen auf:
#Block all files with .key extensions
*.key
#Block all files under sensitive/dir
my/sensitive/dir/
#Block all .key files under sensitive/dir
my/sensitive/dir/ /.key
5. Developer Connect konfigurieren
Developer Connect ist der Dienst, der Verbindungen und Links zu Ihren privaten Code-Repositories in GitHub oder GitLab ermöglicht. So kann Gemini Code Assist sicher eine Verbindung zu Ihren privaten Repositories herstellen, um den Index zu erstellen, der zur Verbesserung der Antworten verwendet wird.
Diese beiden Konzepte helfen Ihnen zu verstehen, wie Developer Connect sicheren Zugriff auf Ihren Code bietet:
Verbindung
- Stellt die Brücke zwischen Google und der Drittanbieterplattform für die Verwaltung von Quellcode dar.
Link
- Stellt die Zuordnung zu einem einzelnen Quellcode-Repository dar, das Sie auf einer verbundenen Plattform zur Verwaltung von Quellcode auswählen.
Rufen Sie als Nächstes die Seite Developer Connect auf, um die API für Ihr Projekt zu aktivieren.

Folgen Sie dann der Anleitung, um eine Verbindung und einen Link für GitHub oder GitLab zu erstellen. Beide Ressourcen werden während des Assistentenprozesses erstellt.

Wiederholen Sie diese Schritte, um für jedes Repository, das Gemini bei der Codeanpassung in seinen Antworten berücksichtigen soll, einen Link zu erstellen. Sie können die vorhandene Verbindung wiederverwenden, wenn mehrere Repositories von derselben Plattform stammen.
6. Index erstellen und eine Verbindung herstellen
Um Ihre Repositories schnell zu parsen und zu analysieren, verwendet die Codeanpassung einen Index. Notieren Sie sich den verwendeten INDEX_NAME, da Sie ihn in einem späteren Schritt benötigen.
Führen Sie den folgenden Befehl aus, um einen Index zu erstellen:
gcloud gemini code-repository-indexes create <INDEX_NAME> \
--project=<YOUR_PROJECT_ID> \
--location=<REGION>
Wenn Sie auf Invalid choice: ...-Fehler stoßen, achten Sie darauf, dass Ihre Google Cloud CLI auf dem neuesten Stand ist. Führen Sie dazu den folgenden Befehl aus:
gcloud components update
Als Nächstes gewähren Sie Zugriff auf Ihren Index, indem Sie eine Repository-Gruppe erstellen:
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 die folgenden Werte:
- REPOSITORY_GROUP: Der Name der Repository-Gruppe, die Sie erstellen möchten
- PROJECT_ID: Ihre Google Cloud-Projekt-ID.
- INDEX_NAME: Name des Index, den Sie in einem vorherigen Schritt zum Erstellen eines Index definiert haben.
- REGION: eine unterstützte Region aus der Liste in der Dokumentation, die Sie in Developer Connect in Ihrem Google Cloud-Projekt konfiguriert haben.
- INDEX_CONNECTION: Verbindung des Index, den Sie in einem vorherigen Schritt zum Erstellen eines Index erstellt haben.
- REPOSITORY: Das Repository, das Sie indexieren möchten. Sie müssen mindestens ein Repository angeben. Bei Bedarf können Sie auch mehrere angeben.
- BRANCH_NAMES: Name der Zweige, die indexiert werden sollen, z. B. „main“ oder „dev“.
Je nach Anzahl der zu indexierenden Repositories und deren Größe kann das Indexieren von Inhalten bis zu 24 Stunden dauern. Die Indexierung erfolgt einmal alle 24 Stunden und berücksichtigt alle Änderungen, die im Repository vorgenommen wurden. Hier finden Sie eine Anleitung, wie Sie den Status der Indexgenerierung prüfen können.

Gewähren Sie dem gewünschten Prinzipal Zugriff auf die Gruppe:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='PRINCIPAL' \
--role='roles/cloudaicompanion.repositoryGroupsUser'
7. Benutzerdefinierten Code generieren
Da Gemini jetzt Zugriff auf den Code in Ihrem privaten Repository hat, können wir davon ausgehen, dass in unseren Anfragen zur Codevervollständigung relevante Snippets angezeigt werden. In unserem Beispielrepository können wir zum DTO-Ordner navigieren. Wenn wir eine neue Klasse erstellen, um ein neues Objekt darzustellen, werden die erwarteten Anmerkungen während der Eingabe angezeigt:

8. Fazit
Sie haben dieses Codelab abgeschlossen. Sie haben gelernt, wie Sie die Funktion Codeanpassung von Gemini Code Assist verwenden. Da Ihre Antworten jetzt auf die spezifischen, privaten Codebasen Ihrer Teams zugeschnitten werden können, sind jeder Prompt und jede Codevervollständigung für die Entwickler in Ihren Teams wertvoller.
Weitere Informationen und Unterstützung, z. B. zum Einrichten von IAM-Rollen, finden Sie in den folgenden Dokumenten und Materialien: