All Projects → Clever → Microplane

Clever / Microplane

Licence: apache-2.0
A CLI tool to make git changes across many repos, especially useful with Microservices.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Microplane

Micromanage
A Micro-services Helpers Framework | Easily manage multiple repositories and projects
Stars: ✭ 93 (-39.61%)
Mutual labels:  microservices, repository-management
Protodep
Collect necessary .proto files (Protocol Buffers IDL) and manage dependencies
Stars: ✭ 167 (+8.44%)
Mutual labels:  microservices, cli
Fgh
📁 Automate the lifecycle and organization of your cloned GitHub repositories
Stars: ✭ 107 (-30.52%)
Mutual labels:  cli, repository-management
Bosco
A microservice helper
Stars: ✭ 63 (-59.09%)
Mutual labels:  microservices, cli
Spring Cloud Cli
Spring Cloud CLI features
Stars: ✭ 139 (-9.74%)
Mutual labels:  microservices, cli
Sherlock Js
Find usernames across over 170 social networks - Fast & flexible remake of sdushantha/sherlock
Stars: ✭ 153 (-0.65%)
Mutual labels:  cli
Sqsmover
AWS SQS Message mover
Stars: ✭ 154 (+0%)
Mutual labels:  cli
Go Audio
An offline solution to convert pdfs into audiobooks
Stars: ✭ 153 (-0.65%)
Mutual labels:  cli
Grafcli
Grafana CLI for quick and easy dashboards management.
Stars: ✭ 152 (-1.3%)
Mutual labels:  cli
Keep A Changelog
Tools for manipulating CHANGELOG.md files in Keep A Changelog format, including tagging and releasing.
Stars: ✭ 155 (+0.65%)
Mutual labels:  cli
Handlr
A better xdg-utils
Stars: ✭ 151 (-1.95%)
Mutual labels:  cli
Cbox
convert any python function to unix-style command
Stars: ✭ 154 (+0%)
Mutual labels:  cli
Gloria
Gloria is a static website generator, based on NodeJS.
Stars: ✭ 153 (-0.65%)
Mutual labels:  cli
Upx
UPYUN Storage Command Tool
Stars: ✭ 154 (+0%)
Mutual labels:  cli
Speedle
Speedle is an open source project for access control.
Stars: ✭ 153 (-0.65%)
Mutual labels:  microservices
Fastscript
A fast way to turn your python function into a script
Stars: ✭ 155 (+0.65%)
Mutual labels:  cli
Simplesh
🐧 Quick installation for Ubuntu terminal.
Stars: ✭ 152 (-1.3%)
Mutual labels:  cli
Dasync
Every developer deserves the right of creating microservices without using any framework 🤍
Stars: ✭ 154 (+0%)
Mutual labels:  microservices
Modernarchitectureshop
The Microservices Online Shop is an application with a modern software architecture that is cleanly designed and based on.NET lightweight technologies. The shop has two build variations. The first variant is the classic Microservices Architectural Style. The second one is with Dapr. Dapr has a comprehensive infrastructure for building highly decoupled Microservices; for this reason, I am using Dapr to achieve the noble goal of building a highly scalable application with clean architecture and clean code.
Stars: ✭ 154 (+0%)
Mutual labels:  microservices
Aeneas
aeneas is a Python/C library and a set of tools to automagically synchronize audio and text (aka forced alignment)
Stars: ✭ 1,942 (+1161.04%)
Mutual labels:  cli

microplane

A CLI tool to make git changes across many repos, especially useful with Microservices. You can learn more about microplane in this introductory blogpost.

microplane

"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 get github.com/clever/microplane/cmd. 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.

GitLab setup

The GITLAB_API_TOKEN environment variable must be set for Gitlab. This should be a GitLab access token

Optionally: The GITLAB_URL environment variable can be set to use a Gitlab on-premise setup, otherwise it will use https://gitlab.com.

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.

  1. Init - target the repos you want to change using a Github "Advanced Search" Query
  2. Clone - clone the repos you just targeted
  3. Plan - run a script against each of the repos and preview the diff
  4. Push - commit, push, and open a Pull Request
  5. Merge - merge the PRs

For an in-depth example, check out the introductory blogpost.

Development

Build Locally

Microplane is a Golang project.

First, clone the repo.

To install dependencies run

make install_deps

To build, run

make build

You should now have a working build of Microplane in ./bin/mp.

Design

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/
    ...

Releasing

To publish a release:

  • PR then merge changes to master.
  • Push another commit, updating VERSION with the new version and CHANGELOG.md with a description of the changes.
  • CircleCI will publish a release to GitHub.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].