Excav
Excavator (or shortly excav) automatize process of patching repositories in bulk.
How it works
-
create inventory of repositories you want to patch.
-
define your patch (it could be also reusable parametrized patch)
-
apply patch to selected repositories via
excav apply
-
push changed to all remote repositories
excav push
-
check and see merge/pull requests via
excav show
For more details check the Quick start
Motivation
With raise of GitOps and microservices, we're facing to many repositories. Many of them sharing common concepts, and it's easy to patch them in bulk. The problem is, we need to write own scripts they're going through those repositories and apply some simple operations.
The goal of excav is not just helping with patching itself but reducing time spent in general. That means helping with MRs, code review etc.
Of course, not every patch can be applied in bulk. The goal of this tool is to help with those, they're easily reproducible. You need to consider if you're able to patch them easily, or you need some very specific patching.
Installation and configuration
Currently, excav
is not available in any package system like Homebrew etc. But it's simple binary file which can be easily installed with those two methods:
curl/wget install (macOS & Linux)
You can install excav with curl or get with those one-liners:
curl -s https://installme.sh/sn3d/excav | sh
wget -q -O - https://installme.sh/sn3d/excav | sh
Manual install (mainly for Windows)
Download the correct binary for your platform from project's GitHub. Uncompress the binary to you PATH
.
Configuration
After installation is done, you can configure it by running the init
. You will be prompted few questions about your GitHub/GitLab etc.
excav init
Initialization process creates ~/.config/excav/config.yaml
for you. You can do any further configuration changes in this file.
Documentation
The detailed documentation is available here
Bugs & Feature requests
Because it's alpha, you can easily find bugs or you can miss some features. I will appreciate if you will report bugs and feature requests here
Todo
- better installation
- metadata for better exploration of patch parameters
- better code :-)