Metadata-Version: 2.4
Name: zrepo-helper
Version: 0.1.0
Summary: Python client for Zoho Repository (zrepo) REST API
Author: Shankaranaarayanan
Author-email: Shankaranaarayanan <shankaranaarayanan.t@zohocorp.com>
Keywords: zrepo,zoho,repository,api,client
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.25.0
Dynamic: author
Dynamic: requires-python

# zrepo-helper

A thin Python client for the Zoho Repository (zrepo) REST API.

## Installation

```bash
pip install zrepo-helper
```

Or with your internal package index:
```bash
pip install --index-url https://your-registry/simple zrepo-helper
```

## Quick Start

```python
from zrepo_helper import ZRepoClient, ZRepoConfig

# Initialize with default config (uses env vars)
client = ZRepoClient()

# Get all merge requests
mrs = client.get_merge_requests()

# Get specific merge request
mr = client.get_merge_request_info(mr_id=123)

# Create a merge request
payload = {
    "title": "My MR",
    "source_branch": "feature/new-thing",
    "target_branch": "main"
}
result = client.create_merge_request(payload)
```

## Configuration

The client reads from environment variables:
- `ZREPO_BASE_URL`: zrepo API base URL
- `ZREPO_TOKEN`: API token for authentication

Or configure manually:
```python
from zrepo_helper import ZRepoClient, ZRepoConfig

config = ZRepoConfig(
    base_url="https://zrepo.example.com/api",
    token="your-token"
)
client = ZRepoClient(config=config)
```

## API Methods

### Merge Requests
- `get_merge_requests(**params)` - List all merge requests
- `get_merge_request_info(mr_id)` - Get specific MR details
- `get_merge_request_diff(mr_id, **params)` - Get MR diff
- `create_merge_request(payload)` - Create new MR
- `update_merge_request_state(mr_id, state, payload=None)` - Change MR state (open|merge|close)
- `edit_merge_request(mr_id, payload)` - Update MR details
- `get_merge_request_codeowners(mr_id)` - Get code owners for MR
- `get_merge_request_commits(mr_id, **params)` - List MR commits
- `review_merge_request(mr_id, status)` - Review MR (reviewed|pending)
- `get_mr_versions(mr_id)` - Get MR version history
- `mark_file_read(mr_id, payload, read=True)` - Mark file as read/unread

### Comments
- `add_comment(target_type, target_id, comment)` - Add comment
- `get_merge_request_comments(mr_id, **params)` - List MR comments
- `get_commit_comments(revision, **params)` - List commit comments
- `update_comment(comment_id, payload)` - Update comment
- `resolve_comment(comment_id)` - Resolve comment

## License

MIT
