import type { GitPushTarget } from '../../shared/worktree/types' import { assertValidGitPushTarget } from '../../shared/git-push-target-validation' import { gitExecFileAsync } from './runner' import type { GitExecOptions as GitCommandExecOptions } from './command-runner/git-exec-options' type GitExecOptions = Pick export async function validateGitPushTarget( repoPath: string, target: unknown, options: GitExecOptions = {} ): Promise { assertValidGitPushTarget(target) await gitExecFileAsync(['check-ref-format', '--branch', target.branchName], { cwd: repoPath, ...options }) return target }