Metadata-Version: 2.4
Name: ado-source-core
Version: 0.2.0
Summary: Read-only Azure DevOps API client and Pydantic models. OSS library shared by ado-scanner and Shyftport engines.
Project-URL: Homepage, https://github.com/n8group-oss/ado-source-core
Project-URL: Repository, https://github.com/n8group-oss/ado-source-core
Project-URL: Issues, https://github.com/n8group-oss/ado-source-core/issues
Author-email: n8group-oss <hello@n8group.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Requires-Python: >=3.11
Requires-Dist: httpx<1.0,>=0.27
Requires-Dist: pydantic-settings<3,>=2
Requires-Dist: pydantic<3.0,>=2.7
Requires-Dist: structlog<26,>=24
Provides-Extra: dev
Requires-Dist: mypy>=1.11; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Description-Content-Type: text/markdown

# ado-source-core

Read-only Azure DevOps API client and Pydantic models. OSS library (MIT-licensed) shared by:

- [`ado-scanner`](https://github.com/n8group-oss/ado-scanner) — standalone discovery CLI
- Shyftport engines that need to read from Azure DevOps

This library is **read-only**. It does not perform any writes against Azure DevOps. Migration-side writes live in proprietary code outside this package.

## Install

```bash
pip install ado-source-core
```

## Quickstart

```python
import asyncio
from ado_source_core import ADOClient, PATAuth

async def main():
    auth = PATAuth(token="your-pat")
    async with ADOClient(organization="myorg", auth=auth) as client:
        async for repo in client.list_repositories(project="MyProject"):
            print(repo.name, repo.default_branch)

asyncio.run(main())
```

## Status

Alpha. Stable enough for `ado-scanner` consumption; API may change before v1.0.

## License

MIT.
