func CreateGitManager()

in cmd/release/utils/git/manager.go [39:63]


func CreateGitManager(releaseBranch, number string, ct changetype.ChangeType) (*Manager, error) {
	if alreadyInit {
		return nil, fmt.Errorf("cannot create more than one GitManager")
	}
	alreadyInit = true

	originalBr, err := showCurrentBranch()
	if err != nil {
		return &Manager{}, err
	}
	version := strings.Replace(releaseBranch, "-", ".", 1)

	newBranch := fmt.Sprintf("%s-%s_%s_%d", version, number, ct, time.Now().Unix())
	if err = checkoutNewBranch(newBranch); err != nil {
		return &Manager{}, fmt.Errorf("checking out new branch %s: %w", newBranch, err)
	}
	log.Printf("Checked out new branch %s off previous branch %s\n", newBranch, originalBr)

	return &Manager{
		ct:             ct,
		version:        version,
		originalBranch: string(originalBr),
		changesBranch:  newBranch,
	}, nil
}