Running Pipelines

repos run executes tasks inside each repository listed in your repo list file. It supports both:

Basic Usage

By default, repos run looks for a file called run.sh in each managed repository and executes it:

repos run

In script mode, repos run also runs the dependency setup step by default (repos install-r-deps) before executing scripts. That step only installs dependencies in repositories detected as R projects. Use --skip-deps to disable the setup step. R projects are detected by the presence of either renv.lock or DESCRIPTION.

Options

Flag Description
--script <file> Run a different script (default: run.sh)
-f <file> Use a different list file (default: repos.list)
--include <repos> Comma-separated list of repositories to include
--exclude <repos> Comma-separated list of repositories to skip
--continue-on-error Keep running even if a repository fails
--dry-run Print what would be run without executing anything
--debug Enable debug output to stderr
--debug-file [file] Enable debug output to file (auto-generate temp if no path given)
--ensure-setup Clone repositories before running the pipeline
--skip-deps Skip the default install-r-deps setup step
--verbose Enable verbose logging
--concurrent Run explicit command mode in parallel

In script mode, pipeline targets can be skipped per-line in repos.list with --dont-run:

myorg/backend
myorg/legacy-service --dont-run

repos run also skips Hugging Face dataset/model entries automatically.

# Run a custom script in each repo
repos run --script build.sh

# Only run in specific repos
repos run --include "backend,frontend"

# Skip a repo
repos run --exclude "docs"

# Continue even if one repo fails, then report all results
repos run --continue-on-error

# Preview without running
repos run --dry-run

# Make sure repos are cloned before running
repos run --ensure-setup

# Explicit command mode (runs in each repo)
repos run make test

# Explicit command mode in parallel
repos run --concurrent npm install

Writing a Pipeline Script

Each repository should contain the script that repos run will call. The script receives no arguments by default, but can read environment variables or accept flags if needed. A minimal run.sh:

#!/usr/bin/env bash
set -e

# Install dependencies
Rscript -e "renv::restore()"

# Run analysis
Rscript analysis.R

R and Python APIs

For the R or Python API, see the language-specific wrapper pages:

R package
Python package