{"id":26555187,"url":"https://github.com/pungrumpy/gitpower","last_synced_at":"2025-07-20T16:04:02.952Z","repository":{"id":283693227,"uuid":"952647836","full_name":"PunGrumpy/gitpower","owner":"PunGrumpy","description":"🦾 Powerful CLI tool to manage multiple Git repositories effortlessly","archived":false,"fork":false,"pushed_at":"2025-03-29T19:13:46.000Z","size":1213,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-18T12:53:44.452Z","etag":null,"topics":["git","github-actions","goreleaser","powerful","rust","version-control"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PunGrumpy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-21T16:24:43.000Z","updated_at":"2025-03-29T19:13:35.000Z","dependencies_parsed_at":"2025-03-21T16:52:18.671Z","dependency_job_id":null,"html_url":"https://github.com/PunGrumpy/gitpower","commit_stats":null,"previous_names":["pungrumpy/gitpower"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/PunGrumpy/gitpower","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PunGrumpy%2Fgitpower","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PunGrumpy%2Fgitpower/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PunGrumpy%2Fgitpower/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PunGrumpy%2Fgitpower/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PunGrumpy","download_url":"https://codeload.github.com/PunGrumpy/gitpower/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PunGrumpy%2Fgitpower/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266152253,"owners_count":23884473,"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":["git","github-actions","goreleaser","powerful","rust","version-control"],"created_at":"2025-03-22T10:25:19.666Z","updated_at":"2025-07-20T16:04:02.940Z","avatar_url":"https://github.com/PunGrumpy.png","language":"Rust","readme":"# 🚀 GitPower\n\nA powerful CLI tool for managing multiple Git repositories simultaneously, developed in Rust.\n\n![Preview](./public/preview.png)\n\n## ✨ Features\n\n- **Sync multiple repositories simultaneously** (pull and push) 🔄\n- **Pull changes from all repositories** with a single command 📥\n- **Run commands** across multiple repositories 💻\n- **Group repositories** for easier management 📁\n- **Configure via YAML** for simple setup ⚙️\n- **Initialize new repositories** with a single command 🆕\n- **Completion for shell** (bash, zsh, fish) 🐚\n- **Interactive mode** for easier navigation 🕹️\n\n## 📦 Installation\n\n### From Source Code\n\n1. Clone the project:\n\n   ```\n   git clone https://github.com/PunGrumy/gitpower.git\n   cd gitpower\n   ```\n\n2. Build with Cargo:\n\n   ```\n   cargo build --release\n   ```\n\n3. Move the binary to your PATH:\n\n   ```\n   sudo mv target/release/gitpower /usr/local/bin/\n   ```\n\n### Via Cargo\n\n```\ncargo install gitpower\n```\n\n## 🛠️ Configuration\n\nGitPower uses a YAML file to configure repositories and groups. By default, it looks for a configuration file at `~/.config/gitpower/config.yml`\n\nBasic configuration example:\n\n```yaml\nrepositories:\n  - name: project-a\n    path: ~/projects/project-a\n    remote: origin\n    branch: main\n    groups:\n      - work\n\n  - name: dotfiles\n    path: ~/dotfiles\n    remote: origin\n    branch: master\n    groups:\n      - personal\n\ngroups:\n  - name: work\n    repositories:\n      - project-a\n\n  - name: personal\n    repositories:\n      - dotfiles\n```\n\n## 📚 Usage\n\n### Basic Commands\n\n| Command                | Description                                             |\n| ---------------------- | ------------------------------------------------------- |\n| `gitpower init`        | Start interactive dialog to initialize a new repository |\n| `gitpower list`        | List configured repositories                            |\n| `gitpower sync`        | Sync all repositories                                   |\n| `gitpower pull`        | Pull changes from all repositories                      |\n| `gitpower interactive` | Start interactive mode                                  |\n| `gitpower help`        | Show help message                                       |\n\n### Sync Commands\n\n| Command                            | Description                |\n| ---------------------------------- | -------------------------- |\n| `gitpower sync project-a dotfiles` | Sync specific repositories |\n| `gitpower sync work personal`      | Sync repositories by group |\n\n### Run Commands\n\n| Command                                   | Description                                    |\n| ----------------------------------------- | ---------------------------------------------- |\n| `gitpower run \"git status\"`               | Run command in all repositories                |\n| `gitpower run \"npm install\" web-projects` | Run command in specific repositories or groups |\n\n### Configuration\n\n| Command                                         | Description                   |\n| ----------------------------------------------- | ----------------------------- |\n| `gitpower --config ~/my-custom-config.yml list` | Use custom configuration file |\n\n### Interactive Mode\n\nIn interactive mode, you can navigate through repositories and groups with arrow keys and execute commands with a single key press.\n\n## 🔍 Advanced Usage\n\n### Automatic Syncing with Cron\n\nYou can set up a cron job for automatic repository syncing:\n\n```\n# Sync every hour\n0 * * * * gitpower sync\n```\n\n### Shell Aliases\n\nFor even quicker access, you can set up shell aliases:\n\n```bash\n# In your .bashrc or .zshrc\nalias gp=\"gitpower sync\"\nalias gpp=\"gitpower pull\"\nalias gpr=\"gitpower run\"\n```\n\n## 👥 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpungrumpy%2Fgitpower","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpungrumpy%2Fgitpower","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpungrumpy%2Fgitpower/lists"}