{"id":31260226,"url":"https://github.com/Clever/microplane","last_synced_at":"2025-09-23T09:02:42.596Z","repository":{"id":37548950,"uuid":"107593080","full_name":"Clever/microplane","owner":"Clever","description":"A CLI tool to make git changes across many repos, especially useful with Microservices.","archived":false,"fork":false,"pushed_at":"2025-09-10T22:26:12.000Z","size":681,"stargazers_count":393,"open_issues_count":25,"forks_count":47,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-09-10T23:41:17.548Z","etag":null,"topics":["cli","git","github","microplane","microservices","repository-management"],"latest_commit_sha":null,"homepage":"https://medium.com/always-a-student/mo-repos-mo-problems-how-we-make-changes-across-many-git-repositories-293ad7d418f0","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Clever.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-10-19T20:07:27.000Z","updated_at":"2025-09-10T22:25:18.000Z","dependencies_parsed_at":"2023-09-25T23:03:27.898Z","dependency_job_id":"7e416856-f69c-491b-bac4-da464f7c1cf7","html_url":"https://github.com/Clever/microplane","commit_stats":{"total_commits":296,"total_committers":40,"mean_commits":7.4,"dds":0.7162162162162162,"last_synced_commit":"ed69e4158c35aade0620cd9d3e044d35184f401c"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/Clever/microplane","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clever%2Fmicroplane","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clever%2Fmicroplane/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clever%2Fmicroplane/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clever%2Fmicroplane/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Clever","download_url":"https://codeload.github.com/Clever/microplane/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clever%2Fmicroplane/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276545777,"owners_count":25661366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-23T02:00:09.130Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","git","github","microplane","microservices","repository-management"],"created_at":"2025-09-23T09:01:21.998Z","updated_at":"2025-09-23T09:02:42.564Z","avatar_url":"https://github.com/Clever.png","language":"Go","readme":"# microplane\n\nA CLI tool to make git changes across many repos.\n\nLearn more about microplane in this [introductory blogpost](https://medium.com/always-a-student/mo-repos-mo-problems-how-we-make-changes-across-many-git-repositories-293ad7d418f0).\n\n![microplane](https://cdn.pixabay.com/photo/2013/07/12/14/16/lemon-148119_640.png)\n\n_\"the lemon is Git{Hub,Lab}\"_\n\n## Setup\n\nHere are several ways to install microplane:\n\n- *Pre-built release* - You can download a pre-built version of Microplane from the [Github releases](https://github.com/Clever/microplane/releases).\n- *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.\n- *Homebrew* - `brew install microplane`. The latest homebrew formula is [here](https://github.com/Homebrew/homebrew-core/blob/master/Formula/m/microplane.rb)\n\n## Usage\n\n### GitHub setup\n\nThe `GITHUB_API_TOKEN` environment variable must be set for Github. This should be a [GitHub Token](https://github.com/settings/tokens) with `repo` scope.\n\nOptional: If you use self-hosted Github, you can specify its URL by passing `--provider-url=\u003cyour URL\u003e` when running `mp init`.\nThis URL should look like: `https://[hostname]`. Don't include path parameters like `/api/v3` or `/api/uploads`.\n\n_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._\n\n### GitLab setup\n\nThe `GITLAB_API_TOKEN` environment variable must be set for Gitlab. This should be a [GitLab access token](https://gitlab.com/profile/personal_access_tokens)\n\nTo use Gitlab, you must specifically pass `--provider=gitlab` when running `mp init`.\n\nOptional: If you use a self-hosted Gitlab, you can specify its URL by passing `--provider-url=\u003cyour URL\u003e` when running `mp init`.\n\n### Using Microplane\n\nMicroplane has an opinionated workflow for how you should manage git changes across many repos.\nTo make a change, use the following series of commands.\n\n1. [Init](docs/mp_init.md) - target the repos you want to change\n2. [Clone](docs/mp_clone.md) - clone the repos you just targeted\n3. [Plan](docs/mp_plan.md) - run a script against each of the repos and preview the diff\n4. [Push](docs/mp_push.md) - commit, push, and open a Pull Request\n5. [Merge](docs/mp_merge.md) - merge the PRs\n\nFor an in-depth example, check out the [introductory blogpost](https://medium.com/always-a-student/mo-repos-mo-problems-how-we-make-changes-across-many-git-repositories-293ad7d418f0).\n\n## Related projects\n\n- https://github.com/Skyscanner/turbolift\n- https://github.com/octoherd/cli\n\n## Development\n\nSee [`Development.md`](./DEVELOPMENT.md).\n","funding_links":[],"categories":["Git Tools"],"sub_categories":["Polyrepo operations tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FClever%2Fmicroplane","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FClever%2Fmicroplane","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FClever%2Fmicroplane/lists"}