1. Übersicht
In diesem Lab entwickeln Sie eine Lösung, mit der sich die Implementierung von User Storys in JIRA mit GenAI automatisieren lässt.

Lerninhalte
Das Lab besteht aus mehreren Hauptteilen:
- Cloud Run-Anwendung zur Integration in Gemini APIs bereitstellen
- Atlassian Forge-App für JIRA erstellen und bereitstellen
- LangChain ReAct-Agents für die Automatisierung von GitLab-Aufgaben verwenden
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. 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. Es handelt sich um einen String, der nicht von Google APIs verwendet wird. Sie können sie jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich (kann nach dem Festlegen nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise 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_IDangegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie es mit einem eigenen Namen versuchen und sehen, ob er 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
- 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 Kosten zu vermeiden, die über diese Anleitung hinausgehen, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können am kostenlosen Testzeitraum mit einem Guthaben von 300$ teilnehmen.
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 Beispielanfragen oder geben Sie einen eigenen Prompt ein, um die Funktion auszuprobieren.

Probiere folgende Prompts aus:
- Erkläre Cloud Run in fünf wichtigen Punkten.
- Du bist Google Cloud Run Product Manager und sollst einem Studenten Cloud Run in fünf kurzen Stichpunkten erklären.
- Du bist Google Cloud Run Product Manager. Erkläre einem zertifizierten Kubernetes-Entwickler Cloud Run in fünf kurzen Stichpunkten.
- Sie sind Google Cloud Run Product Manager. Erklären Sie einem Senior Developer in fünf 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.
3. Optionen zum Testen von Prompts
Es gibt mehrere Möglichkeiten, Prompts zu testen.
Vertex AI Studio ist Teil der Vertex AI-Plattform von Google Cloud und wurde speziell entwickelt, um die Entwicklung und Verwendung generativer KI-Modelle 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. Bewerbung prüfen
Dienstkonto erstellen
Kehren Sie zur Google Cloud Console zurück und aktivieren Sie Cloud Shell, indem Sie rechts neben der Suchleiste auf das Symbol klicken.

Führen Sie im geöffneten Terminal die folgenden Befehle aus, um ein neues Dienstkonto und neue Schlüssel zu erstellen.
Sie verwenden dieses Dienstkonto, um API-Aufrufe an die Vertex AI Gemini API über die Cloud Run-Anwendung auszuführen.
Konfigurieren Sie die Projektdetails mit Ihren Qwiklabs-Projektdetails.
Beispiel: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Erstellen Sie ein Dienstkonto.
PROJECT_ID=$(gcloud config get-value project)
SERVICE_ACCOUNT_NAME='vertex-client'
DISPLAY_NAME='Vertex Client'
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --project $PROJECT_ID --display-name "$DISPLAY_NAME"
Rollen zuweisen
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.user"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/cloudbuild.builds.editor"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/storage.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/run.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor"
Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf „Autorisieren“, um fortzufahren.

Aktivieren Sie die erforderlichen Dienste, um Vertex AI APIs und Gemini Chat zu verwenden.
gcloud services enable \
generativelanguage.googleapis.com \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
Aktivieren Sie die erforderlichen Dienste, um Vertex AI APIs und Gemini Chat zu verwenden.
gcloud services enable \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
runapps.googleapis.com \
workstations.googleapis.com \
servicemanagement.googleapis.com \
secretmanager.googleapis.com \
containerscanning.googleapis.com
GitHub-Repository klonen
GitHub-Repository klonen.
git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git
Cloud Shell-Editor öffnen

Öffnen Sie über das Menü File / Open Folder die Option genai-for-developers.
Öffnen Sie die Datei „devai-api/app/routes.py“, klicken Sie dann mit der rechten Maustaste auf eine beliebige Stelle in der Datei und wählen Sie im Kontextmenü „Gemini > Explain this"“ aus.

Sehen Sie sich die Erläuterung von Gemini für die ausgewählte Datei an.

5. Konfiguration von GitLab-Repository und Toolkit
In diesem Lab verwenden Sie das GitLabToolkit, um das Erstellen von GitLab-Zusammenführungsanfragen zu automatisieren.
LangChain-Toolkits – Übersicht
LangChain-Toolkits sind Toolsets, die die Entwicklung von Anwendungen mit LangChain optimieren und verbessern sollen. Sie bieten je nach Toolkit verschiedene Funktionen, helfen aber im Allgemeinen bei Folgendem:
- Verbindung zu externen Datenquellen herstellen: Sie können auf Informationen aus APIs, Datenbanken und anderen externen Quellen zugreifen und sie in Ihre LangChain-Anwendungen einbinden.
- Erweiterte Prompting-Techniken: Verwenden Sie vordefinierte Prompts oder erstellen Sie benutzerdefinierte Prompts, um die Interaktionen mit Sprachmodellen zu optimieren.
- Erstellung und Verwaltung von Chains: Erstellen Sie komplexe Chains ganz einfach und verwalten Sie sie effizient.
- Bewertung und Monitoring: Analysieren Sie die Leistung Ihrer LangChain-Anwendungen und ‑Chains.
Hier einige beliebte LangChain-Toolkits:
- Agent Executor Toolkits: Tools zum Entwickeln von Agenten, die über Aktionen wie das Surfen im Web oder die Codeausführung mit der realen Welt interagieren können.
- Prompt Engineering Toolkit: Eine Sammlung von Ressourcen zum Erstellen effektiver Prompts.
GitLab Toolkit – Übersicht
Das GitLab-Toolkit enthält Tools, mit denen ein LLM-Agent mit einem GitLab-Repository interagieren kann. Das Tool ist ein Wrapper für die python-gitlab-Bibliothek.
Das GitLab-Toolkit kann die folgenden Aufgaben ausführen:
- Datei erstellen: Erstellt eine neue Datei im Repository.
- Datei lesen: Liest eine Datei aus dem Repository.
- Datei aktualisieren: Aktualisiert eine Datei im Repository.
- Pull-Anfrage erstellen: Erstellt eine Pull-Anfrage vom Arbeitszweig des Bots zum Basiszweig.
- Get Issue (Problem abrufen): Ruft Probleme aus dem Repository ab.
- Get Issue (Problem abrufen): Ruft Details zu einem bestimmten Problem ab.
- Comment on Issue (Problem kommentieren): Postet einen Kommentar zu einem bestimmten Problem.
- Datei löschen: Löscht eine Datei aus dem Repository.
GitLab-Projekt einrichten
Öffnen Sie GitLab, erstellen Sie ein neues Projekt und richten Sie unter „Settings / Access Tokens“ ein Projektzugriffstoken ein.
Verwenden Sie die folgenden Details:
- Token name:
devai-api-qwiklabs - Rolle:
Maintainer - Bereiche auswählen:
api

Kopieren Sie den Wert des Zugriffstokens und fügen Sie ihn in eine temporäre Datei auf Ihrem Laptop ein. Er wird in den nächsten Schritten verwendet.
6. Anwendung für die Bereitstellung in Cloud Run vorbereiten
Kehren Sie zum Cloud Shell-Editor zurück und verwenden Sie ein vorhandenes oder öffnen Sie ein neues Terminal.

Konfigurieren Sie die Projektdetails mit Ihren Qwiklabs-Projektdetails.
Beispiel: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR-QWIKLABS-PROJECT-ID
Legen Sie die restlichen Umgebungsvariablen fest:
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api
Legen Sie die für die GitLab-Integration erforderlichen Umgebungsvariablen fest.
export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-token
Um die Offenlegung vertraulicher Informationen im Terminal zu vermeiden, empfiehlt es sich, read -s GITLAB_PERSONAL_ACCESS_TOKEN zu verwenden. So können Umgebungsvariablen sicher festgelegt werden, ohne dass der Wert im Befehlsverlauf der Konsole angezeigt wird. Nachdem Sie das getan haben, müssen Sie den Wert einfügen und die Eingabetaste drücken. Sie müssen auch die Umgebungsvariable exportieren: export GITLAB_PERSONAL_ACCESS_TOKEN
Bei diesem Befehl müssen Sie Ihre GitLab-Nutzer-ID und den Repository-Namen aktualisieren.
Beispiel: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"

export GITLAB_REPOSITORY="USERID/REPOSITORY"
Legen Sie die restlichen Umgebungsvariablen fest:
export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"
LangSmith-Konfiguration für LLM-Tracing
Richten Sie das Konto ein, wenn Sie Agent-Tracing-Informationen in LangSmith ansehen möchten. Führen Sie die Befehle andernfalls unverändert aus.
Erstellen Sie ein LangSmith-Konto und generieren Sie im Bereich „Settings“ (Einstellungen) einen Service-API-Schlüssel. https://smith.langchain.com/settings
Legen Sie die Umgebungsvariablen fest, die für die LangSmith-Integration erforderlich sind.
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LANGCHAIN_API_KEY=langchain-service-api-key
JIRA-Konfiguration
Diese Werte werden in diesem Lab nicht verwendet. Sie müssen sie also nicht an die Werte Ihres spezifischen JIRA-Projekts anpassen, bevor Sie die Befehle ausführen.
Legen Sie die Umgebungsvariablen fest, die für die Bereitstellung des Cloud Run-Dienstes erforderlich sind.
export JIRA_API_TOKEN=jira-token
export JIRA_USERNAME="YOUR-EMAIL"
export JIRA_INSTANCE_URL="https://YOUR-JIRA-PROJECT.atlassian.net"
export JIRA_PROJECT_KEY="YOUR-JIRA-PROJECT-KEY"
export JIRA_CLOUD=true
API-Schlüssel erstellen
Erstellen Sie einen neuen API-Schlüssel in der Cloud Console unter „API & Dienste“ / „Anmeldedaten“.
Dieser Schlüssel wird verwendet, um JIRA API-Aufrufe an die Cloud Run-Anwendung zu authentifizieren.
Für die Produktionsumgebung konfigurieren Sie Anwendungs- und API-Einschränkungen für den erstellten API-Schlüssel. Anwendungseinschränkungen begrenzen die Nutzung eines API-Schlüssels auf bestimmte Websites(z.B. Ihre JIRA-Instanz).
Legen Sie die Umgebungsvariablen fest, die für die Bereitstellung des Cloud Run-Dienstes erforderlich sind.
export DEVAI_API_KEY=your-api-key
Secrets in Secret Manager erstellen
In diesem Lab folgen wir Best Practices und verwenden Secret Manager, um die Zugriffstokens, den API-Schlüssel und die LangChain API-Schlüsselwerte in Cloud Run zu speichern und darauf zu verweisen.
Erstellen und speichern Sie die erforderlichen Secrets in Secret Manager.
echo -n $DEVAI_API_KEY | \
gcloud secrets create DEVAI_API_KEY \
--data-file=-
echo -n $JIRA_API_TOKEN | \
gcloud secrets create JIRA_API_TOKEN \
--data-file=-
echo -n $GITLAB_PERSONAL_ACCESS_TOKEN | \
gcloud secrets create GITLAB_PERSONAL_ACCESS_TOKEN \
--data-file=-
echo -n $LANGCHAIN_API_KEY | \
gcloud secrets create LANGCHAIN_API_KEY \
--data-file=-
7. Devai-API in Cloud Run bereitstellen
Prüfen Sie, ob Sie sich im richtigen Ordner befinden.
cd ~/genai-for-developers/devai-api
Stellen Sie die Anwendung in Cloud Run bereit.
gcloud run deploy "$SERVICE_NAME" \
--source=. \
--region="$LOCATION" \
--allow-unauthenticated \
--service-account vertex-client \
--set-env-vars PROJECT_ID="$PROJECT_ID" \
--set-env-vars LOCATION="$LOCATION" \
--set-env-vars GITLAB_URL="$GITLAB_URL" \
--set-env-vars GITLAB_REPOSITORY="$GITLAB_REPOSITORY" \
--set-env-vars GITLAB_BRANCH="$GITLAB_BRANCH" \
--set-env-vars GITLAB_BASE_BRANCH="$GITLAB_BASE_BRANCH" \
--set-env-vars JIRA_USERNAME="$JIRA_USERNAME" \
--set-env-vars JIRA_INSTANCE_URL="$JIRA_INSTANCE_URL" \
--set-env-vars JIRA_PROJECT_KEY="$JIRA_PROJECT_KEY" \
--set-env-vars JIRA_CLOUD="$JIRA_CLOUD" \
--set-env-vars LANGCHAIN_TRACING_V2="$LANGCHAIN_TRACING_V2" \
--update-secrets="LANGCHAIN_API_KEY=LANGCHAIN_API_KEY:latest" \
--update-secrets="GITLAB_PERSONAL_ACCESS_TOKEN=GITLAB_PERSONAL_ACCESS_TOKEN:latest" \
--update-secrets="JIRA_API_TOKEN=JIRA_API_TOKEN:latest" \
--update-secrets="DEVAI_API_KEY=DEVAI_API_KEY:latest" \
--min-instances=1 \
--max-instances=3
Antworten Sie mit Y, um das Docker-Repository für Artifact Registry zu erstellen.
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in
region [us-central1] will be created.
Do you want to continue (Y/n)? y
Sehen Sie sich den gcloud run deploy SERVICE_NAME --source=.-Ablauf unten an. Weitere Informationen

Im Hintergrund verwendet dieser Befehl buildpacks und Cloud Build von Google Cloud, um automatisch Container-Images aus Ihrem Quellcode zu erstellen, ohne Docker auf Ihrem Computer installieren oder Buildpacks oder Cloud Build einrichten zu müssen. Das heißt, der einzige oben beschriebene Befehl würde die Befehle gcloud builds submit und gcloud run deploy ausführen.
Wenn Sie ein Dockerfile bereitgestellt haben(wie in diesem Repository), verwendet Cloud Build es zum Erstellen von Container-Images, anstatt sich auf die Buildpacks zu verlassen, um Container-Images automatisch zu erkennen und zu erstellen. Weitere Informationen zu Buildpacks
Sehen Sie sich die Cloud Build-Logs in der Console an.
Prüfen Sie das erstellte Docker-Image in Artifact Registry.
Sehen Sie sich die Cloud Run-Instanzdetails in der Cloud Console an.
App testen
Testen Sie den Endpunkt, indem Sie den curl-Befehl ausführen.
Aktualisieren Sie die Cloud Run-Dienst-URL, bevor Sie den Befehl ausführen.
Beispiel:
curl -H "X-devai-api-key: $DEVAI_API_KEY" https://devai-api-1110000001.us-central1.run.app/test
8. Implementierung von Stories automatisieren
Forge ist eine Plattform, auf der Entwickler Apps erstellen können, die in Atlassian-Produkte wie Jira, Confluence, Compass und Bitbucket integriert werden.

Forge CLI installieren
Installieren Sie die Forge CLI global, indem Sie Folgendes ausführen:
npm install -g @forge/cli
In diesem Lab verwenden wir Umgebungsvariablen für die Anmeldung.

JIRA-Projekt einrichten
Mit Ihrem privaten Konto JIRA-Projekte erstellen/aufrufen
Prüfen Sie Ihre vorhandenen JIRA-Projekte: https://admin.atlassian.com/
Erstellen Sie mit Ihrem privaten Konto ein neues JIRA-Projekt.
Rufen Sie https://team.atlassian.com/your-work auf, klicken Sie auf
und wählen Sie dann
aus. Wählen Sie dann „JIRA Software“ – „Jetzt ausprobieren“ aus. Folgen Sie der Anleitung, um die Erstellung des Projekts bzw. der Website abzuschließen.

Wählen Sie JIRA Software aus.

Erstellen Sie ein neues Projekt.

Atlassian API-Token erstellen
Erstellen Sie ein Atlassian-API-Token oder verwenden Sie ein vorhandenes, um sich in der CLI anzumelden.
Die Befehlszeile verwendet Ihr Token beim Ausführen von Befehlen.
- Rufen Sie https://id.atlassian.com/manage/api-tokens auf.
- Klicken Sie auf API-Token erstellen.
- Geben Sie ein Label zur Beschreibung Ihres API-Tokens ein. Beispiel: forge-api-token.
- Klicken Sie auf Erstellen.
- Klicken Sie auf In die Zwischenablage kopieren und schließen Sie das Dialogfeld.
Forge-Umgebungseinstellungen konfigurieren
Kehren Sie zur Cloud Console zurück und führen Sie die folgenden Befehle im Terminal aus.
Melden Sie sich in der Forge-CLI an, um Forge-Befehle zu verwenden.
Legen Sie Ihre JIRA-/FORGE-E-Mail-Adresse fest. Ersetzen Sie durch Ihre E-Mail-Adresse.
export FORGE_EMAIL=your-email
Forge-API-Token festlegen Ersetzen Sie diese durch Ihr JIRA-API-Token.
export FORGE_API_TOKEN=your-jira-api-token
Testen Sie die Forge-Befehlszeile, indem Sie den folgenden Befehl ausführen. Antworten Sie mit „No“, wenn Sie aufgefordert werden, Analysen zu erheben.
forge settings set usage-analytics false
Prüfen Sie, ob Sie angemeldet sind.
forge whoami
Beispielausgabe:
Logged in as John Green (johngreen@email.com) Account ID: 123090:aaabbcc-076a-455c-99d0-d1aavvccdd
Forge-Anwendung erstellen
Prüfen Sie, ob Sie sich im Ordner „~/genai-for-developers“ befinden.
Führen Sie den Befehl zum Erstellen einer Forge-Anwendung aus.
forge create
Verwenden Sie die folgenden Werte, wenn Sie dazu aufgefordert werden:
- App-Name:
devai-jira-ui-qwiklabs - Wählen Sie eine Kategorie aus:
UI Kit - Wählen Sie ein Produkt aus:
Jira - Wählen Sie eine Vorlage aus:
jira-issue-panel

Wechseln Sie in den Anwendungsordner.
cd devai-jira-ui-qwiklabs/
Führen Sie den Befehl aus, um Abhängigkeiten zu installieren.
npm install
Führen Sie den Bereitstellungsbefehl aus.
forge deploy
Beispielausgabe:
Deploying your app to the development environment. Press Ctrl+C to cancel. Running forge lint... No issues found. ✔ Deploying devai-jira-ui-qwiklabs to development... ℹ Packaging app files ℹ Uploading app ℹ Validating manifest ℹ Snapshotting functions ℹ Deploying to environment ✔ Deployed Deployed devai-jira-ui-qwiklabs to the development environment.
Installieren Sie die App.
forge install
Verwenden Sie die folgenden Werte, wenn Sie dazu aufgefordert werden:
- Wählen Sie ein Produkt aus:
Jira - Geben Sie die Website-URL ein:
your-domain.atlassian.net
Beispielausgabe:
Select the product your app uses. ? Select a product: Jira Enter your site. For example, your-domain.atlassian.net ? Enter the site URL: genai-for-developers.atlassian.net Installing your app onto an Atlassian site. Press Ctrl+C to cancel. ? Do you want to continue? Yes ✔ Install complete! Your app in the development environment is now installed in Jira on genai-for-developers.atlassian.net
Öffnen Sie Ihre JIRA-Website und erstellen Sie eine neue JIRA-Aufgabe mit der folgenden Beschreibung:
Create HTML, CSS and JavaScript using React.js framework to implement Login page with username and password fields, validation and documentation. Provide complete implementation, do not omit anything.
Wenn Sie die Aufgabe öffnen, sehen Sie die Schaltfläche „devai-jira-ui-qwiklabs“.
Klicken Sie auf den Button und sehen Sie sich die Änderungen auf der Benutzeroberfläche an.

Forge-Backend-Logs ansehen
forge logs
Atlassian Developer Console
Sie können bereitgestellte Apps auch in der Atlassian Developer Console ansehen und verwalten.

Logs prüfen – zur Development-Umgebung wechseln

Forge-Anwendungsmanifest und ‑Quellcode überprüfen
Öffnen Sie die Datei „devai-jira-ui-qwiklabs/manifest.yml“ und lassen Sie sich die Konfiguration von Gemini Code Assist erklären.

Erklärung ansehen

Öffnen Sie die folgenden Dateien und bitten Sie Gemini Code Assist, sie zu erläutern:
devai-jira-ui-qwiklabs/src/frontend/index.jsxdevai-jira-ui-qwiklabs/src/resolvers/index.js

Forge-App mit dem Cloud Run-Endpunkt der DevAI API aktualisieren
Prüfen Sie, ob die GCP-PROJEKT-ID festgelegt ist:
gcloud config get project
Falls nicht, legen Sie Ihr GCP-Projekt mit der Projekt-ID von der Qwiklabs-Lab-Seite fest:
Beispiel: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Cloud Run-Dienst-URL festlegen:
export DEVAI_API_URL=$(gcloud run services list --filter="(devai-api)" --format="value(URL)")
forge variables set DEVAI_API_URL $DEVAI_API_URL
DEVAI-API-Schlüssel festlegen:
export DEVAI_API_KEY=api-key-that-you-created
forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY
Bestätigen Sie dies mit dem folgenden Befehl:
forge variables list
Beispielausgabe:

Forge-Anwendungsmanifest und -Code aktualisieren
Diese Code-Snippets finden Sie im Repository im Ordner sample-devai-jira-ui.
Öffnen Sie die Manifestdatei im Editor: devai-jira-ui-qwiklabs/manifest.yml
Fügen Sie am Ende der Datei die folgenden Zeilen hinzu und ersetzen Sie den Cloud Run-Endpunkt durch den Endpunkt, den Sie bereitgestellt haben.
permissions:
scopes:
- read:jira-work
- write:jira-work
external:
fetch:
client:
- devai-api-gjerpi6qqq-uc.a.run.app/create-gitlab-mr # replace with YOUR CLOUD RUN URL
Öffnen Sie die Datei „resolvers/index“ im Editor: devai-jira-ui-qwiklabs/src/resolvers/index.js
Fügen Sie die Zeilen unten nach der vorhandenen Funktion getText ein.
resolver.define('getApiKey', (req) => {
return process.env.DEVAI_API_KEY;
});
resolver.define('getDevAIApiUrl', (req) => {
return process.env.DEVAI_API_URL;
});
Öffnen Sie die Datei „frontend/index“ im Editor: devai-jira-ui-qwiklabs/src/frontend/index.jsx
Ersetzen Sie index.jsx durch den folgenden Inhalt. Aktualisieren Sie den Link zu Ihrer GitLab-Nutzer-ID/Ihrem Repository.
Sie müssen YOUR-GIT-USERID und YOUR-GIT-REPO an zwei Stellen aktualisieren.
Suchen Sie in der Datei nach dieser Zeile und nehmen Sie die Änderungen vor:
https://gitlab.com/YOUR-GIT-USERID/YOUR-GIT-REPO/-/merge_requests
import React from 'react';
import ForgeReconciler, { Text, Link, useProductContext } from '@forge/react';
import { requestJira } from '@forge/bridge';
import { invoke } from '@forge/bridge';
import api, { route, assumeTrustedRoute } from '@forge/api';
const devAIApiKey = await invoke("getApiKey")
const devAIApiUrl = await invoke("getDevAIApiUrl")
const App = () => {
const context = useProductContext();
const [description, setDescription] = React.useState();
const fetchDescriptionForIssue = async () => {
const issueId = context?.extension.issue.id;
const res = await requestJira(`/rest/api/2/issue/${issueId}`);
const data = await res.json();
const bodyGenerateData = `{"prompt": ${JSON.stringify(data.fields.description)}}`;
const generateRes = await api.fetch(devAIApiUrl+'/create-gitlab-mr,
{
body: bodyGenerateData,
method: 'post',
headers: {
'Content-Type': 'application/json',
'x-devai-api-key': devAIApiKey,
},
}
)
const resData = await generateRes.text();
// Add link to the GitLab merge request page as a comment
await requestJira(`/rest/api/2/issue/${issueId}/comment`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: `{"body": "[GitLab Merge Request|https://gitlab.com/YOUR-GIT-USERID/YOUR-GIT-REPO/-/merge_requests]"}`
});
return "Response will be added as a comment. Please refresh in a few moments.";
};
React.useEffect(() => {
if (context) {
fetchDescriptionForIssue().then(setDescription);
}
}, [context]);
return (
<>
<Text>{description}</Text>
<Link href='https://gitlab.com/YOUR-GIT-USERID/YOUR-GIT-REPO/-/merge_requests' openNewTab={true}>GitLab Merge Request</Link>
</>
);
};
ForgeReconciler.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
Forge-App neu bereitstellen
Fügen Sie Abhängigkeiten in der Datei package.json hinzu:
"@forge/api": "4.0.0",
Führen Sie den folgenden Befehl aus, um die Abhängigkeiten zu installieren:
npm install
Aktualisierte Anwendung bereitstellen:
forge deploy
Beispielausgabe:
ℹ Uploading app ℹ Validating manifest ℹ Snapshotting functions ℹ Deploying to environment ✔ Deployed Deployed devai-jira-ui-qwiklabs to the development environment. We've detected new scopes or egress URLs in your app. Run forge install --upgrade and restart your tunnel to put them into effect.
Aktualisierte App installieren:
forge install --upgrade

Beispielausgabe:
Upgrading your app on the Atlassian site. Your app will be upgraded with the following additional scopes: - read:jira-work - write:jira-work Your app will exchange data with the following urls: - devai-api-7su2ctuqpq-uc.a.run.app ? Do you want to continue? Yes ✔ Upgrade complete! Your app in the development environment is now the latest in Jira on genai-for-developers.atlassian.net.
Forge-Anwendung testen
Öffnen Sie eine vorhandene JIRA-Aufgabe oder erstellen Sie eine neue in Ihrem JIRA-Projekt.
Sie müssen das vorherige Feld entfernen, falls es bereits hinzugefügt wurde.
Klicken Sie auf ... und wählen Sie im Menü „Entfernen“ aus. Danach können Sie noch einmal auf die Schaltfläche klicken.

Jira-Kommentare prüfen
Sobald Sie eine Antwort von der DEVAI API erhalten, wird dem JIRA-Vorgang ein Kommentar hinzugefügt.
- GitLab-Link zur Zusammenführungsanfrage
Wechseln Sie zwischen den Tabs „History“ und „Comments“, um die Ansicht zu aktualisieren.

GitLab-Zusammenführungsanfrage bestätigen
Öffnen Sie GitLab und suchen Sie in Ihrem Projekt nach neuen Merge-Anfragen.


LangSmith-LLM-Traces
Wenn Sie LLM-Tracing konfiguriert haben, öffnen Sie das LangSmith-Portal und prüfen Sie den LLM-Trace für den Aufruf zum Erstellen von GitLab-Zusammenführungsanfragen.
Beispiel für einen LangSmith-LLM-Trace.

9. Änderungen per Push-Befehl an ein GitHub-Repository übertragen
(OPTIONAL SECTION)
Rufen Sie die GitHub auf und erstellen Sie ein neues Repository, in das Sie Änderungen für dieses Lab in Ihr persönliches Repository übertragen können.
Kehren Sie zur Cloud Console zurück und legen Sie den Git-Nutzernamen und die E-Mail-Adresse im Terminal fest.
Aktualisieren Sie die Werte, bevor Sie die Befehle ausführen.
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
Generieren Sie einen SSH-Schlüssel und fügen Sie ihn dem GitHub-Repository hinzu.
Aktualisieren Sie Ihre E‑Mail-Adresse, bevor Sie die Befehle ausführen.
Geben Sie keine Passphrase ein und drücken Sie mehrmals die Eingabetaste, um die Schlüsselgenerierung abzuschließen.
ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
Fügen Sie Ihrem GitHub-Konto den generierten öffentlichen Schlüssel hinzu.
Öffnen Sie https://github.com/settings/keys und klicken Sie auf „New SSH key“.
Verwenden Sie für den Schlüsselnamen „qwiklabs-key“ und kopieren Sie die Ausgabe des letzten Befehls.
Wechseln Sie zurück zum Terminal, führen Sie einen Commit durch und übertragen Sie die Änderungen.
cd ~/genai-for-developers
git remote rm origin
Legen Sie den Remote-Ursprung mit dem oben erstellten Repository fest.
Ersetzen Sie diese durch die URL Ihres Repositorys.
git remote add origin git@github.com:YOUR-GITHUB-USERID/YOUR-GITHUB-REPO.git
Fügen Sie die Änderungen hinzu, übernehmen Sie sie und übertragen Sie sie per Push.
git add .
git commit -m "lab changes"
git push -u origin main
10. Glückwunsch!
Sie haben das Lab abgeschlossen.
Behandelte Themen:
- Cloud Run-Anwendungen bereitstellen, um sie in Gemini APIs einzubinden
- So erstellen und stellen Sie eine Atlassian Forge-App für JIRA bereit.
- So verwenden Sie LangChain ReAct-Agents für die Automatisierung von GitLab-Aufgaben.
- LLM-Traces in LangSmith ansehen
Nächste Schritte:
- Weitere praktische Übungen 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.