PLUGIN-PROGRESS-EVENTS.md

June 25, 2022 ยท View on GitHub

Progress Events

To receive progress updates, pass a progress configuration option to the simpleGit instance:

import { simpleGit, SimpleGit, SimpleGitProgressEvent } from 'simple-git';

const progress = ({method, stage, progress}: SimpleGitProgressEvent) => {
   console.log(`git.${method} ${stage} stage ${progress}% complete`);
}
const git: SimpleGit = simpleGit({baseDir: '/some/path', progress});

// pull automatically triggers progress events when the progress plugin is configured
await git.pull();

// supply the `--progress` option to any other command that supports it to receive
// progress events into your handler
await git.raw('pull', '--progress');

The checkout, clone, 'fetch, pull, push methods will automatically enable progress events when a progress handler has been set. For any other method that can support progress events, set --progress in the task's TaskOptions for example to receive progress events when running submodule tasks:

await git.submoduleUpdate('submodule-name', { '--progress': null });
await git.submoduleUpdate('submodule-name', ['--progress']);