Running Pipelines
repos run executes tasks inside each repository listed in your repo list file. It supports both:
- Script mode (default): run
run.shor another script across repos - Explicit command mode: run a command (and args) in each repo
Basic Usage
By default, repos run looks for a file called run.sh in each managed repository and executes it:
repos runIn 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 installWriting 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.RR and Python APIs
For the R or Python API, see the language-specific wrapper pages: