https://github.com/rios0rios0/devforge
Developer forge CLI tool written in Go. Manages Git repositories across multiple providers (GitHub, Azure DevOps, GitLab) with parallel cloning, syncing, and project bootstrapping.
https://github.com/rios0rios0/devforge
automation cli developer-tools git golang repository-management
Last synced: 3 months ago
JSON representation
Developer forge CLI tool written in Go. Manages Git repositories across multiple providers (GitHub, Azure DevOps, GitLab) with parallel cloning, syncing, and project bootstrapping.
- Host: GitHub
- URL: https://github.com/rios0rios0/devforge
- Owner: rios0rios0
- License: mit
- Created: 2023-01-29T17:10:57.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-04-04T09:14:22.000Z (3 months ago)
- Last Synced: 2026-04-04T10:59:53.038Z (3 months ago)
- Topics: automation, cli, developer-tools, git, golang, repository-management
- Language: Go
- Homepage:
- Size: 3.33 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
DevForge
DevForge is a developer workspace toolkit that manages Git repositories across multiple providers and bootstraps projects by detecting their language. It consolidates [gitforge](https://github.com/rios0rios0/gitforge) and [langforge](https://github.com/rios0rios0/langforge) into a single CLI.
## Features
- **Repository Cloning**: discovers repos from GitHub, Azure DevOps, or GitLab and clones missing ones via SSH in parallel
- **Repository Syncing**: fetches and rebases all repos under a directory, preserving uncommitted work via WIP branches
- **Fork Syncing**: detects forked repos via provider API, syncs with upstream parent, and handles conflicts by creating reference branches
- **Branch Pruning**: deletes local branches merged into the default branch across all repos
- **Docker Management**: lists container IPs and resets the Docker environment (stop, prune)
- **Multi-Provider Support**: automatic provider detection from directory path with per-provider auth tokens
## Installation
```bash
curl -fsSL https://raw.githubusercontent.com/rios0rios0/devforge/main/install.sh | sh
```
Or build from source:
```bash
go install github.com/rios0rios0/devforge/cmd/devforge@latest
```
Download pre-built binaries from the [releases page](https://github.com/rios0rios0/devforge/releases).
## Usage
```bash
# Clone all repos for a GitHub user/org
dev repo clone [root-dir]
dev repo clone mine ~/Development/github.com/rios0rios0
dev repo clone my-org ~/Development/dev.azure.com/my-org
dev repo clone mine --dry-run # preview without cloning
# Sync all repos under a directory
dev repo sync [root-dir]
dev repo sync ~/Development/github.com/rios0rios0
# Sync forked repos with their upstream parent
dev repo fork-sync [root-dir]
dev repo fork-sync ~/Development/github.com/rios0rios0
dev repo fork-sync --dry-run # preview without syncing
# Delete local merged branches
dev repo prune [root-dir]
dev repo prune ~/Development/github.com/rios0rios0 --dry-run
# Docker environment management
dev docker ips # list container IP addresses
dev docker reset # stop all containers, prune everything
dev docker reset --dry-run # preview without executing
```
### Authentication
Set the appropriate environment variable for your provider:
| Provider | Environment Variable |
|----------|---------------------|
| GitHub | `GH_TOKEN` |
| Azure DevOps | `AZURE_DEVOPS_EXT_PAT` |
| GitLab | `GITLAB_TOKEN` |
### SSH Aliases
The clone command uses SSH config aliases (e.g., `github.com-mine`). Configure these in `~/.ssh/config`:
```
Host github.com-mine
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
```
## Contributing
Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
## License
See [LICENSE](LICENSE) file for details.