1. Ringkasan
Dalam lab ini, Anda akan membangun solusi untuk mengotomatiskan implementasi cerita pengguna JIRA dengan AI generatif.

Yang akan Anda pelajari
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 mengotomatiskan tugas GitLab
Prasyarat
- Di lab ini, Anda dianggap telah memahami Konsol Cloud dan lingkungan Cloud Shell.
2. Penyiapan dan persyaratan
Penyiapan Project Cloud
- 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.



- 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.
- 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 percakapan Gemini.

Atau, ketik "Tanya Gemini" di kotak penelusuran.

Aktifkan Gemini for Google Cloud API:

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

Perintah yang dapat dicoba:
- Jelaskan Cloud Run dalam 5 poin utama.
- Anda adalah Product Manager Google Cloud Run, jelaskan Cloud Run kepada siswa dalam 5 poin utama singkat.
- Anda adalah Product Manager Google Cloud Run, jelaskan Cloud Run kepada Certified Kubernetes Developer dalam 5 poin utama singkat.
- Anda adalah Product Manager Google Cloud Run, jelaskan kapan Anda akan menggunakan Cloud Run versus GKE kepada Senior Developer dalam 5 poin utama 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 kirim 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 dasar di Gemini.
Data program yang dibuat dari Gemini
Gemini dilatih dengan kode Google Cloud pihak pertama serta kode pihak ketiga tertentu. Anda bertanggung jawab atas keamanan, pengujian, dan efektivitas kode Anda, termasuk penyelesaian, pembuatan, atau analisis kode apa pun 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 teknik perintah dan Gemini API.
- Aplikasi Web Gemini (gemini.google.com)
Aplikasi web Google Gemini (gemini.google.com) adalah alat berbasis web yang dirancang untuk membantu Anda menjelajahi dan memanfaatkan kecanggihan model AI Gemini Google.
- Aplikasi seluler Google Gemini untuk Android dan aplikasi Google di iOS
4. Tinjau aplikasi
Buat Akun Layanan
Kembali ke Konsol Google Cloud dan aktifkan Cloud Shell dengan mengklik ikon di sebelah kanan kotak penelusuran.

Di terminal yang terbuka, jalankan perintah berikut untuk membuat akun layanan dan kunci baru.
Anda akan menggunakan akun layanan ini untuk melakukan panggilan API ke Vertex AI Gemini API dari aplikasi Cloud Run.
Konfigurasi 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"
Memberikan 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 "Beri otorisasi" untuk melanjutkan.

Aktifkan layanan yang diperlukan untuk menggunakan Vertex AI API dan Gemini chat.
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 Gemini chat.
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
Buat clone repositori GitHub.
git clone https://github.com/GoogleCloudPlatform/genai-for-developers.git
Buka Cloud Shell Editor

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.

Tinjau penjelasan Gemini untuk file yang dipilih.

5. Konfigurasi Repositori dan Toolkit GitLab
Dalam lab ini, Anda akan menggunakan GitLabToolkit untuk mengotomatiskan pembuatan permintaan penggabungan GitLab.
Ringkasan Toolkit LangChain
Toolkit LangChain adalah sekumpulan 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: Akses dan gabungkan 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 kompleks dengan mudah dan kelola secara efisien.
- Evaluasi dan pemantauan: Menganalisis performa aplikasi dan rantai LangChain Anda.
Beberapa Toolkit LangChain yang populer meliputi:
- Toolkit Agent Executor: Alat untuk mengembangkan agen yang dapat berinteraksi dengan dunia nyata melalui tindakan seperti penjelajahan web atau eksekusi kode.
- Toolkit Rekayasa Perintah: Kumpulan referensi untuk membuat perintah yang efektif.
Ringkasan GitLab Toolkit
Gitlab toolkit berisi alat yang memungkinkan agen LLM berinteraksi dengan repositori gitlab. Alat ini adalah wrapper untuk library python-gitlab.
Toolkit GitLab dapat melakukan tugas berikut:
- Buat File - membuat file baru di repositori.
- Read File - membaca file dari repositori.
- Update File - memperbarui file di repositori.
- Buat Permintaan Pull - membuat permintaan pull dari branch kerja bot ke branch dasar.
- Get Issues - mengambil masalah dari repositori.
- Get Issue - mengambil detail tentang masalah tertentu.
- Comment on Issue - memposting komentar pada masalah tertentu.
- Delete File - menghapus file dari repositori.
Penyiapan Project GitLab
Buka GitLab, buat project baru, dan siapkan Project Access Token di bagian "Settings / Access Tokens".
Gunakan detail berikut:
- Nama token:
devai-api-qwiklabs - Peran:
Maintainer - Pilih cakupan:
api

Salin dan tempel nilai Token Akses ke file sementara di laptop Anda. Nilai ini akan digunakan pada langkah berikutnya.
6. Mempersiapkan deployment aplikasi di Cloud Run
Kembali ke Cloud Shell Editor dan gunakan terminal yang ada atau buka terminal baru.

Konfigurasi 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 pemaparan informasi sensitif di terminal, praktik terbaiknya adalah menggunakan read -s GITLAB_PERSONAL_ACCESS_TOKEN. Cara ini adalah cara yang aman untuk menyetel 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 nama repositori dan ID pengguna GitLab Anda.
Contoh: export GITLAB_REPOSITORY="gitrey/qwiklabs-test"

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 Settings. 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 dalam lab ini, jadi Anda tidak perlu memperbaruinya ke nilai project JIRA spesifik Anda 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 tepat.
cd ~/genai-for-developers/devai-api
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.

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, perintah tunggal yang dijelaskan di atas melakukan apa yang sebaliknya memerlukan perintah gcloud builds submit dan gcloud run deploy.
Jika Anda telah menyediakan Dockerfile(yang kita lakukan di repositori ini), Cloud Build akan menggunakannya untuk membangun image container, bukan mengandalkan buildpack untuk mendeteksi dan membangun 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.

Instal Forge CLI
Instal Forge CLI secara global dengan menjalankan:
npm install -g @forge/cli
Untuk lab ini, kita akan menggunakan variabel lingkungan untuk login.

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
, lalu pilih
. Setelah itu, pilih "JIRA Software" - "Try it now". Ikuti petunjuk untuk menyelesaikan pembuatan project/situs.

Pilih JIRA Software.

Membuat project baru.

Membuat token API Atlassian
Buat atau gunakan token Atlassian API yang sudah ada untuk login ke CLI.
CLI menggunakan token Anda saat menjalankan perintah.
- Buka https://id.atlassian.com/manage/api-tokens.
- Klik Create API token.
- Masukkan label untuk mendeskripsikan token API Anda. Misalnya, forge-api-token.
- Klik Buat.
- Klik Salin ke papan klip, lalu 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.
Setel alamat email JIRA/FORGE Anda. Ganti dengan alamat email Anda.
export FORGE_EMAIL=your-email
Setel token API Forge. Ganti dengan token API JIRA 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

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.

Melihat log backend forge.
forge logs
Konsol Developer Atlassian
Anda juga dapat melihat dan mengelola aplikasi yang di-deploy di Konsol Developer Atlassian.

Tinjau log - beralih ke lingkungan Development,

Meninjau manifes aplikasi Forge dan kode sumber
Buka file "devai-jira-ui-qwiklabs/manifest.yml" dan gunakan Gemini Code Assist untuk menjelaskan konfigurasi.

Tinjau penjelasan.

Buka file berikut dan minta Gemini Code Assist untuk menjelaskannya:
devai-jira-ui-qwiklabs/src/frontend/index.jsxdevai-jira-ui-qwiklabs/src/resolvers/index.js

Memperbarui aplikasi Forge dengan endpoint Cloud Run DevAI API
Periksa apakah PROJECT ID GCP sudah ditetapkan:
gcloud config get project
Jika tidak, tetapkan project GCP Anda menggunakan project ID dari halaman lab Qwiklabs:
Contoh: qwiklabs-gcp-00-2c10937585bb
gcloud config set project YOUR_QWIKLABS_PROJECT_ID
Setel 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
Tetapkan 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

Memperbarui manifes dan kode aplikasi Forge
Cuplikan kode ini dapat ditemukan di repo dalam folder sample-devai-jira-ui.
Buka file manifes di editor: devai-jira-ui-qwiklabs/manifest.yml
Tambahkan baris di bawah di bagian 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 resolvers/index 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 repositori/ID pengguna GitLab Anda.
Ada dua tempat tempat Anda perlu memperbarui YOUR-GIT-USERID dan YOUR-GIT-REPO.
Cari 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
Deploy aplikasi yang 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.
Instal aplikasi yang diupdate:
forge install --upgrade

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.

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

Verifikasi permintaan penggabungan GitLab
Buka GitLab dan periksa permintaan penggabungan baru di project Anda.


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

9. Kirim perubahan Anda ke repositori GitHub
(BAGIAN OPSIONAL)
Buka situs GitHub dan buat repositori baru untuk mengirim perubahan 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 dibuat 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, lakukan 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 ini.
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 praktik lainnya akan segera hadir.
Pembersihan
Agar tidak menimbulkan 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.