Metadata-Version: 2.4
Name: zap-junit
Version: 0.1.6
Summary: Convert OWASP ZAP JSON output to JUnit XML format
License: MIT
License-File: LICENSE
Keywords: zap,owasp,junit,security,testing,ci-cd
Author: Mikke Schirén
Author-email: mikke.schiren@digitalist.com
Requires-Python: >=3.12,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: click (>=8.3.2,<9.0.0)
Requires-Dist: defusedxml (>=0.7.1,<0.8.0)
Project-URL: Issues, https://github.com/Digitalist-Open-Cloud/ZAP-JUnit-converter/issues
Project-URL: Repository, https://github.com/Digitalist-Open-Cloud/ZAP-JUnit-converter
Description-Content-Type: text/markdown

# ZAP junit converter

![Python](https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13-blue) [![Tests & Coverage](https://github.com/Digitalist-Open-Cloud/ZAP-JUnit-converter/actions/workflows/tests.yaml/badge.svg)](https://github.com/Digitalist-Open-Cloud/ZAP-JUnit-converter/actions/workflows/tests.yaml)
[![CodeQL](https://github.com/Digitalist-Open-Cloud/ZAP-JUnit-converter/actions/workflows/github-code-scanning/codeql/badge.svg?branch=main)](https://github.com/Digitalist-Open-Cloud/ZAP-JUnit-converter/actions/workflows/github-code-scanning/codeql)
[![Bandit](https://github.com/Digitalist-Open-Cloud/ZAP-JUnit-converter/actions/workflows/bandit.yaml/badge.svg)](https://github.com/Digitalist-Open-Cloud/ZAP-JUnit-converter/actions/workflows/bandit.yaml)

Convert OWASP Zed Attack Proxy (ZAP) JSON output to JUnit XML format.

Could be used for converting output from ZAP to be displayed as tests results in GitLab.

## Installation

```shell
pip install zap-junit
```

## Usage

```bash
zap-junit input.json -o output.xml
```

## Testing

```bash
poetry run pytest -v
```

## Coverage Report

```bash
poetry run pytest --cov
```

## Example usage

### GitLab runner

This needs a run of ZAP in the earlier, saving the results as  `zap-baseline-report.json `.

```yaml
zap-baseline-results:
  stage: convert
  image:
    name: digitalist/zap-junit-converter:0.2
    entrypoint: [""]
  script:
    - |
      zap-junit zap-baseline-report.json  -o results.xml
  rules:
    - if: $CI_COMMIT_TAG
  artifacts:
    untracked: false
    expire_in: 2 days
    paths:
      - results.xml
    reports:
      junit: results.xml
```

![Jobs](assets/jobs.png)
![Tests](assets/tests.png)
![Result](assets/result.png)
