{"id":27786314,"url":"https://github.com/clever/microplane","last_synced_at":"2025-05-15T14:05:43.048Z","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-05-08T16:16:52.000Z","size":702,"stargazers_count":389,"open_issues_count":24,"forks_count":46,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-05-08T17:30:14.582Z","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}},"created_at":"2017-10-19T20:07:27.000Z","updated_at":"2025-05-08T16:16:50.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,"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","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254355334,"owners_count":22057354,"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","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-04-30T15:59:30.738Z","updated_at":"2025-05-15T14:05:38.037Z","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":[],"sub_categories":[],"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"}