Metadata-Version: 2.4
Name: testbench-defect-service
Version: 0.1.0
Summary: A REST API service for the imbus testbench to manage defects.
Keywords: testbench,defect,testing,rest-api,jira,defect-management,test-automation
Author-email: imbus AG <support@imbus.de>
Requires-Python: >=3.10,<3.15
Description-Content-Type: text/markdown
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
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
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Quality Assurance
License-File: LICENSE
Requires-Dist: sanic>=25.12,<26.0
Requires-Dist: sanic-ext>=25.12,<26.0
Requires-Dist: pydantic>=2.12.5,<3.0.0
Requires-Dist: click>=8.3.1,<9.0.0
Requires-Dist: tomli>=2.4.0,<3.0.0
Requires-Dist: tomli-w>=1.2.0,<2.0.0
Requires-Dist: python-dotenv>=1.2.2,<2.0.0
Requires-Dist: questionary>=2.1.1,<3.0.0
Requires-Dist: javaproperties>=0.8.2,<1.0.0
Requires-Dist: ruff>=0.9.6 ; extra == "dev"
Requires-Dist: pre-commit>=4.1.0 ; extra == "dev"
Requires-Dist: invoke>=2.2.0 ; extra == "dev"
Requires-Dist: mypy>=1.15.0 ; extra == "dev"
Requires-Dist: flit>=3.10.1 ; extra == "dev"
Requires-Dist: wheel>=0.45.1 ; extra == "dev"
Requires-Dist: robotframework >= 5.0.1, < 8.0.0 ; extra == "dev"
Requires-Dist: robotframework-assertion-engine >= 3.0.3, < 4.0.0 ; extra == "dev"
Requires-Dist: robotframework-robocop>=5.8.1 ; extra == "dev"
Requires-Dist: robotframework-tidy>=4.16.0 ; extra == "dev"
Requires-Dist: requests>=2.32.3 ; extra == "dev"
Requires-Dist: pytest>=9.0.2 ; extra == "dev"
Requires-Dist: types-pyinstaller>=6.19.0 ; extra == "dev"
Requires-Dist: types-requests>=2.32.4 ; extra == "dev"
Requires-Dist: jira>=3.10.5,<4.0.0 ; extra == "jira"
Requires-Dist: beautifulsoup4>=4.14.3,<5.0.0 ; extra == "jira"
Project-URL: Changelog, https://github.com/imbus/testbench-defect-service/blob/main/CHANGELOG.md
Project-URL: Documentation, https://imbus.github.io/testbench-ecosystem-documentation/testbench-defect-service/intro
Project-URL: Home, https://github.com/imbus/testbench-defect-service
Project-URL: Source, https://github.com/imbus/testbench-defect-service
Provides-Extra: dev
Provides-Extra: jira

# TestBench Defect Service
[![PyPI version](https://img.shields.io/pypi/v/testbench-defect-service)](https://pypi.org/project/testbench-defect-service/)
[![Python versions](https://img.shields.io/pypi/pyversions/testbench-defect-service)](https://pypi.org/project/testbench-defect-service/)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue)](LICENSE)

## Introduction
A lightweight REST API service for [imbus TestBench](https://www.testbench.com) that provides a unified interface for creating and synchronising defects with external defect tracking systems.

## Features

- **Multiple clients**: JSONL files for testing/offline use, or Jira Cloud and Data Center via REST API
- **Unified REST API**: a single API surface regardless of the underlying defect tracker
- **Interactive setup wizard**: `testbench-defect-service init` generates a complete config in seconds
- **Swagger UI**: built-in interactive API docs at `/docs`
- **Per-project overrides**: field mappings and configuration per project key
- **Pre/post sync hooks**: run shell commands before or after sync operations
- **HTTPS & mTLS**: optional TLS and mutual TLS for production deployments
- **Extensible**: implement `AbstractDefectClient` to connect any defect tracker

## Installation

**With pip** (Python 3.10–3.14 required):

```bash
pip install testbench-defect-service
```

Optional extras for additional clients:

| Client | Data source | Install command |
|--------|-------------|-----------------|
| JSONL (default) | `.jsonl` files | included in base install |
| Jira | Jira Cloud / Data Center REST API | `pip install testbench-defect-service[jira]` |

**Standalone executable** (no Python required): download the pre-built binary from the [GitHub releases page](https://github.com/imbus/testbench-defect-service/releases).

## Quickstart

```bash
# 1. Create a configuration interactively
testbench-defect-service init

# 2. Start the service
testbench-defect-service start
```

The service runs at `http://127.0.0.1:8030` by default. Open `/docs` for the interactive Swagger UI.

## Documentation

Full documentation is available on the [TestBench Ecosystem documentation site](https://imbus.github.io/testbench-ecosystem-documentation/testbench-defect-service/intro):

- [Introduction](https://imbus.github.io/testbench-ecosystem-documentation/testbench-defect-service/intro)
- [Installation](https://imbus.github.io/testbench-ecosystem-documentation/testbench-defect-service/getting-started/installation)
- [Quickstart](https://imbus.github.io/testbench-ecosystem-documentation/testbench-defect-service/getting-started/quickstart)
- [Configuration](https://imbus.github.io/testbench-ecosystem-documentation/testbench-defect-service/configuration)
- [CLI Commands](https://imbus.github.io/testbench-ecosystem-documentation/testbench-defect-service/cli)
- [Clients overview](https://imbus.github.io/testbench-ecosystem-documentation/testbench-defect-service/clients/)
- [TestBench Integration](https://imbus.github.io/testbench-ecosystem-documentation/testbench-defect-service/testbench-integration)

## Contributing

Contributions are welcome. See [CONTRIBUTING.md](https://github.com/imbus/testbench-defect-service/blob/main/CONTRIBUTING.md) for setup instructions and guidelines.

## Changelog

See [CHANGELOG.md](https://github.com/imbus/testbench-defect-service/blob/main/CHANGELOG.md) for release history.

## License

Apache 2.0 — see [LICENSE](https://github.com/imbus/testbench-defect-service/blob/main/LICENSE) for details.

