Skip to content

rios0rios0/devforge

DevForge

Latest Release License Build Status OpenSSF Best Practices

DevForge is a developer workspace toolkit that manages Git repositories across multiple providers and bootstraps projects by detecting their language. It consolidates gitforge and 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

curl -fsSL https://raw.githubusercontent.com/rios0rios0/devforge/main/install.sh | sh

Or build from source:

go install github.com/rios0rios0/devforge/cmd/devforge@latest

Download pre-built binaries from the releases page.

Usage

# Clone all repos for a GitHub user/org
dev repo clone <ssh-alias> [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 for guidelines.

License

See LICENSE file for details.

About

Developer forge CLI tool written in Go. Manages Git repositories across multiple providers (GitHub, Azure DevOps, GitLab) with parallel cloning, syncing, and project bootstrapping.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors