package git type Git struct { // Executable is the path to the git executable Executable string // WorkingDir is the path to the working directory WorkingDir string // MainBranch is the name of the main branch MainBranch string } // NewGitInput is the input type for NewGit type NewGitInput struct { // Executable is the path to the git executable Executable string // WorkingDir is the path to the working directory WorkingDir *string // MainBranch is the name of the main branch MainBranch string } // NewGit creates a new Git func NewGit(input *NewGitInput) *Git { git := &Git{ Executable: input.Executable, } if git.Executable == "" { git.Executable = "git" } if git.MainBranch == "" { git.MainBranch = "main" } return git }