Metadata-Version: 2.4
Name: repofuse
Version: 0.3.1
Summary: repofuse — defuse repo confusion: multi-repo isolation, documentation, and release-status orchestration from one calm place
Author-email: deepstrain <dev@massiron.com>
License: Proprietary
Project-URL: Homepage, https://github.com/massiron/repofuse
Project-URL: Repository, https://github.com/massiron/repofuse
Project-URL: Documentation, https://github.com/massiron/repofuse#readme
Keywords: monorepo,git,repository,documentation
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: gitpython>=3.1
Requires-Dist: typer>=0.9
Requires-Dist: rich>=13.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: ecosystem
Requires-Dist: massiron>=1.0; extra == "ecosystem"

# repofuse

**Defuse repo confusion.**
_repo + de-fuse_ — the overwhelm a repository (and especially a fleet of them)
creates in a person, taken apart. One calm place to **see, isolate, document,
and release** across many repositories.

## Installation

```bash
pip install repofuse
```

## Usage

```bash
# Initialize a monorepo
repofuse init

# Add a sub-repository
repofuse add https://github.com/user/project.git

# Add with custom prefix
repofuse add https://github.com/user/project.git --prefix libs/project

# List registered repos
repofuse list

# Isolate a sub-repo as standalone
repofuse iso project-name -o _isolated

# Generate documentation
repofuse docs -o docs/

# Release status across an ecosystem of repos:
# local pyproject version vs PyPI, git branch/dirty/ahead-behind, per-repo verdict
repofuse status -w /path/to/workspace

# Release one repo explicitly (opt-in, nothing happens without flags)
repofuse release ./my-pkg -m "fix: ..." --push --tag v0.3.1
```

## Release status

`repofuse status` sweeps a workspace and tells you, at a glance, what each repo
needs — `commit`, `push`, `publish`, or `clean`:

```
┌───────────────┬────────┬────────┬─────────┬───────┬────────────────────────┐
│ Repo          │ Local  │ PyPI   │ Branch  │ Git   │ Verdict                │
├───────────────┼────────┼────────┼─────────┼───────┼────────────────────────┤
│ my-lib        │ 0.4.0  │ 0.3.0  │ main    │ ↑2    │ push(2) · publish(...) │
│ other         │ 0.1.0  │ 0.1.0  │ main    │ ✓     │ clean                  │
└───────────────┴────────┴────────┴─────────┴───────┴────────────────────────┘
```

It reads the version from each `pyproject.toml`, queries PyPI for the published
version, and inspects git state — no config required. `--no-pypi` skips the
network lookup for a fast offline sweep.

## API

```python
from repofuse.core import add_repo, list_repos, remove_repo
from repofuse.isolate import isolate
from repofuse.docs import generate_docs
```

## License

Proprietary — © massiron. All rights reserved.
