a power tool for batch processing multiple github repositories
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
cli.js
collaborators.md
index.js
package.json
readme.md update readme May 21, 2014

readme.md

multirepo

NPM

a power tool for batch processing multiple github repositories

usage

install and clone all your repos into cwd:

npm install multirepo -g

// clone all new repos. gets all the first time. on subsequent executions will only get new ones
multirepo clone

then later pull all repos that have changed since you first cloned:

multirepo pull
Checking for repos with new pushes since 2014-05-12T10:40:31.037Z
Loading repo metadata from GitHub API (page 1)...
1 repo(s) with new pushes have been found
Pulling repo maxogden/multirepo...
Cloned 0 new repos, skipped 0 existing repos, pulled 1 existing repos.

your github credentials are stored in ~/.config/multirepo-github.json.

the timestamp of your last successful pull/clone is stored in ~/.config/last-multirepo-fetch.txt

clone and pull all new repos since a custom timestamp:

multirepo pull --since 2013-11-28

you can check how many have changed by just running multirepo

clone someone elses repos:

multirepo clone --user substack --since 2014-01-01

bulk updating

If you clone many users' repos into one repositories organized by username, e.g.:

$ ls repositories/
dominictarr
mafintosh
maxogden
raynos
rvagg
substack

then you can put this bash script in your repositories folder and run it to bulk update all of the sub-multirepo folders:

#!/bin/bash

for i in * ; do
  if [ -d "$i" ]; then
    cd $(basename "$i")
    CMD="multirepo clone --pull --user $(basename "$i") --since $(cat ../lastdate.txt)"
    echo $CMD
    $CMD
    cd ..
  fi
done
date +%Y-%m-%d > lastdate.txt