Claude Code GitLab CI/CD
Pelajari tentang mengintegrasikan Claude Code ke dalam alur kerja pengembangan Anda dengan GitLab CI/CD
Claude Code untuk GitLab CI/CD saat ini dalam versi beta. Fitur dan fungsionalitas mungkin berkembang seiring kami menyempurnakan pengalaman.
Integrasi ini dikelola oleh GitLab. Untuk dukungan, lihat GitLab issue berikut.
Integrasi ini dibangun di atas Claude Code CLI dan SDK, memungkinkan penggunaan Claude secara programatis dalam pekerjaan CI/CD dan alur kerja otomasi kustom Anda.
Mengapa menggunakan Claude Code dengan GitLab?
- Pembuatan MR instan: Jelaskan apa yang Anda butuhkan, dan Claude mengusulkan MR lengkap dengan perubahan dan penjelasan
- Implementasi otomatis: Ubah isu menjadi kode yang berfungsi dengan satu perintah atau penyebutan
- Sadar proyek: Claude mengikuti pedoman
CLAUDE.md
Anda dan pola kode yang ada - Pengaturan sederhana: Tambahkan satu pekerjaan ke
.gitlab-ci.yml
dan variabel CI/CD yang disamarkan - Siap enterprise: Pilih Anthropic API, AWS Bedrock, atau Google Vertex AI untuk memenuhi kebutuhan residensi data dan pengadaan
- Aman secara default: Berjalan di GitLab runner Anda dengan perlindungan cabang dan persetujuan Anda
Cara kerjanya
Claude Code menggunakan GitLab CI/CD untuk menjalankan tugas AI dalam pekerjaan terisolasi dan mengirimkan hasil kembali melalui MR:
-
Orkestrasi berbasis peristiwa: GitLab mendengarkan pemicu yang Anda pilih (misalnya, komentar yang menyebutkan
@claude
dalam isu, MR, atau thread review). Pekerjaan mengumpulkan konteks dari thread dan repositori, membangun prompt dari input tersebut, dan menjalankan Claude Code. -
Abstraksi penyedia: Gunakan penyedia yang sesuai dengan lingkungan Anda:
- Anthropic API (SaaS)
- AWS Bedrock (akses berbasis IAM, opsi lintas wilayah)
- Google Vertex AI (GCP-native, Workload Identity Federation)
-
Eksekusi sandbox: Setiap interaksi berjalan dalam kontainer dengan aturan jaringan dan sistem file yang ketat. Claude Code menerapkan izin terbatas ruang kerja untuk membatasi penulisan. Setiap perubahan mengalir melalui MR sehingga reviewer melihat diff dan persetujuan tetap berlaku.
Pilih endpoint regional untuk mengurangi latensi dan memenuhi persyaratan kedaulatan data sambil menggunakan perjanjian cloud yang ada.
Apa yang bisa dilakukan Claude?
Claude Code memungkinkan alur kerja CI/CD yang kuat yang mengubah cara Anda bekerja dengan kode:
- Membuat dan memperbarui MR dari deskripsi isu atau komentar
- Menganalisis regresi kinerja dan mengusulkan optimisasi
- Mengimplementasikan fitur langsung di cabang, kemudian membuka MR
- Memperbaiki bug dan regresi yang diidentifikasi oleh tes atau komentar
- Merespons komentar lanjutan untuk mengulangi perubahan yang diminta
Pengaturan
Pengaturan cepat
Cara tercepat untuk memulai adalah menambahkan pekerjaan minimal ke .gitlab-ci.yml
Anda dan mengatur kunci API Anda sebagai variabel yang disamarkan.
-
Tambahkan variabel CI/CD yang disamarkan
- Pergi ke Settings → CI/CD → Variables
- Tambahkan
ANTHROPIC_API_KEY
(disamarkan, dilindungi sesuai kebutuhan)
-
Tambahkan pekerjaan Claude ke
.gitlab-ci.yml
Setelah menambahkan pekerjaan dan variabel ANTHROPIC_API_KEY
Anda, uji dengan menjalankan pekerjaan secara manual dari CI/CD → Pipelines, atau picu dari MR untuk membiarkan Claude mengusulkan pembaruan di cabang dan membuka MR jika diperlukan.
Untuk menjalankan di AWS Bedrock atau Google Vertex AI alih-alih Anthropic API, lihat bagian Menggunakan dengan AWS Bedrock & Google Vertex AI di bawah untuk autentikasi dan pengaturan lingkungan.
Pengaturan manual (direkomendasikan untuk produksi)
Jika Anda lebih suka pengaturan yang lebih terkontrol atau membutuhkan penyedia enterprise:
-
Konfigurasi akses penyedia:
- Anthropic API: Buat dan simpan
ANTHROPIC_API_KEY
sebagai variabel CI/CD yang disamarkan - AWS Bedrock: Konfigurasi GitLab → AWS OIDC dan buat peran IAM untuk Bedrock
- Google Vertex AI: Konfigurasi Workload Identity Federation untuk GitLab → GCP
- Anthropic API: Buat dan simpan
-
Tambahkan kredensial proyek untuk operasi GitLab API:
- Gunakan
CI_JOB_TOKEN
secara default, atau buat Project Access Token dengan cakupanapi
- Simpan sebagai
GITLAB_ACCESS_TOKEN
(disamarkan) jika menggunakan PAT
- Gunakan
-
Tambahkan pekerjaan Claude ke
.gitlab-ci.yml
(lihat contoh di bawah) -
(Opsional) Aktifkan pemicu berbasis penyebutan:
- Tambahkan webhook proyek untuk “Comments (notes)” ke event listener Anda (jika Anda menggunakannya)
- Minta listener memanggil API pemicu pipeline dengan variabel seperti
AI_FLOW_INPUT
danAI_FLOW_CONTEXT
ketika komentar berisi@claude
Contoh kasus penggunaan
Ubah isu menjadi MR
Dalam komentar isu:
Claude menganalisis isu dan basis kode, menulis perubahan di cabang, dan membuka MR untuk review.
Dapatkan bantuan implementasi
Dalam diskusi MR:
Claude mengusulkan perubahan, menambahkan kode dengan caching yang sesuai, dan memperbarui MR.
Perbaiki bug dengan cepat
Dalam komentar isu atau MR:
Claude menemukan bug, mengimplementasikan perbaikan, dan memperbarui cabang atau membuka MR baru.
Menggunakan dengan AWS Bedrock & Google Vertex AI
Untuk lingkungan enterprise, Anda dapat menjalankan Claude Code sepenuhnya di infrastruktur cloud Anda dengan pengalaman developer yang sama.
Prasyarat
Sebelum mengatur Claude Code dengan AWS Bedrock, Anda memerlukan:
- Akun AWS dengan akses Amazon Bedrock ke model Claude yang diinginkan
- GitLab dikonfigurasi sebagai penyedia identitas OIDC di AWS IAM
- Peran IAM dengan izin Bedrock dan kebijakan kepercayaan yang dibatasi pada proyek/ref GitLab Anda
- Variabel CI/CD GitLab untuk asumsi peran:
AWS_ROLE_TO_ASSUME
(ARN peran)AWS_REGION
(wilayah Bedrock)
Instruksi pengaturan
Konfigurasi AWS untuk memungkinkan pekerjaan CI GitLab mengasumsikan peran IAM melalui OIDC (tanpa kunci statis).
Pengaturan yang diperlukan:
- Aktifkan Amazon Bedrock dan minta akses ke model Claude target Anda
- Buat penyedia OIDC IAM untuk GitLab jika belum ada
- Buat peran IAM yang dipercaya oleh penyedia OIDC GitLab, dibatasi pada proyek dan ref yang dilindungi Anda
- Lampirkan izin privilege-minimum untuk API invoke Bedrock
Nilai yang diperlukan untuk disimpan dalam variabel CI/CD:
AWS_ROLE_TO_ASSUME
AWS_REGION
Tambahkan variabel di Settings → CI/CD → Variables:
Gunakan contoh pekerjaan AWS Bedrock di atas untuk menukar token pekerjaan GitLab dengan kredensial AWS sementara saat runtime.
Prasyarat
Sebelum mengatur Claude Code dengan AWS Bedrock, Anda memerlukan:
- Akun AWS dengan akses Amazon Bedrock ke model Claude yang diinginkan
- GitLab dikonfigurasi sebagai penyedia identitas OIDC di AWS IAM
- Peran IAM dengan izin Bedrock dan kebijakan kepercayaan yang dibatasi pada proyek/ref GitLab Anda
- Variabel CI/CD GitLab untuk asumsi peran:
AWS_ROLE_TO_ASSUME
(ARN peran)AWS_REGION
(wilayah Bedrock)
Instruksi pengaturan
Konfigurasi AWS untuk memungkinkan pekerjaan CI GitLab mengasumsikan peran IAM melalui OIDC (tanpa kunci statis).
Pengaturan yang diperlukan:
- Aktifkan Amazon Bedrock dan minta akses ke model Claude target Anda
- Buat penyedia OIDC IAM untuk GitLab jika belum ada
- Buat peran IAM yang dipercaya oleh penyedia OIDC GitLab, dibatasi pada proyek dan ref yang dilindungi Anda
- Lampirkan izin privilege-minimum untuk API invoke Bedrock
Nilai yang diperlukan untuk disimpan dalam variabel CI/CD:
AWS_ROLE_TO_ASSUME
AWS_REGION
Tambahkan variabel di Settings → CI/CD → Variables:
Gunakan contoh pekerjaan AWS Bedrock di atas untuk menukar token pekerjaan GitLab dengan kredensial AWS sementara saat runtime.
Prasyarat
Sebelum mengatur Claude Code dengan Google Vertex AI, Anda memerlukan:
- Proyek Google Cloud dengan:
- API Vertex AI diaktifkan
- Workload Identity Federation dikonfigurasi untuk mempercayai OIDC GitLab
- Akun layanan khusus dengan hanya peran Vertex AI yang diperlukan
- Variabel CI/CD GitLab untuk WIF:
GCP_WORKLOAD_IDENTITY_PROVIDER
(nama sumber daya lengkap)GCP_SERVICE_ACCOUNT
(email akun layanan)
Instruksi pengaturan
Konfigurasi Google Cloud untuk memungkinkan pekerjaan CI GitLab meniru akun layanan melalui Workload Identity Federation.
Pengaturan yang diperlukan:
- Aktifkan API IAM Credentials, API STS, dan API Vertex AI
- Buat Workload Identity Pool dan penyedia untuk OIDC GitLab
- Buat akun layanan khusus dengan peran Vertex AI
- Berikan izin principal WIF untuk meniru akun layanan
Nilai yang diperlukan untuk disimpan dalam variabel CI/CD:
GCP_WORKLOAD_IDENTITY_PROVIDER
GCP_SERVICE_ACCOUNT
Tambahkan variabel di Settings → CI/CD → Variables:
Gunakan contoh pekerjaan Google Vertex AI di atas untuk autentikasi tanpa menyimpan kunci.
Contoh konfigurasi
Di bawah ini adalah cuplikan siap pakai yang dapat Anda sesuaikan dengan pipeline Anda.
.gitlab-ci.yml dasar (Anthropic API)
Contoh pekerjaan AWS Bedrock (OIDC)
Prasyarat:
- Amazon Bedrock diaktifkan dengan akses ke model Claude pilihan Anda
- GitLab OIDC dikonfigurasi di AWS dengan peran yang mempercayai proyek dan ref GitLab Anda
- Peran IAM dengan izin Bedrock (privilege minimum direkomendasikan)
Variabel CI/CD yang diperlukan:
AWS_ROLE_TO_ASSUME
: ARN peran IAM untuk akses BedrockAWS_REGION
: Wilayah Bedrock (misalnya,us-west-2
)
ID model untuk Bedrock termasuk awalan khusus wilayah dan akhiran versi (misalnya, us.anthropic.claude-3-7-sonnet-20250219-v1:0
). Berikan model yang diinginkan melalui konfigurasi pekerjaan atau prompt Anda jika alur kerja Anda mendukungnya.
Contoh pekerjaan Google Vertex AI (Workload Identity Federation)
Prasyarat:
- API Vertex AI diaktifkan di proyek GCP Anda
- Workload Identity Federation dikonfigurasi untuk mempercayai OIDC GitLab
- Akun layanan dengan izin Vertex AI
Variabel CI/CD yang diperlukan:
GCP_WORKLOAD_IDENTITY_PROVIDER
: Nama sumber daya penyedia lengkapGCP_SERVICE_ACCOUNT
: Email akun layananCLOUD_ML_REGION
: Wilayah Vertex (misalnya,us-east5
)
Dengan Workload Identity Federation, Anda tidak perlu menyimpan kunci akun layanan. Gunakan kondisi kepercayaan khusus repositori dan akun layanan privilege minimum.
Praktik terbaik
Konfigurasi CLAUDE.md
Buat file CLAUDE.md
di root repositori untuk mendefinisikan standar coding, kriteria review, dan aturan khusus proyek. Claude membaca file ini selama menjalankan dan mengikuti konvensi Anda saat mengusulkan perubahan.
Pertimbangan keamanan
Jangan pernah commit kunci API atau kredensial cloud ke repositori Anda! Selalu gunakan variabel CI/CD GitLab:
- Tambahkan
ANTHROPIC_API_KEY
sebagai variabel yang disamarkan (dan lindungi jika diperlukan) - Gunakan OIDC khusus penyedia jika memungkinkan (tanpa kunci berumur panjang)
- Batasi izin pekerjaan dan egress jaringan
- Review MR Claude seperti kontributor lainnya
Mengoptimalkan kinerja
- Jaga
CLAUDE.md
tetap fokus dan ringkas - Berikan deskripsi isu/MR yang jelas untuk mengurangi iterasi
- Konfigurasi timeout pekerjaan yang masuk akal untuk menghindari run yang tidak terkendali
- Cache instalasi npm dan paket di runner jika memungkinkan
Biaya CI
Saat menggunakan Claude Code dengan GitLab CI/CD, waspadai biaya terkait:
-
Waktu GitLab Runner:
- Claude berjalan di GitLab runner Anda dan mengonsumsi menit komputasi
- Lihat penagihan runner rencana GitLab Anda untuk detail
-
Biaya API:
- Setiap interaksi Claude mengonsumsi token berdasarkan ukuran prompt dan respons
- Penggunaan token bervariasi berdasarkan kompleksitas tugas dan ukuran basis kode
- Lihat harga Anthropic untuk detail
-
Tips optimisasi biaya:
- Gunakan perintah
@claude
spesifik untuk mengurangi giliran yang tidak perlu - Atur nilai
max_turns
dan timeout pekerjaan yang sesuai - Batasi konkurensi untuk mengontrol run paralel
- Gunakan perintah
Keamanan dan tata kelola
- Setiap pekerjaan berjalan dalam kontainer terisolasi dengan akses jaringan terbatas
- Perubahan Claude mengalir melalui MR sehingga reviewer melihat setiap diff
- Aturan perlindungan cabang dan persetujuan berlaku untuk kode yang dihasilkan AI
- Claude Code menggunakan izin terbatas ruang kerja untuk membatasi penulisan
- Biaya tetap dalam kendali Anda karena Anda membawa kredensial penyedia sendiri
Pemecahan masalah
Claude tidak merespons perintah @claude
- Verifikasi pipeline Anda dipicu (manual, peristiwa MR, atau melalui event listener/webhook catatan)
- Pastikan variabel CI/CD (
ANTHROPIC_API_KEY
atau pengaturan penyedia cloud) ada dan tidak disamarkan -Periksa bahwa komentar berisi@claude
(bukan/claude
) dan pemicu penyebutan Anda dikonfigurasi
Pekerjaan tidak dapat menulis komentar atau membuka MR
- Pastikan
CI_JOB_TOKEN
memiliki izin yang cukup untuk proyek, atau gunakan Project Access Token dengan cakupanapi
- Periksa alat
mcp__gitlab
diaktifkan di--allowedTools
- Konfirmasi pekerjaan berjalan dalam konteks MR atau memiliki konteks yang cukup melalui variabel
AI_FLOW_*
Kesalahan autentikasi
- Untuk Anthropic API: Konfirmasi
ANTHROPIC_API_KEY
valid dan belum kedaluwarsa - Untuk Bedrock/Vertex: Verifikasi konfigurasi OIDC/WIF, peniruan peran, dan nama rahasia; konfirmasi ketersediaan wilayah dan model
Konfigurasi lanjutan
Parameter dan variabel umum
Claude Code mendukung input yang umum digunakan ini:
prompt
/prompt_file
: Berikan instruksi inline (-p
) atau melalui filemax_turns
: Batasi jumlah iterasi bolak-baliktimeout_minutes
: Batasi total waktu eksekusiANTHROPIC_API_KEY
: Diperlukan untuk Anthropic API (tidak digunakan untuk Bedrock/Vertex)- Lingkungan khusus penyedia:
AWS_REGION
, variabel proyek/wilayah untuk Vertex
Flag dan parameter yang tepat mungkin bervariasi berdasarkan versi @anthropic-ai/claude-code
. Jalankan claude --help
dalam pekerjaan Anda untuk melihat opsi yang didukung.
Menyesuaikan perilaku Claude
Anda dapat memandu Claude dengan dua cara utama:
- CLAUDE.md: Definisikan standar coding, persyaratan keamanan, dan konvensi proyek. Claude membaca ini selama menjalankan dan mengikuti aturan Anda.
- Prompt kustom: Berikan instruksi khusus tugas melalui
prompt
/prompt_file
dalam pekerjaan. Gunakan prompt yang berbeda untuk pekerjaan yang berbeda (misalnya, review, implementasi, refactor).