devforge

module
v0.0.0-...-68d9a77 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 4, 2026 License: MIT

README

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.

Directories

Path Synopsis
cmd
devforge command
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL