Clones a repo, initializes author information, sets up remotes, commits, and pushes. Combines step_setup_push_deploy() with checkout = FALSE and a suitable orphan argument, and step_do_push_deploy().

Deployment usually requires setting up SSH keys with use_tic().

  path = ".",
  branch = NULL,
  remote_url = NULL,
  commit_message = NULL,
  commit_paths = ".",
  force = FALSE



Path to the repository, default "." which means setting up the current repository.


Target branch, default: current branch.


The URL of the remote Git repository to push to, defaults to the current GitHub repository.


Commit message to use, defaults to a useful message linking to the CI build and avoiding recursive CI runs.


Restrict the set of directories and/or files added to Git before deploying. Default: deploy all files.


Add --force flag to git commands?


Setup and deployment are combined in one step, the files to be deployed must be prepared in a previous step. This poses some restrictions on how the repository can be initialized, in particular for a nonstandard path argument only orphan = TRUE can be supported (and will be used).

For more control, create two separate steps with step_setup_push_deploy() and step_do_push_deploy(), and create the files to be deployed in between these steps.

See also


if (FALSE) { dsl_init() get_stage("script") %>% add_step(step_push_deploy(commit_paths = c("NAMESPACE", "man"))) dsl_get() }