# All files / src/git clone.ts

25% Statements 1/4
100% Branches 0/0
0% Functions 0/1
25% Lines 1/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25

    20x

     /**
     * Git Clone Utility
     *
     * Clones a git repository to a local path.
     * Used when registering projects to create the base clone
     * from which worktrees are later created.
     */

    import { simpleGit } from 'simple-git';
    import { createModuleLogger } from '../logger/index.js';

    const log = createModuleLogger('git');

    /**
     * Clone a git repository to a destination path.
     *
     * @param url - Remote repository URL
     * @param destPath - Local filesystem path for the clone
     */
    export async function cloneProject(url: string, destPath: string): Promise<void> {
      const git = simpleGit();
      log.info({ url, destPath }, 'cloning project');
      await git.clone(url, destPath);
    }