An open API service indexing awesome lists of open source software.

https://github.com/r3d-shadow/git-pilot

A CLI tool to sync and update Git files and configurations across multiple repositories efficiently and consistently.
https://github.com/r3d-shadow/git-pilot

devops devops-tools github-actions workflow-automation workflow-management

Last synced: 5 months ago
JSON representation

A CLI tool to sync and update Git files and configurations across multiple repositories efficiently and consistently.

Awesome Lists containing this project

README

          

# git-pilot

> Sync workflows, configs, and more across 10+ repos in seconds using Helm-style templates.

---

[![GitHub stars](https://img.shields.io/github/stars/r3d-shadow/git-pilot?style=social)](https://github.com/r3d-shadow/git-pilot/stargazers)
[![PyPI version](https://img.shields.io/pypi/v/git-pilot)](https://pypi.org/project/git-pilot/)
[![License](https://img.shields.io/github/license/r3d-shadow/git-pilot)](LICENSE)

---

## ๐Ÿš€ Why Git-Pilot?

Managing configuration and CI/CD files across 10, 20, or 100+ repositories is a nightmare.

**`git-pilot` is your autopilot for repository file sync.** It brings GitOps discipline, Helm-style templating, and one-command sync to modern DevOps pipelines.

### ๐Ÿง  Built for DevEx

* **One command to sync them all:** Apply templates to any number of GitHub repos in one go.
* **Helm-style power:** Use partials, macros (`.tpl`), and regex-driven rendering logic.
* **Preview before you push:** Interactive side-by-side diffs before anything is committed.
* **State-aware syncs:** Tracks changes and removes stale files automatically.
* **Per-repo flexibility:** Custom branches, commit messages, and variable overrides.

---

## ๐Ÿงฐ What It Does

| Feature | Description |
| -------------------------- | ----------------------------------------------------------------------------- |
| ๐Ÿ” Multi-Repo Sync | Render and push files across 1 or 100 repos with a single command |
| ๐Ÿงฉ Helm-Style Templates | Use Jinja2 with custom delimiters, includes, and reusable `.tpl` macros |
| ๐Ÿ” Interactive Diff Viewer | See what changes before you commitโ€”created, updated, deleted files preview |
| ๐Ÿงฌ Per-Repo Customization | Branches, paths, commit messages, and injected variables |
| ๐Ÿงน Auto-Cleanup | Deletes stale files intelligently based on diff and state tracking |
| ๐ŸŒ GitHub Native (for now) | Built-in support for GitHub with extensible architecture for future providers |

---

## ๐Ÿ“ฆ Installation

```bash
pip install git-pilot
```

---

## โœจ Getting Started: First Sync in 5 Minutes

### 1. Initialize Template Directory

```bash
git-pilot init --template-dir my-templates
```

This creates a sample structure with:

* Example templates (`*.yml.j2`)
* Partials in `includes/`
* Helper macros in `_helpers.tpl`
* A working `values.yml` config

---

### 2. Customize Templates and Values

Edit `my-templates/values.yml`:

```yaml
defaults:
branch: main
message: "git-pilot: update workflows"
path: ".github/workflows"
vars:
ci_name: my-pipeline
env: dev
templates:
- ".*\.j2$"

repos:
- name: r3d-shadow/git-pilot-test-1
vars:
job_id: scan1
- name: r3d-shadow/git-pilot-test-2
branch: main # override
vars:
job_id: scan2
env: prod # override
```

---

### 3. Run Your First Sync

```bash
cd my-templates

git-pilot sync \
--token $GITHUB_TOKEN \
--templates ./ \
--values ./values.yml
```

โœ… Youโ€™ll see a full visual diff. Confirm to sync. Thatโ€™s it!

![Demo GIF](https://github.com/r3d-shadow/git-pilot/blob/main/docs/assets/demo.gif)

---

## ๐Ÿ“˜ Docs

* [Templating Guide](https://github.com/r3d-shadow/git-pilot/blob/main/docs/templating.md) โ€” Includes, macros, helpers, and Jinja2 syntax
* [Configuration Reference](https://github.com/r3d-shadow/git-pilot/blob/main/docs/configuration.md) โ€” All config options and repo overrides
* [Architecture Guide](https://github.com/r3d-shadow/git-pilot/blob/main/docs/architecture-guide.md) โ€” Extending providers and internal design
* [Contributing to `git-pilot`](https://github.com/r3d-shadow/git-pilot/blob/main/docs/contributing.md)
* [Roadmap](https://github.com/r3d-shadow/git-pilot/blob/main/docs/roadmap.md)

---

## ๐Ÿ› ๏ธ Advanced Examples

* Sync GitHub Actions, README.md, configs, policies, and more
* Regex-targeted templates per repo
* Environments like `dev`, `staging`, `prod`
* Centralized secrets and configurations with overrides

โ†’ See `/example-template-dir` for ready-to-copy setups

---

## ๐Ÿค Contributing

We welcome contributors! Here's how to get started:

```
git clone https://github.com/r3d-shadow/git-pilot.git
cd git-pilot
python3 -m venv venv
source venv/bin/activate
pip install -e .
git-pilot
```

Open a PR with a clear description. See the [Architecture Guide](https://github.com/r3d-shadow/git-pilot/blob/main/docs/architecture-guide.md) for more details.

---

## ๐Ÿš€ Spread the Word

> Just found this tool called `git-pilot` โ€” sync your GitHub Actions, configs, and more across 10+ repos with a single command. Helm-style templates. Pure ๐Ÿ”ฅ.

Tweet it. Star it. Fork it. Contribute.

Letโ€™s build better DevOps pipelines together.

---

## ๐Ÿชช License

Apache-2.0 license โ€” [LICENSE](https://github.com/r3d-shadow/git-pilot/blob/main/LICENSE)