Gimana sih bedanya bikin PR pake cara "instan" vs cara "manual"? Kamu mungkin sering melihat potongan workflow ini di berbagai repositori open source:
name: 📨 Buat Pull Request
if: steps.check_changes.outputs.changes_detected == 'true'
uses: peter-evans/create-pull-request@v6Pertanyaannya: Kenapa perlu pake action third-party ini? GitHub kan punya fitur internal (CLI), masa tidak bisa membuat PR dapat dengan gampang?

Mari kita bandingkan kodenya secara berdampingan untuk mencapai hasil yang sama: Deteksi perubahan, commit, push, dan create PR.
- name: 📨 Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
branch: auto-update
title: 'chore: update assets'
body: 'Otomatis diupdate oleh bot'
labels: automated
reviewers: frijal- name: Manual PR via CLI
run: |
git config user.name "github-actions[bot]"
git config user.email "[email protected]"
git add .
if [[ -n "$(git status --porcelain)" ]]; then
git commit -m "Auto update"
git push origin HEAD:auto-update-manual
gh pr create --title "Update" --body "Otomatis"
else
echo "No changes"
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}GitHub memang tidak punya official built-in action khusus buat one-step PR. Kalau kamu pake cara manual, kamu bakal pusing waktu harus mengecek: "Eh, ini PR-nya udah ada belum ya? Kalau udah ada, jangan bikin baru, tapi timpa yang lama."
Apa jadinya kalau bot ini gagal kerja? Misalnya saat GITHUB_TOKEN kamu kedaluwarsa atau izinnya tiba-tiba dicabut.
Apa yang terjadi? Saat bot mencoba melakukan push atau membuat PR, GitHub API akan menolak permintaan tersebut.
Error: HttpError: Resource not accessible by integrationBerbeda dengan script manual yang mungkin berhenti di tengah jalan dan meninggalkan junk branch, bot peter-evans menangani error secara elegan dengan Atomic Operation: Jika dia gagal di tahap pembuatan PR, dia tidak akan meninggalkan commit yang berantakan atau mencoba membanjiri API dengan request berulang.
Solusi: Jika token kadaluarsa atau error 403 muncul, pastikan bagian permissions: contents: write dan pull-requests: write sudah ada di file YAML kamu.
Gimana menurutmu? Lebih milih nulis script Bash manual atau pake robot yang udah jadi?