A CLI tool to make git changes across many repos, especially useful with Microservices. You can learn more about microplane in this introductory blogpost.
"the lemon is Github"
You can download a pre-built version of Microplane from the Github releases.
Microplane is a Golang project. It uses
dep for vendoring.
First, clone the repo into your
GOPATH. Next, run
make install_deps (this calls
dep). To build, run
make build. You should now have a working build of Microplane in
GITHUB_API_TOKEN environment variable must be set.
This should be a Github Token with
Microplane has an opinionated workflow for how you should manage git changes across many repos. To make a change, use the following series of commands.
- Init - target the repos you want to change using a Github "Advanced Search" Query
- Clone - clone the repos you just targeted
- Plan - run a script against each of the repos and preview the diff
- Push - commit, push, and open a Pull Request
- Merge - merge the PRs
For an in-depth example, check out the introductory blogpost.
Microplane parallelizes various git commands and API calls.
At each step in the Microplane workflow, a repo only moves forward if the previous step for that repo was successful.
We persist the progress of a Microplane run in the following local file structure.
mp/ init.json repo1/ clone/ clone.json <git-repo> plan/ plan.json <git-repo-with-commit> push/ push.json merge/ merge.json repo2/ ...