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
push changed to all remote repositories
check and see merge/pull requests via
For more details check the Quick start
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
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
After installation is done, you can configure it by running the
init. You will be prompted few questions about your GitHub/GitLab etc.
Initialization process creates
~/.config/excav/config.yaml for you. You can do any further configuration changes in this file.
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
- better installation
- metadata for better exploration of patch parameters
- better code :-)