microplane
A CLI tool to make git changes across many repos.
Learn more about microplane in this introductory blogpost.
"the lemon is Git{Hub,Lab}"
Setup
Here are several ways to install microplane:
- Pre-built release - You can download a pre-built version of Microplane from the Github releases.
- Compile it yourself - Run
go install github.com/Clever/microplane@latest
. In this case the binary will be installed to$GOPATH/bin/microplane
. Alternately, you can follow the steps under "Development", below. - Homebrew -
brew install microplane
. The latest homebrew formula is here
Usage
GitHub setup
The GITHUB_API_TOKEN
environment variable must be set for Github. This should be a GitHub Token with repo
scope.
Optional: If you use self-hosted Github, you can specify its URL by passing --provider-url=<your URL>
when running mp init
.
This URL should look like: https://[hostname]
. Don't include path parameters like /api/v3
or /api/uploads
.
Self-hosted Github setup with different URLs for the main API and uploads API are not yet supported. If this is a blocker for you, please file an issue or make a PR.
GitLab setup
The GITLAB_API_TOKEN
environment variable must be set for Gitlab. This should be a GitLab access token
To use Gitlab, you must specifically pass --provider=gitlab
when running mp init
.
Optional: If you use a self-hosted Gitlab, you can specify its URL by passing --provider-url=<your URL>
when running mp init
.
Using Microplane
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
- 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.
Related projects
Development
See Development.md
.