[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"\u002Fid\u002Fdocs\u002Fintegrations\u002Fgithub-gitlab":3},{"id":4,"title":5,"body":6,"description":109,"extension":110,"meta":111,"navigation":112,"path":113,"seo":114,"stem":115,"__hash__":116},"docs\u002Fid\u002Fdocs\u002Fintegrations\u002Fgithub-gitlab.md","GitHub \u002F GitLab",{"type":7,"value":8,"toc":102},"minimark",[9,13,18,21,54,69,73,82,95,99],[10,11,12],"p",{},"Linear dan Jira adalah sumber trigger; GitHub atau GitLab adalah tempat PR akhirnya\ndibuka. Integrasi ini beda sifatnya dari webhook tracker — orchestrator butuh kredensial\ndengan akses tulis ke repo, bukan sekadar menerima notifikasi.",[14,15,17],"h2",{"id":16},"kredensial-yang-dibutuhkan","Kredensial yang dibutuhkan",[10,19,20],{},"Buat token dengan scope minimal yang diperlukan untuk push branch dan membuka PR:",[22,23,24,41],"ul",{},[25,26,27,31,32,36,37,40],"li",{},[28,29,30],"strong",{},"GitHub",": fine-grained personal access token dengan scope ",[33,34,35],"code",{},"Contents: Read and write","\ndan ",[33,38,39],{},"Pull requests: Read and write",", terbatas ke repo yang relevan",[25,42,43,46,47,50,51],{},[28,44,45],{},"GitLab",": project access token dengan scope ",[33,48,49],{},"write_repository"," dan ",[33,52,53],{},"api",[10,55,56,57,60,61,64,65,68],{},"Simpan sebagai ",[33,58,59],{},"GITHUB_TOKEN"," atau ",[33,62,63],{},"GITLAB_TOKEN"," di ",[33,66,67],{},".env"," orchestrator, sesuai yang\nkamu pakai.",[14,70,72],{"id":71},"apa-yang-dilakukan-orchestrator-dengan-token-ini","Apa yang dilakukan orchestrator dengan token ini",[10,74,75,76,81],{},"Setelah fase Implement selesai dan lolos ",[77,78,80],"a",{"href":79},"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-4","Layer 4: Quality Gates",",\norchestrator memakai token ini untuk:",[83,84,85,88],"ol",{},[25,86,87],{},"Push branch berisi perubahan dari fase Implement",[25,89,90,91],{},"Membuka pull request, dengan deskripsi yang merangkum artifact dari\n",[77,92,94],{"href":93},"\u002Fid\u002Fdocs\u002Fcore-concepts\u002Flayer-3","Layer 3: Artifact Handoff",[14,96,98],{"id":97},"orchestrator-tidak-pernah-merge-pr","Orchestrator tidak pernah merge PR",[10,100,101],{},"Token ini sengaja tidak diberi scope untuk merge otomatis. Setelah PR dibuka, keputusan\nmerge tetap lewat proses review normal di GitHub\u002FGitLab — disarankan tetap mengaktifkan\nbranch protection rules di repo kamu supaya kebijakan \"tidak ada auto-merge\" CAF juga\nditegakkan di level platform, bukan cuma di level orchestrator.",{"title":103,"searchDepth":104,"depth":104,"links":105},"",2,[106,107,108],{"id":16,"depth":104,"text":17},{"id":71,"depth":104,"text":72},{"id":97,"depth":104,"text":98},"Kredensial yang dibutuhkan CAF Orchestrator untuk membuka PR setelah checkpoint review lolos.","md",{},true,"\u002Fid\u002Fdocs\u002Fintegrations\u002Fgithub-gitlab",{"title":5,"description":109},"id\u002Fdocs\u002Fintegrations\u002Fgithub-gitlab","JqLaS5_3CK5Cq6AIcCkmE1Mphc0CDG7HY02MtRh7wAU",1787621084182]