{"id":18565041,"url":"https://github.com/greenbone/pheme","last_synced_at":"2025-04-10T04:32:12.383Z","repository":{"id":36977497,"uuid":"286943438","full_name":"greenbone/pheme","owner":"greenbone","description":"pheme is a service to create scan reports","archived":false,"fork":false,"pushed_at":"2024-04-15T06:22:23.000Z","size":12025,"stargazers_count":9,"open_issues_count":0,"forks_count":9,"subscribers_count":11,"default_branch":"main","last_synced_at":"2024-04-17T16:11:17.292Z","etag":null,"topics":["base","gea","greenbone-networks","python","reporting","reports","vulnerability-management"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/greenbone.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-08-12T07:11:30.000Z","updated_at":"2024-04-22T05:43:32.455Z","dependencies_parsed_at":"2023-12-18T16:04:24.992Z","dependency_job_id":"90b50038-188f-4d50-b0b2-085a399474f7","html_url":"https://github.com/greenbone/pheme","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greenbone%2Fpheme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greenbone%2Fpheme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greenbone%2Fpheme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greenbone%2Fpheme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/greenbone","download_url":"https://codeload.github.com/greenbone/pheme/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248157542,"owners_count":21057034,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["base","gea","greenbone-networks","python","reporting","reports","vulnerability-management"],"created_at":"2024-11-06T22:17:27.338Z","updated_at":"2025-04-10T04:32:11.722Z","avatar_url":"https://github.com/greenbone.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Greenbone Logo](https://www.greenbone.net/wp-content/uploads/gb_new-logo_horizontal_rgb_small.png)\n\n# Pheme - Greenbone Static Report Generator \u003c!-- omit in toc --\u003e\n\n[![GitHub releases](https://img.shields.io/github/release-pre/greenbone/pheme.svg)](https://github.com/greenbone/pheme/releases)\n [![PyPI release](https://img.shields.io/pypi/v/pheme.svg)](https://pypi.org/project/pheme/)\n [![code test coverage](https://codecov.io/gh/greenbone/pheme/branch/main/graph/badge.svg)](https://codecov.io/gh/greenbone/pheme)\n [![Build and test](https://github.com/greenbone/pheme/actions/workflows/ci-python.yml/badge.svg)](https://github.com/greenbone/pheme/actions/workflows/ci-python.yml)\n\n**pheme** is a service to create scan reports. It is maintained by [Greenbone AG][Greenbone AG].\n\n[Pheme](https://en.wikipedia.org/wiki/Pheme) is the personification of fame and renown.\n\nOr in this case personification of a service to generate reports.\n\n## Table of Contents \u003c!-- omit in toc --\u003e\n\n- [Installation](#installation)\n  - [Requirements](#requirements)\n- [Development](#development)\n- [Usage](#usage)\n- [Maintainer](#maintainer)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n### Requirements\n\nPython 3.8 and later is supported.\n\nBesides python `pheme` also needs to have\n\n- libcairo2-dev\n- pango1.0\n\ninstalled.\n\n## Development\n\n**pheme** uses [poetry] for its own dependency management and build\nprocess.\n\nFirst install poetry via pip\n\n    python3 -m pip install --user poetry\n\nAfterwards run\n\n    poetry install\n\nin the checkout directory of **pheme** (the directory containing the\n`pyproject.toml` file) to install all dependencies including the packages only\nrequired for development.\n\nAfterwards activate the git hooks for auto-formatting and linting via\n[autohooks].\n\n    poetry run autohooks activate\n\nValidate the activated git hooks by running\n\n    poetry run autohooks check\n\n## Usage\n\nIn order to prepare the data structure the XML report data needs to be posted to `pheme` with a grouping indicator (either by host or nvt).\n\nE.g.:\n\n```\n\u003e curl -X POST 'http://localhost:8000/transform?grouping=nvt'\\\n    -H 'Content-Type: application/xml'\\\n    -H 'Accept: application/json'\\\n    -d @test_data/longer_report.xml\n\n  \"scanreport-nvt-9a233b0d-713c-4f22-9e15-f6e5090873e3\"⏎\n```\n\nThe returned identifier can be used to generate the actual report.\n\nSo far a report can be either in:\n- application/json\n- application/xml\n- text/csv\nE.g.\n\n```\n\u003e curl -v 'http://localhost:8000/report/scanreport-nvt-9a233b0d-713c-4f22-9e15-f6e5090873e3' -H 'Accept: application/csv'\n```\n\nFor visual report like\n\n- application/pdf\n- text/html\n\nthe corresponding css and html template needs to be put into pheme first:\n\n```\n\u003e curl -X PUT localhost:8000/parameter\\\n    -H 'x-api-key: SECRET_KEY_missing_using_default_not_suitable_in_production'\\\n    --form vulnerability_report_html_css=@path_to_css_template\\\n    --form vulnerability_report_pdf_css=@path_to_css_template\\\n    --form vulnerability_report=@path_to_html_template\n```\n\nafterwards it can be get as usual:\n\n```\n\u003e curl -v 'http://localhost:8000/report/scanreport-nvt-9a233b0d-713c-4f22-9e15-f6e5090873e3' -H 'Accept: application/pdf'\n```\n\n## Maintainer\n\nThis project is maintained by [Greenbone AG][Greenbone AG]\n\n## Contributing\n\nYour contributions are highly appreciated. Please\n[create a pull request](https://github.com/greenbone/pheme/pulls)\non GitHub. Bigger changes need to be discussed with the development team via the\n[issues section at GitHub](https://github.com/greenbone/pheme/issues)\nfirst.\n\n## License\n\nCopyright (C) 2020-2023 [Greenbone AG][Greenbone AG]\n\nLicensed under the [GNU Affero General Public License v3.0 or later](LICENSE).\n\n[Greenbone AG]: https://www.greenbone.net/\n[poetry]: https://python-poetry.org/\n[autohooks]: https://github.com/greenbone/autohooks\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreenbone%2Fpheme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreenbone%2Fpheme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreenbone%2Fpheme/lists"}