Git operations
clone
git.clone(repository, callback)
Clones repository to temporary directory. You will get location where repository is cloned to in console output.
Supports:
- shallow clone
- multiple repositories
- custom branch
callback
import { git } from '@codemod.com/workflow'
await git.clone('repository-to-clone', async ({ files, exec, commit, push }) => {
await exec('pnpm', ['install'])
// do something inside repository
await files()
.jsFam()
.astGrep('console.log($$$A)')
.replace('console.error($$$A)')
await exec('pnpm', ['lint'])
.exec('pnpm', ['test'])
await commit('Changed console.log to console.error')
await push()
})
Parameters
repository
string | CloneOptions | (string | CloneOptions)[]
requiredinterface CloneOptions {
repository: string
/**
* @default true
*/
shallow?: boolean
/**
* Overrides branch to clone
*/
branch?: string
}
Can be a repository or array of repositories which you need to clone.
By default shallow cloning is performed with --depth 1 --single-branch
. You can specify branch
to clone specific (not default branch).
If you want to disable shallow clone, you can provide it with extended configuration.
callback
(subcommands: Subcommands) => Promise<void> | void
A callback which will be executed for each repository. First argument is an object with subcommands. It can be destructured to get access to subcommands.
Returns
Was this page helpful?