Lewati ke konten utama

Git Operations

Git Operations

Shared Service

Pahami pemisahan repository policy dari eksekusi Git low-level.

Commandapp/core/git_ops/

Category

Arsitektur

Quick Command

consumer -> GitService -> IGitCommandExecutor -> git

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