Git Operations
Git Operations
Pahami pemisahan repository policy dari eksekusi Git low-level.
app/core/git_ops/Category
Quick Command
consumer -> GitService -> IGitCommandExecutor -> gitBatas layanan​
Consumer memakai GitService untuk operasi repository tingkat tinggi. Service tersebut bergantung pada IGitCommandExecutor, sehingga pemanggilan subprocess dan bentuk hasil berada di satu boundary yang dapat diuji. Factory merakit implementasi aktif dan strategy terpisah menangani generation serta sorting tag.
Dry-Run Boundary
GitCommandExecutor memiliki Runner yang membedakan discovery dari mutation.
Dalam dry-run, operasi yang secara eksplisit ditandai read-only tetap dijalankan
agar caller memperoleh repository history, branches, tags, status, dan remotes
yang sebenarnya. Mutating operations dilaporkan sebagai simulation dan
menghasilkan successful CommandResult dengan skipped state.
Higher layers masih dapat membaca configuration dan project files, menjalankan validation, serta merender preview. Normal diagnostic logging juga dapat menulis ke configured log file. Dry-run adalah mutation boundary, bukan transaction atau rollback mechanism.
Aturan kontribusi
Tambahkan kebijakan repository pada GitService, detail command pada executor, dan
pertahankan typed result serta error context. Hindari subprocess Git langsung dari CLI
atau pipeline step.