Metadata-Version: 2.4
Name: dynamic-git
Version: 0.3.1
Summary: Lightweight wrapper for cloning and managing git repositories in Python
Author: Daniel Kovacs
Author-email: dkovacs.dev@proton.me
License: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Version Control :: Git
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: gitpython
Requires-Dist: dulwich
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: license
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# dynamic-git

Lightweight wrapper for cloning and managing git repositories in Python. Uses dulwich for transport and GitPython for the repository interface, so no system git installation is required.

## Installation

```bash
pip install dynamic-git
```

## Quick Start

```python
from dynamic_git import get_git, GitConfig

# Clone with sensible defaults
repo = get_git("https://github.com/org/repo.git")

# Access the repo like any GitPython Repo object
print(repo.head.commit)
print(repo.active_branch)
```

## Configuration

```python
config = GitConfig(
    branch="develop",     # Branch to clone (default: "main")
    depth=5,              # Clone depth (default: 1)
    template_dir=None,    # Custom git template directory (default: built-in)
    extra_options=[],     # Additional options
)
repo = get_git("https://github.com/org/repo.git", config=config)
```

## Why?

- **No system git required** — ships with a built-in git shim for environments where git isn't installed
- **Pure Python transport** — uses dulwich under the hood for cloning
- **GitPython compatible** — returns a standard `git.Repo` object
- **Configurable templates** — apply git templates on clone for consistent repository setup

## License

MIT
