1. Übersicht
In diesem Lab richten Sie den GitHub Actions-Workflow ein und integrieren ihn in Gemini, um die Schritte für die Codeüberprüfung zu automatisieren.

Lerninhalte
In diesem Lab lernen Sie Folgendes:
- Schritte zur Automatisierung der Codeüberprüfung mit generativer KI in GitHub hinzufügen
- devai cli lokal ausführen, um Codeüberprüfungen zu automatisieren
Vorbereitung
- Für dieses Lab wird davon ausgegangen, dass Sie mit der Cloud Console und mit Cloud Shell-Umgebungen vertraut sind.
2. Einrichtung und Anforderungen
Cloud-Projekt einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.



- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Er ist ein String, der nicht von Google APIs verwendet wird. Sie können ihn jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich. Sie kann also nicht geändert werden, nachdem sie festgelegt wurde. Die Cloud Console generiert automatisch einen eindeutigen String. In den meisten Fällen ist es nicht wichtig, wie dieser String aussieht. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (in der Regel als
PROJECT_IDbezeichnet). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie eine eigene ID ausprobieren und prüfen, ob sie verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen. - Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/APIs zu verwenden. Die Durchführung dieses Codelabs kostet wenig oder gar nichts. Wenn Sie Ressourcen herunterfahren möchten, um zu vermeiden, dass nach dieser Anleitung Kosten anfallen, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können das kostenlose Testprogramm im Wert von 300$ nutzen.
Umgebung einrichten
Öffnen Sie den Gemini-Chat.

Oder geben Sie „Gemini fragen“ in die Suchleiste ein.

Aktivieren Sie die Gemini for Google Cloud API:

Klicken Sie auf „Start chatting“ und folgen Sie einer der Beispielfragen oder geben Sie einen eigenen Prompt ein, um ihn auszuprobieren.

Prompts zum Ausprobieren:
- Erklären Sie Cloud Run in 5 Stichpunkten.
- Sie sind der Produktmanager für Google Cloud Run. Erklären Sie einem Studenten Cloud Run in 5 kurzen Stichpunkten.
- Sie sind der Produktmanager für Google Cloud Run. Erklären Sie einem zertifizierten Kubernetes-Entwickler Cloud Run in 5 kurzen Stichpunkten.
- Sie sind der Produktmanager für Google Cloud Run. Erklären Sie einem Senior Developer in 5 kurzen Stichpunkten, wann Sie Cloud Run im Vergleich zu GKE verwenden würden.
Weitere Informationen zum Verfassen besserer Prompts finden Sie im Leitfaden für Prompts.
Verwendung Ihrer Daten durch Gemini for Google Cloud
Datenschutzverpflichtung von Google
Google war einer der ersten Anbieter in der Branche, der eine KI-/ML-Datenschutzverpflichtung veröffentlicht hat. Diese legt fest, dass Kunden die höchste Sicherheit und Kontrolle über ihre Daten haben sollten, die in der Cloud gespeichert werden.
Daten, die Sie senden und empfangen
Die Fragen, die Sie Gemini stellen, einschließlich aller eingegebenen Informationen oder des Codes, den Sie zur Analyse oder Vervollständigung an Gemini senden, werden als Prompts bezeichnet. Die Antworten oder Codevorschläge, die Sie von Gemini erhalten, werden als Antworten bezeichnet. Gemini verwendet Ihre Prompts und seine Antworten nicht als Daten zum Trainieren seiner Modelle.
Verschlüsselung von Prompts
Wenn Sie Prompts an Gemini senden, werden Ihre Daten während der Übertragung verschlüsselt und als Eingabe für das zugrunde liegende Modell in Gemini verwendet.
Von Gemini generierte Programmdaten
Gemini wurde mit eigenem Google Cloud-Code sowie mit ausgewähltem Drittanbieter-Code trainiert. Sie sind für die Sicherheit, das Testen und die Funktionsfähigkeit Ihres Codes verantwortlich, einschließlich aller Vervollständigungen, Generierungen oder Analysen von Code, die Gemini Ihnen bereitstellt.
Weitere Informationen zur Verarbeitung Ihrer Prompts durch Google
3. Optionen zum Testen von Prompts
Wenn Sie vorhandene devai cli-Prompts ändern oder erweitern möchten, haben Sie mehrere Möglichkeiten.
Vertex AI Studio ist Teil der Vertex AI-Plattform von Google Cloud und wurde speziell entwickelt, um die Entwicklung und Verwendung von generativen KI-Modellen zu vereinfachen und zu beschleunigen.
Google AI Studio ist ein webbasiertes Tool zum Erstellen von Prototypen und Experimentieren mit Prompt-Engineering und der Gemini API.
- Gemini Web-App (gemini.google.com)
Die Google Gemini Web-App (gemini.google.com) ist ein webbasiertes Tool, mit dem Sie die Leistungsfähigkeit der Gemini-KI-Modelle von Google erkunden und nutzen können.
- Mobile Google Gemini App für Android und Google App für iOS
4. Dienstkonto erstellen
Aktivieren Sie Cloud Shell, indem Sie rechts neben der Suchleiste auf das Symbol klicken.

Aktivieren Sie im geöffneten Terminal die erforderlichen Dienste, um Vertex AI APIs und den Gemini-Chat zu verwenden.
gcloud services enable \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
cloudresourcemanager.googleapis.com \
secretmanager.googleapis.com
Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf „Autorisieren“, um fortzufahren.

Führen Sie die folgenden Befehle aus, um ein neues Dienstkonto und neue Schlüssel zu erstellen.
Mit diesem Dienstkonto können Sie API-Aufrufe an die Vertex AI Gemini API aus CICD-Pipelines vornehmen.
PROJECT_ID=$(gcloud config get-value project)
SERVICE_ACCOUNT_NAME='vertex-client'
DISPLAY_NAME='Vertex Client'
KEY_FILE_NAME='vertex-client-key'
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --display-name "$DISPLAY_NAME"
Rollen gewähren.
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.admin" --condition None
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor" --condition None
gcloud iam service-accounts keys create $KEY_FILE_NAME.json --iam-account=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
5. GitHub-Repository in Ihr persönliches GitHub-Repository forken
Rufen Sie https://github.com/GoogleCloudPlatform/genai-for-developers/fork auf und wählen Sie Ihre GitHub-Nutzer-ID als Inhaber aus.
Klicken Sie auf „Create fork“.
6. GitHub Actions-Workflow aktivieren
Öffnen Sie das geforkte GitHub-Repository im Browser und wechseln Sie zum Tab „Actions“, um Workflows zu aktivieren.

7. Repository-Secrets hinzufügen
Erstellen Sie im geforkten GitHub-Repository unter „Settings / Secrets and variables / Actions“ ein Repository-Secret.
Fügen Sie ein Repository-Secret mit dem Namen "GOOGLE_API_CREDENTIALS" hinzu.

Wechseln Sie zum Google Cloud Shell-Fenster/Tab und führen Sie den folgenden Befehl im Cloud Shell-Terminal aus.
cat ~/vertex-client-key.json
Kopieren Sie den Dateiinhalt und fügen Sie ihn als Wert für das Secret ein.

Fügen Sie das Secret PROJECT_ID mit Ihrer Qwiklabs-Projekt-ID als Wert hinzu:

8. GitHub Actions-Workflow ausführen
Rufen Sie Ihr GitHub-Repository im Browser auf und führen Sie den Workflow aus.
Der Workflow ist so konfiguriert, dass er bei Bedarf ausgeführt wird.

9. Workflowausgabe überprüfen

Übersicht über Pipeline-Befehle
GitHub Actions-Workflowkonfiguration: devai-review.yml
Ergebnisse des Befehls zur Testabdeckung:
devai review testcoverage -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Mit dem Befehl devai review testcoverage werden Code und die zugehörige Testsuite (falls verfügbar) mit einem generativen KI-Modell, Gemini, analysiert. Dabei wird die Testabdeckung des bereitgestellten Codes bewertet und Dateien und Methoden mit und ohne Unit-Tests identifiziert. Anschließend wird das Modell verwendet, um eine Zusammenfassung der Abdeckung zu erstellen, einschließlich Messwerten wie abgedeckten Zeilen und Verzweigungen/Bedingungen. Basierend auf der Analyse werden Empfehlungen zur Verbesserung der Testabdeckung gegeben, z. B. bestimmte Tests, die hinzugefügt werden sollten, und allgemeine Ratschläge zu Best Practices für Tests. Schließlich wird die Antwort des Gemini-Modells ausgegeben, die Details wie Dateien ohne Abdeckung und Vorschläge zur Verbesserung vorhandener Tests enthält.

Ergebnisse des Befehls zur Codeüberprüfung:
devai review code -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Mit dem Befehl devai review code wird eine umfassende Codeüberprüfung eines bereitgestellten Code-Snippets mit einem generativen KI-Modell durchgeführt. Als Eingabe werden der zu überprüfende Code (Kontext) und eine bevorzugte Ausgabeformatierung (Ausgabe) verwendet. Ein großes Sprachmodell analysiert den Code auf Korrektheit, Effizienz, Wartbarkeit, Sicherheit und Einhaltung von Best Practices. Der Befehl erstellt einen detaillierten Prompt, in dem Gemini angewiesen wird, wie die Überprüfung durchgeführt werden soll, und sendet ihn dann an das Modell, um den bereitgestellten Code zu bewerten. Schließlich wird die Antwort von Gemini verarbeitet und je nach Nutzereinstellung in Markdown, JSON oder einer Tabelle formatiert. Die Ergebnisse der Überprüfung werden ausgegeben.

Ergebnisse des Befehls zur Überprüfung der Einhaltung von Richtlinien:
devai review compliance -c ${{ github.workspace }}/sample-app/k8s --config ${{ github.workspace }}/devai-cli/gemini/styleguide.md
Mit dem Befehl devai review compliance wird Code anhand einer Reihe von Best Practices analysiert, in der Regel für Kubernetes-Konfigurationen. Dabei wird ein Gemini-Modell verwendet, um den bereitgestellten Code (context) zu überprüfen und mit den in einer separaten Konfigurationsdatei (config) angegebenen Standards zu vergleichen. Der Befehl verwendet einen Prompt, um das Gemini-Modell anzuweisen, als erfahrener Kubernetes-Entwickler zu fungieren und einen Bericht zur Einhaltung von Richtlinien zu erstellen. Anschließend werden die Ergebnisse in einer kurzen Erklärung formatiert, wobei der Schwerpunkt auf Codebeispielen liegt, die zeigen, wie die ermittelten Probleme behoben werden können. Schließlich gibt der Befehl die Ausgabe der Überprüfung der Einhaltung von Richtlinien von Gemini in der Console aus. So können Nutzer ihren Code ganz einfach auf die Einhaltung von Richtlinien prüfen.

10. Repository klonen
Kehren Sie zum Cloud Shell-Terminal zurück und klonen Sie das Repository.
Ändern Sie YOUR-GITHUB-USERID vor dem Ausführen der Befehle in Ihre GitHub-Nutzer-ID.
git clone https://github.com/YOUR-GITHUB-USERID/genai-for-developers.git
Ändern Sie den Ordner und öffnen Sie die Workflowdatei im Cloud Shell-Editor.
cd genai-for-developers
cloudshell edit .github/workflows/devai-review.yml
Warten Sie, bis die Konfigurationsdatei in der IDE angezeigt wird.
11. Code mit Gemini Code Assist erklären
Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle in der devai-review.yml Datei und wählen Sie Gemini Code Assist > Explain aus.

Überprüfen Sie die Erklärung:

12. DevAI CLI-Entwicklung
In diesem Abschnitt nehmen Sie Änderungen an devai cli vor.
Richten Sie zuerst eine virtuelle Python-Umgebung ein, installieren Sie die Anforderungen und führen Sie den Beispielbefehl aus.
cd ~/genai-for-developers/devai-cli
python3 -m venv venv
. venv/bin/activate
pip3 install -r src/requirements.txt
pip3 install --editable ./src
devai echo
Legen Sie die erforderlichen Umgebungsvariablen fest.
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
Führen Sie den Befehl zur Codeüberprüfung aus, um zu prüfen, ob alles ordnungsgemäß funktioniert:
devai review code -c ~/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader > code-review.md
cloudshell edit code-review.md
Überprüfen Sie die Ergebnisse mit der Markdown-Vorschau im Cloud Shell-Editor.
Wählen Sie in der Befehlspalette „Markdown: Open Preview“ aus.



13. devai cli-Befehle
Befehl zur Überprüfung der Testabdeckung
devai review testcoverage -c ~/genai-for-developers/sample-app/src > testcoverage.md
cloudshell edit testcoverage.md
Befehl zur Überprüfung der Einhaltung von Richtlinien
devai review compliance --context ~/genai-for-developers/sample-app/k8s --config ~/genai-for-developers/devai-cli/.gemini/styleguide.md > k8s-review.md
cloudshell edit k8s-review.md
Befehl zur Leistungsüberprüfung
devai review performance -c ~/genai-for-developers/sample-app/src/main/java > performance-review.md
cloudshell edit performance-review.md
Befehl zur Sicherheitsüberprüfung
devai review security -c ~/genai-for-developers/sample-app/src/main/java > security-review.md
cloudshell edit security-review.md
Befehle zur Überprüfung von Blockern
devai review blockers -c ~/genai-for-developers/sample-app/pom.xml
devai review blockers -c ~/genai-for-developers/sample-app/setup.md
Überprüfung und Zusammenfassung von Bildern/Diagrammen
Eingabediagramm [~/genai-for-developers/images/extension-diagram.png]:

Befehl zur Überprüfung:
devai review image \
-f ~/genai-for-developers/images/extension-diagram.png \
-p "Review and summarize this diagram" > image-review.md
cloudshell edit image-review.md
Ausgabe:
The diagram outlines a process for conducting local code reviews using a VS Code extension or CLI, leveraging Google Cloud's Vertex AI (Gemini Pro) for generating review prompts.
**Process Flow:**
1. **Code Style Check:** Developers initiate the process by checking their code for adherence to pre-defined style guidelines.
2. **Prompt Generation:** The VS Code extension/CLI sends the code to Vertex AI (Gemini Pro) on Google Cloud.
3. **Vertex AI Review:** Vertex AI analyzes the code and generates relevant review prompts.
4. **Local Review:** The prompts are sent back to the developer's IDE for their consideration.
5. **Optional Actions:** Developers can optionally:
- Create new JIRA issues directly from the IDE based on the review prompts.
- Generate new issues in a GitLab repository.
**Key Components:**
* **VS Code Extension/CLI:** Tools facilitating the interaction with Vertex AI and potential integrations with JIRA and GitLab.
* **Vertex AI (Gemini Pro):** Google Cloud's generative AI service responsible for understanding the code and generating meaningful review prompts.
* **Google Cloud Secret Manager:** Securely stores API keys and access tokens required to authenticate and interact with Google Cloud services.
* **JIRA/GitLab (Optional):** Issue tracking and project management tools that can be integrated for a streamlined workflow.
**Benefits:**
* **Automated Review Assistance:** Leveraging AI to generate review prompts saves time and improves the consistency and quality of code reviews.
* **Local Development:** The process empowers developers to conduct reviews locally within their familiar IDE.
* **Integration Options:** The flexibility to integrate with project management tools like JIRA and GitLab streamlines workflow and issue tracking.
Analyse der Bilddifferenz
devai review imgdiff \
-c ~/genai-for-developers/images/devai-api.png \
-t ~/genai-for-developers/images/devai-api-slack.png > image-diff-review.md
cloudshell edit image-diff-review.md
Ausgabe:
The following UI elements are missing in the "AFTER UPGRADE STATE" image compared to the "BEFORE UPGRADE STATE" image: 1. **Slack:** The entire Slack element, including the icon, "Team channel" label, and the arrow indicating interaction, is absent in the AFTER UPGRADE image. 2. **Storage Bucket:** The "Storage Bucket" element with its icon and "PDFs" label is missing in the AFTER UPGRADE image. 3. **"GenAI Agents" label in Vertex AI block:** The BEFORE UPGRADE image has "Vertex AI Agents" and "GenAI Agent" labels within the Vertex AI block, while the AFTER UPGRADE image only has "Vertex AI." 4. **"Open JIRA Issue" and "Team Project" labels:** In the BEFORE UPGRADE image, these labels are connected to the JIRA block with an arrow. These are missing in the AFTER UPGRADE image. **Decision Explanation:** The analysis is based on a direct visual comparison of the two provided images, noting the presence and absence of specific UI elements and their associated labels. The elements listed above are present in the BEFORE UPGRADE image but absent in the AFTER UPGRADE image.
Analyse von Videodateien:
devai review video \
-f "/tmp/video.mp4" \
-p "Review user journey video and create unit tests using jest framework"
Befehl zur Dokumentationserstellung
devai document readme -c ~/genai-for-developers/sample-app/src/main/
Ausgabe:
# Bank of Anthos - Balance Reader Service ## Description The Balance Reader service is a component of the Bank of Anthos sample application. It provides a REST endpoint for retrieving the current balance of a user account. This service demonstrates key concepts for building microservices with Spring Boot and deploying them to a Kubernetes cluster. ## Features ...
Überprüfen Sie die verfügbaren devai cli-Befehle im Cloud Shell-Editor:
cloudshell edit ~/genai-for-developers/devai-cli/README.md
Oder überprüfen Sie die Datei README.md im GitHub-Repository.
14. Glückwunsch!
Sie haben das Codelab abgeschlossen.
Behandelte Themen:
- Schritte zur Automatisierung der Codeüberprüfung mit generativer KI in GitHub hinzufügen
- devai cli lokal ausführen
Nächste Schritte:
- Weitere praktische Sitzungen folgen.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, können Sie entweder das Projekt löschen, das die Ressourcen enthält, oder das Projekt beibehalten und die einzelnen Ressourcen löschen.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.
© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.