https://github.com/rios0rios0/dev-toolkit
Developer toolkit CLI written in Go. Manages Git repositories across multiple providers (GitHub, Azure DevOps, GitLab, Codeberg) with parallel cloning, syncing, project bootstrapping, and language-aware build/test/lint/SAST commands.
https://github.com/rios0rios0/dev-toolkit
automation cli developer-tools git golang repository-management
Last synced: about 2 months ago
JSON representation
Developer toolkit CLI written in Go. Manages Git repositories across multiple providers (GitHub, Azure DevOps, GitLab, Codeberg) with parallel cloning, syncing, project bootstrapping, and language-aware build/test/lint/SAST commands.
- Host: GitHub
- URL: https://github.com/rios0rios0/dev-toolkit
- Owner: rios0rios0
- License: mit
- Created: 2023-01-29T17:10:57.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-04-30T12:19:08.000Z (about 2 months ago)
- Last Synced: 2026-04-30T14:15:52.237Z (about 2 months ago)
- Topics: automation, cli, developer-tools, git, golang, repository-management
- Language: Go
- Homepage:
- Size: 3.45 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Dev-Toolkit
Dev-Toolkit 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
- **Gist Cloning & Syncing**: discovers GitHub gists for a user, clones missing ones via SSH using a description-derived slug, and syncs them with the same WIP-aware workflow as repos
- **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)
- **System Cleanup**: reclaims disk space by clearing caches across Go, Node, Python, Gradle, JetBrains, Terra, and SDKMAN, pruning obsolete CLI-agent binary versions, and wiping transient state -- credentials, SDKs, and shell history are preserved
- **Multi-Provider Support**: automatic provider detection from directory path with per-provider auth tokens
## Installation
```bash
curl -fsSL https://raw.githubusercontent.com/rios0rios0/dev-toolkit/main/install.sh | sh
```
Or build from source:
```bash
go install github.com/rios0rios0/dev-toolkit/cmd/dev-toolkit@latest
```
Download pre-built binaries from the [releases page](https://github.com/rios0rios0/dev-toolkit/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
# Clone all GitHub gists for a user (slug derived from description; falls back to gist ID)
dev gist clone [root-dir]
dev gist clone mine ~/Development/gist.github.com/rios0rios0
dev gist clone mine ~/Development/gist.github.com/rios0rios0 --dry-run
# Sync all gists under a directory
dev gist sync [root-dir]
dev gist sync ~/Development/gist.github.com/rios0rios0
# 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.