Penerapan Cerita Pengguna JIRA dengan AI Generatif

Penerapan Cerita Pengguna JIRA dengan AI Generatif

Tentang codelab ini

subjectTerakhir diperbarui Mar 24, 2025
account_circleDitulis oleh Andrey Shakirov

1. Ringkasan

Dalam lab ini, Anda akan membuat solusi untuk mengotomatiskan penerapan cerita pengguna JIRA dengan GenAI.

a4ba5d8788dc40.png

Ada beberapa bagian utama dalam lab ini:

  • Men-deploy aplikasi Cloud Run untuk berintegrasi dengan Gemini API
  • Membuat dan men-deploy aplikasi Atlassian Forge untuk JIRA
  • Menggunakan Agen ReAct LangChain untuk otomatisasi tugas GitLab
  • Di lab ini, Anda dianggap telah memahami Konsol Cloud dan lingkungan Cloud Shell.

2. Penyiapan dan persyaratan

Penyiapan Project Cloud

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
  • Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project.
  • Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Penyiapan lingkungan

Buka chat Gemini.

bc3c899ac8bcf488.png

Atau ketik "Minta Gemini" di kotak penelusuran.

e1e9ad314691368a.png

Aktifkan Gemini for Google Cloud API:

990a0ceea7d05531.png

Klik "Start chatting" dan ikuti salah satu contoh pertanyaan atau ketik perintah Anda sendiri untuk mencobanya.

ed120d672468b412.png

Perintah yang dapat dicoba:

  • Jelaskan Cloud Run dalam 5 poin utama.
  • Anda adalah Product Manager Google Cloud Run, jelaskan Cloud Run kepada seorang siswa dalam 5 poin penting singkat.
  • Anda adalah Product Manager Google Cloud Run, jelaskan Cloud Run kepada Developer Kubernetes Bersertifikat dalam 5 poin penting singkat.
  • Anda adalah Product Manager Google Cloud Run, jelaskan kapan Anda akan menggunakan Cloud Run versus GKE kepada Developer Senior dalam 5 poin penting singkat.

Lihat Panduan Perintah untuk mempelajari lebih lanjut cara menulis perintah yang lebih baik.

Cara Gemini untuk Google Cloud menggunakan data Anda

Komitmen privasi Google

Google adalah salah satu yang pertama di industri yang memublikasikan komitmen privasi AI/ML, yang menguraikan keyakinan kami bahwa pelanggan harus memiliki tingkat keamanan dan kontrol tertinggi atas data mereka yang disimpan di cloud.

Data yang Anda kirimkan dan terima

Pertanyaan yang Anda ajukan kepada Gemini, termasuk informasi input atau kode yang Anda kirimkan ke Gemini untuk dianalisis atau diselesaikan, disebut perintah. Jawaban atau penyelesaian kode yang Anda terima dari Gemini disebut respons. Gemini tidak menggunakan perintah Anda atau responsnya sebagai data untuk melatih modelnya.

Enkripsi perintah

Saat Anda mengirimkan perintah ke Gemini, data Anda dienkripsi selama pengiriman sebagai input ke model pokok di Gemini.

Data program yang dihasilkan dari Gemini

Gemini dilatih dengan kode Google Cloud pihak pertama serta kode pihak ketiga yang dipilih. Anda bertanggung jawab atas keamanan, pengujian, dan efektivitas kode Anda, termasuk penyelesaian, pembuatan, atau analisis kode yang ditawarkan Gemini kepada Anda.

Pelajari lebih lanjut cara Google menangani perintah Anda.

3. Opsi untuk menguji perintah

Anda memiliki beberapa opsi untuk menguji perintah.

Vertex AI Studio adalah bagian dari platform Vertex AI Google Cloud, yang dirancang khusus untuk menyederhanakan dan mempercepat pengembangan serta penggunaan model AI generatif.

Google AI Studio adalah alat berbasis web untuk membuat prototipe dan bereksperimen dengan rekayasa perintah dan Gemini API.

Aplikasi web Google Gemini (gemini.google.com) adalah alat berbasis web yang dirancang untuk membantu Anda menjelajahi dan memanfaatkan kecanggihan model AI Gemini Google.

4. Meninjau permohonan

Buat Akun Layanan

Kembali ke Konsol Google Cloud dan aktifkan Cloud Shell dengan mengklik ikon di sebelah kanan kotak penelusuran.

3e0c761ca41f315e.png

Di terminal yang terbuka, jalankan perintah berikut untuk membuat kunci dan akun layanan baru.

Anda akan menggunakan akun layanan ini untuk melakukan panggilan API ke Vertex AI Gemini API dari aplikasi Cloud Run.

Konfigurasikan detail project menggunakan detail project Qwiklabs Anda.

Contoh: qwiklabs-gcp-00-2c10937585bb

gcloud config set project YOUR_QWIKLABS_PROJECT_ID

Membuat akun layanan.

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"

Berikan peran.

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"

Jika diminta untuk memberikan otorisasi, klik "Authorize" untuk melanjutkan.

6356559df3eccdda.png

Aktifkan layanan yang diperlukan untuk menggunakan Vertex AI API dan chat Gemini.

gcloud services enable \
    generativelanguage
.googleapis.com \
    aiplatform
.googleapis.com \
    cloudaicompanion
.googleapis.com \
    run
.googleapis.com \
    cloudresourcemanager
.googleapis.com
 

Aktifkan layanan yang diperlukan untuk menggunakan Vertex AI API dan chat Gemini.

gcloud services enable \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    runapps.googleapis.com \
    workstations.googleapis.com \
    servicemanagement.googleapis.com \
    secretmanager.googleapis.com \
    containerscanning.googleapis.com

Meng-clone Repositori GitHub

Clone repositori GitHub.

git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git

Membuka Cloud Shell Editor

7e71f46b6c7b67ca.png

Dengan menggunakan item menu "File / Open Folder", buka "genai-for-developers".

Buka file "devai-api/app/routes.py", lalu klik kanan di mana saja dalam file dan pilih "Gemini > Explain this" dari menu konteks.

34054e1fad005ff8.png

Tinjau penjelasan Gemini untuk file yang dipilih.

f73af988a723142.png

5. Konfigurasi Repositori dan Toolkit GitLab

Di lab ini, Anda akan menggunakan GitLabToolkit untuk mengotomatiskan pembuatan permintaan penggabungan GitLab.

Ringkasan Toolkit LangChain

LangChain Toolkits adalah kumpulan alat yang dirancang untuk menyederhanakan dan meningkatkan pengembangan aplikasi dengan LangChain. Alat ini menawarkan berbagai fungsi bergantung pada toolkit tertentu, tetapi secara umum, alat ini membantu:

  • Menghubungkan ke sumber data eksternal: Mengakses dan menggabungkan informasi dari API, database, dan sumber eksternal lainnya ke dalam aplikasi LangChain Anda.
  • Teknik perintah lanjutan: Gunakan perintah bawaan atau buat perintah kustom untuk mengoptimalkan interaksi dengan model bahasa.
  • Pembuatan dan pengelolaan rantai: Buat rantai yang kompleks dengan mudah dan kelola dengan efisien.
  • Evaluasi dan pemantauan: Menganalisis performa aplikasi dan rantai LangChain Anda.

Beberapa Toolkit LangChain populer meliputi:

  • Toolkit Eksekutor Agen: Alat untuk mengembangkan agen yang dapat berinteraksi dengan dunia nyata melalui tindakan seperti penjelajahan web atau eksekusi kode.
  • Prompt Engineering Toolkit: Kumpulan referensi untuk membuat perintah yang efektif.

Ringkasan GitLab Toolkit

Toolkit Gitlab berisi alat yang memungkinkan agen LLM berinteraksi dengan repositori gitlab. Alat ini adalah wrapper untuk library python-gitlab.

Toolkit GitLab dapat melakukan tugas berikut:

  • Create File - membuat file baru di repositori.
  • Read File - membaca file dari repositori.
  • Update File - memperbarui file di repositori.
  • Create Pull Request - membuat permintaan pull dari cabang kerja bot ke cabang dasar.
  • Get Issue - mengambil masalah dari repositori.
  • Get Issue - mengambil detail tentang masalah tertentu.
  • Komentari Masalah - memposting komentar tentang masalah tertentu.
  • Hapus File - menghapus file dari repositori.

Penyiapan Project GitLab

Buka GitLab, buat project baru, dan siapkan Token Akses Project di bagian "Settings / Access Tokens".

Gunakan detail berikut:

  • Nama token: devai-api-qwiklabs
  • Peran: Maintainer
  • Pilih cakupan: api

c205fd7524c456dc.png

Salin dan tempel nilai Token Akses ke file sementara di laptop Anda, yang akan digunakan di langkah berikutnya.

6. Bersiap untuk men-deploy aplikasi di Cloud Run

Kembali ke Cloud Shell Editor dan gunakan terminal yang ada atau buka terminal baru.

941f0c1692037664.png

Konfigurasikan detail project menggunakan detail project Qwiklabs Anda.

Contoh: qwiklabs-gcp-00-2c10937585bb

gcloud config set project YOUR-QWIKLABS-PROJECT-ID

Tetapkan variabel lingkungan lainnya:

export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
export REPO_NAME=devai-api
export SERVICE_NAME=devai-api

Tetapkan variabel lingkungan yang diperlukan untuk integrasi GitLab.

export GITLAB_PERSONAL_ACCESS_TOKEN=gitlab-token

Untuk menghindari eksposur informasi sensitif di terminal, praktik terbaiknya adalah menggunakan read -s GITLAB_PERSONAL_ACCESS_TOKEN. Ini adalah cara aman untuk menetapkan variabel lingkungan tanpa nilai yang muncul di histori perintah konsol. Setelah menjalankannya, Anda harus menempelkan nilai dan menekan enter. Anda juga harus mengekspor variabel lingkungan: export GITLAB_PERSONAL_ACCESS_TOKEN

Perintah ini mengharuskan Anda memperbarui userid dan nama repositori GitLab.

Contoh: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"

119489def27115c8.png

export GITLAB_REPOSITORY="USERID/REPOSITORY"

Tetapkan variabel lingkungan lainnya:

export GITLAB_URL="https://gitlab.com"
export GITLAB_BRANCH="devai"
export GITLAB_BASE_BRANCH="main"

Konfigurasi pelacakan LLM LangSmith

Siapkan akun jika Anda ingin melihat informasi pelacakan agen di LangSmith, atau jalankan perintah apa adanya.

Buat akun LangSmith dan buat kunci Service API di bagian Setelan. https://smith.langchain.com/settings

Tetapkan variabel lingkungan yang diperlukan untuk integrasi LangSmith.

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"

export LANGCHAIN_API_KEY=langchain-service-api-key

Konfigurasi JIRA

Nilai ini tidak digunakan di lab ini, sehingga Anda tidak perlu memperbaruinya ke nilai project JIRA tertentu sebelum menjalankan perintah.

Tetapkan variabel lingkungan yang diperlukan untuk deployment layanan Cloud Run.

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

Buat kunci API

Buat kunci API baru di bagian Cloud Console / API & Services / Credentials.

Kunci ini akan digunakan untuk mengautentikasi panggilan JIRA API ke aplikasi Cloud Run.

Untuk lingkungan produksi, Anda akan mengonfigurasi pembatasan aplikasi dan API untuk kunci API yang dibuat. Pembatasan aplikasi membatasi penggunaan kunci API untuk situs tertentu(misalnya, instance JIRA Anda).

Tetapkan variabel lingkungan yang diperlukan untuk deployment layanan Cloud Run.

export DEVAI_API_KEY=your-api-key

Membuat secret di Secret Manager

Untuk lab ini, kita akan mengikuti praktik terbaik dan menggunakan Secret Manager untuk menyimpan dan mereferensikan nilai Token Akses, Kunci API, dan Kunci API LangChain di Cloud Run.

Buat dan simpan secret yang diperlukan di 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. Men-deploy Devai-API ke Cloud Run

Pastikan Anda berada di folder yang benar.

cd ~/genai-for-developers/devai-api

Men-deploy aplikasi ke Cloud Run.

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

Jawab Y untuk membuat repositori Docker Artifact Registry.

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

Tinjau alur gcloud run deploy SERVICE_NAME --source=. di bawah. Pelajari lebih lanjut.

5c122a89dd11822e.png

Di balik layar, perintah ini menggunakan buildpacks dan Cloud Build Google Cloud untuk mem-build image container secara otomatis dari kode sumber Anda tanpa harus menginstal Docker di komputer atau menyiapkan buildpack atau Cloud Build. Artinya, satu perintah yang dijelaskan di atas melakukan apa yang sebaliknya memerlukan perintah gcloud builds submit dan gcloud run deploy.

Jika Anda telah menyediakan Dockerfile(yang telah kita lakukan di repositori ini), Cloud Build akan menggunakannya untuk mem-build image container, bukan mengandalkan buildpack untuk mendeteksi dan mem-build image container secara otomatis. Untuk mempelajari buildpack lebih lanjut, lihat dokumentasi.

Tinjau log Cloud Build di Konsol.

Tinjau image Docker yang dibuat di Artifact Registry.

Tinjau detail instance Cloud Run di Cloud Console.

Aplikasi pengujian

Uji endpoint dengan menjalankan perintah curl.

Perbarui dengan URL layanan Cloud Run Anda sebelum menjalankan perintah.

Contoh:

curl -H "X-devai-api-key: $DEVAI_API_KEY" https://devai-api-1110000001.us-central1.run.app/test

8. Mengotomatiskan penerapan cerita

Forge adalah platform yang memungkinkan developer membuat aplikasi yang terintegrasi dengan produk Atlassian, seperti Jira, Confluence, Compass, dan Bitbucket.

eda6f59ff15df25e.png

Menginstal Forge CLI

Instal Forge CLI secara global dengan menjalankan:

npm install -g @forge/cli

Untuk lab ini, kita akan menggunakan variabel lingkungan untuk login.

e4e4e59cf8622e3f.png

Menyiapkan project JIRA

Gunakan akun pribadi Anda untuk membuat/melihat project JIRA.

Tinjau project JIRA yang ada: https://admin.atlassian.com/

Buat project JIRA baru menggunakan akun pribadi Anda.

Buka https://team.atlassian.com/your-work, klik 8654143154cb8665.png, lalu pilih 47b253090a08932.png. Setelah itu, pilih "JIRA Software" - "Coba sekarang". Ikuti petunjuk untuk menyelesaikan pembuatan project/situs.

5bab2a96e3b81383.png

Pilih JIRA Software.

785bc4d8bf920403.png

Membuat project baru.

8a6e7cdc8224ffa0.png

Membuat token Atlassian API

Buat atau gunakan token Atlassian API yang ada untuk login ke CLI.

CLI menggunakan token Anda saat menjalankan perintah.

  1. Buka https://id.atlassian.com/manage/api-tokens.
  2. Klik Create API token.
  3. Masukkan label untuk mendeskripsikan token API Anda. Misalnya, forge-api-token.
  4. Klik Buat.
  5. Klik Salin ke papan klip dan tutup dialog.

Mengonfigurasi setelan lingkungan Forge

Kembali ke Konsol Cloud dan jalankan perintah di bawah di terminal.

Login ke Forge CLI untuk mulai menggunakan perintah Forge.

Tetapkan alamat email JIRA/FORGE Anda. Ganti dengan alamat email Anda.

export FORGE_EMAIL=your-email

Menetapkan token Forge API. Ganti dengan token JIRA API Anda.

export FORGE_API_TOKEN=your-jira-api-token

Uji forge cli dengan menjalankan perintah di bawah. Jawab "No" saat diminta untuk mengumpulkan analisis.

forge settings set usage-analytics false

Periksa apakah Anda sudah login.

forge whoami

Contoh output.

Logged in as John Green (johngreen@email.com)
Account ID: 123090:aaabbcc-076a-455c-99d0-d1aavvccdd

Membuat aplikasi Forge

Pastikan Anda berada di folder "~/genai-for-developers".

Jalankan perintah untuk membuat aplikasi Forge.

forge create

Gunakan nilai berikut saat diminta:

  • Nama aplikasi: devai-jira-ui-qwiklabs
  • Pilih kategori: UI Kit
  • Pilih produk: Jira
  • Pilih template: jira-issue-panel

bc94e2da059f15cf.png

Ubah ke folder aplikasi.

cd devai-jira-ui-qwiklabs/

Jalankan perintah untuk menginstal dependensi.

npm install

Jalankan perintah deployment.

forge deploy

Contoh output:

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.

Instal aplikasi.

forge install

Gunakan nilai berikut saat diminta:

  • Pilih produk: Jira
  • Masukkan URL situs: your-domain.atlassian.net

Contoh output:

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

Buka situs JIRA Anda dan buat tugas JIRA baru dengan deskripsi berikut:

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.

Saat membuka tugas, Anda akan melihat tombol "devai-jira-ui-qwiklabs".

Klik tombol dan tinjau perubahan di UI.

a64378e775125654.png

Melihat log backend forge.

forge logs

Konsol Developer Atlassian

Anda juga dapat melihat dan mengelola aplikasi yang di-deploy di Atlassian Developer Console.

10281496d8181597.png

Meninjau log - beralih ke lingkungan Development,

d5c3b1a18dee166e.png

Meninjau manifes dan kode sumber aplikasi Forge

Buka file "devai-jira-ui-qwiklabs/manifest.yml" dan gunakan Gemini Code Assist untuk menjelaskan konfigurasi.

8710dc7cd343a6a4.png

Tinjau penjelasan.

e4c9052a0337527d.png

Buka file berikut dan minta Gemini Code Assist untuk menjelaskannya:

  • devai-jira-ui-qwiklabs/src/frontend/index.jsx
  • devai-jira-ui-qwiklabs/src/resolvers/index.js

3283420f190cda21.png

Memperbarui aplikasi Forge dengan endpoint Cloud Run DevAI API

Periksa apakah GCP PROJECT ID ditetapkan:

gcloud config get project

Jika belum, tetapkan project GCP Anda menggunakan project ID dari halaman lab Qwiklabs:

Contoh: qwiklabs-gcp-00-2c10937585bb

gcloud config set project YOUR_QWIKLABS_PROJECT_ID

Tetapkan URL layanan Cloud Run:

export DEVAI_API_URL=$(gcloud run services list --filter="(devai-api)" --format="value(URL)")

forge variables set DEVAI_API_URL $DEVAI_API_URL

Menetapkan Kunci API DEVAI:

export DEVAI_API_KEY=api-key-that-you-created

forge variables set --encrypt DEVAI_API_KEY $DEVAI_API_KEY

Konfirmasi dengan menjalankan perintah di bawah:

forge variables list

Contoh output

f63a751f0d6211ff.png

Memperbarui manifes dan kode aplikasi Forge

Cuplikan kode ini dapat ditemukan di repo pada folder sample-devai-jira-ui.

Buka file manifes di editor: devai-jira-ui-qwiklabs/manifest.yml

Tambahkan baris di bawah di akhir file - ganti endpoint Cloud Run dengan endpoint yang Anda deploy.

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

Buka file resolver/indeks di editor: devai-jira-ui-qwiklabs/src/resolvers/index.js

Tambahkan baris di bawah setelah fungsi getText yang ada.

resolver.define('getApiKey', (req) => {
 
return process.env.DEVAI_API_KEY;
});

resolver
.define('getDevAIApiUrl', (req) => {
 
return process.env.DEVAI_API_URL;
});

Buka file frontend/index di editor: devai-jira-ui-qwiklabs/src/frontend/index.jsx

Ganti index.jsx dengan konten di bawah. Perbarui link ke userid/repositori GitLab Anda.

Ada dua tempat yang perlu Anda perbarui, yaitu YOUR-GIT-USERID dan YOUR-GIT-REPO.

Telusuri baris ini dalam file dan lakukan perubahan:

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>
);

Men-deploy ulang aplikasi Forge

Tambahkan dependensi dalam file package.json:

"@forge/api": "4.0.0",

Jalankan perintah untuk menginstal dependensi:

npm install

Men-deploy aplikasi yang telah diupdate:

forge deploy

Contoh output:

ℹ 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.

Menginstal aplikasi yang telah diupdate:

forge install --upgrade

ef17c7da9b2962d8.png

Contoh output:

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.

Menguji aplikasi Forge

Buka tugas JIRA yang ada atau buat tugas JIRA baru di project JIRA Anda.

Anda harus menghapus panel sebelumnya jika sudah ditambahkan.

Klik "..." dan pilih hapus dari menu. Setelah itu, Anda dapat mengklik tombol lagi.

460503e8b2014b52.png

Memeriksa komentar Jira

Setelah Anda mendapatkan respons dari DEVAI API, komentar akan ditambahkan pada masalah JIRA.

  • Link permintaan penggabungan GitLab

Beralihlah antara tab "History" dan "Comments" untuk memuat ulang tampilan.

9539d2bd3cbdad28.png

Memverifikasi permintaan penggabungan GitLab

Buka GitLab dan periksa permintaan penggabungan baru di project Anda.

4c2345a89bfe71ee.png

fa3a552923cd70f1.png

Rekaman aktivitas LLM LangSmith

Jika Anda mengonfigurasi pelacakan LLM, buka portal LangSmith dan tinjau pelacakan LLM untuk panggilan pembuatan permintaan penggabungan GitLab.

Contoh trace LLM LangSmith.

1ae0f88ab885f69.png

9. Mengirim perubahan ke repo GitHub

(OPTIONAL SECTION)

Buka situs GitHub dan buat repositori baru untuk mendorong perubahan untuk lab ini ke repositori pribadi Anda.

Kembali ke Konsol Cloud dan tetapkan nama pengguna dan email Git di terminal.

Perbarui nilai sebelum menjalankan perintah.

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

Buat kunci SSH dan tambahkan di repositori GitHub.

Perbarui email Anda sebelum menjalankan perintah.

Jangan memasukkan frasa sandi dan menekan enter beberapa kali untuk menyelesaikan pembuatan kunci.

ssh-keygen -t ed25519 -C "your-email-address"
eval "$(ssh-agent -s)"

ssh
-add ~/.ssh/id_ed25519

cat
~/.ssh/id_ed25519.pub

Tambahkan kunci publik yang dihasilkan ke akun GitHub Anda.

Buka https://github.com/settings/keys, lalu klik "New SSH key".

Untuk nama kunci, gunakan "qwiklabs-key" dan salin/tempel output dari perintah terakhir.

Kembali ke terminal, commit, dan kirim perubahan.

cd ~/genai-for-developers

git remote rm origin

Tetapkan origin jarak jauh menggunakan repositori yang dibuat di atas.

Ganti dengan URL repositori Anda.

git remote add origin git@github.com:YOUR-GITHUB-USERID/YOUR-GITHUB-REPO.git

Tambahkan, commit, dan kirim perubahan.

git add .

git commit
-m "lab changes"

git push
-u origin main

10. Selamat!

Selamat, Anda telah menyelesaikan lab!

Yang telah kita bahas:

  • Cara men-deploy aplikasi Cloud Run untuk berintegrasi dengan Gemini API.
  • Cara membuat dan men-deploy aplikasi Atlassian Forge untuk JIRA.
  • Cara menggunakan Agen ReAct LangChain untuk otomatisasi tugas GitLab.
  • Cara meninjau rekaman aktivitas LLM di LangSmith.

Langkah berikutnya:

  • Sesi langsung lainnya akan segera hadir.

Pembersihan

Agar tidak dikenai biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

Menghapus project

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.

©2024 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.