{"id":13744968,"url":"https://github.com/radicallyopensecurity/pentext","last_synced_at":"2025-05-09T04:33:02.886Z","repository":{"id":37549600,"uuid":"60177742","full_name":"radicallyopensecurity/pentext","owner":"radicallyopensecurity","description":"PenText system: Easily create beautifully looking penetration test quotes, reports, and documents in many formats (PDF, text, JSON, CSV, ...)","archived":false,"fork":false,"pushed_at":"2024-07-29T10:52:53.000Z","size":6849,"stargazers_count":115,"open_issues_count":8,"forks_count":38,"subscribers_count":16,"default_branch":"main","last_synced_at":"2024-08-04T05:05:29.492Z","etag":null,"topics":["documentation-generator","pdf","pentest-report","pentesting"],"latest_commit_sha":null,"homepage":"","language":"XSLT","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/radicallyopensecurity.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-01T13:07:23.000Z","updated_at":"2024-07-29T10:52:56.000Z","dependencies_parsed_at":"2023-02-18T05:31:26.528Z","dependency_job_id":"55f5348b-8077-4345-96d4-5a9d4e729bfa","html_url":"https://github.com/radicallyopensecurity/pentext","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radicallyopensecurity%2Fpentext","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radicallyopensecurity%2Fpentext/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radicallyopensecurity%2Fpentext/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radicallyopensecurity%2Fpentext/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/radicallyopensecurity","download_url":"https://codeload.github.com/radicallyopensecurity/pentext/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224819733,"owners_count":17375316,"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":["documentation-generator","pdf","pentest-report","pentesting"],"created_at":"2024-08-03T05:01:19.411Z","updated_at":"2024-11-15T17:30:55.849Z","avatar_url":"https://github.com/radicallyopensecurity.png","language":"XSLT","funding_links":[],"categories":["XSLT"],"sub_categories":[],"readme":"# PenText\n\nThe PenText XML documentation project is a collection of XML templates, XML\nschemas and XSLT code, which combined provide an easy way to generate IT\nsecurity documents including test reports (for penetration tests, load tests,\ncode audits, etc), offers (to companies requesting these tests), and invoices.\n\n### How it Works\n\nThe OWASP PenText project is based on XML. A PenText Report, Quote, Invoice or\nGeneric Document is in fact a (modular) XML document, conforming to an XML\nSchema. The XML Schema ensures that the documents are structured correctly, so\nthat they can then be transformed into other formats like PDF, CSV and JSON\nusing XSLT and the SAXON XSLT processor.\n\nTo produce a PDF document, the report, offer, invoice or generic document XML is\nfirst transformed into XSL-FO (XSL Formatting Objects), which is then converted\nto PDF using Apache FOP.\n\nIt is also possible to export e.g. all findings of a report to JSON, XML or\nplaintext format.\n\n### The Structure\n\n- The framework itself consists of files in the `dtd` and `xslt` directory\n- A report or quote will go into `source`\n- Graphics, including screenshots and e.g. a company logo, will go into\n  `graphics`\n- Findings and non-findings of penetration test reports can go into `findings`\n  and `non-findings`\n\n## Getting Started\n\nWhat do you need ?\n\n1. Clone this repository\n\n2. Install the toolchain\n\n3. Edit the content\n\nListo! That's all you need. Now you can build PDF reports using the content.\n\n### Toolchain\n\nTo convert the XML content into PDF files the tools the _Apache FOP_ library and\nthe _Java_ library _Saxon_ will be used. A separate repository will contain\nthese tools on a handy Docker container.\n\nTo edit (and view) the content you'll need a XML editor - which could be any\ntext editor like _JEdit_, to a full IDE- for editing of course ;). Preferably\nsomething that can check XML file validity. To view the resulting PDF files a\nPDF viewer is necessary.\n\n### Building PDFs\n\nManually compiling a quotation, report or other document can be done using the\nsupplied Makefile:\n\n`make report`\n\nThis performs\n`java -jar path-to-Saxon-jar -s:name-of-xml-file -xsl:name-of-xsl-file-in-xsl-directory -o:name-for-pdf-output`\n\nSee for more detailed information the [tools manual](/doc/tools-manual.md)\n\n### Building CSVs\n\nTo export all findings as CSV file run:\n\n```sh\nmake export-csv\n```\n\nThis will output all columns as separate fields as well as a \"Jira Formatted\nDescription\" field that can be used in Jira.\n\n#### Building CSVs using CI/CD\n\nCopy over the latest `xslt/findings2csv` to your project.\n\nMake sure the build step in `gitlab-ci.yml` saves `.csv` files:\n\n```yml\nbuild:\n  tags:\n    - docbuilder\n  stage: build\n  script:\n    - echo \"Building documents!\"\n  artifacts:\n    paths:\n      - target/*.pdf\n      - target/*.csv\n```\n\nCSVs will now be generated alongside every PDF.\n\n## Adding and Modifying Content\n\n### Guidelines\n\n- There is a guide for\n  [report writing](doc/report/Report%20Writing%20-%20Procedure.md)\n- There is also a guide for\n  [quotation writing](doc/offerte/Offerte%20Writing%20Procedure.md)\n\n### Example documents\n\nBesides the reports and quotations, generic documents can also be created. Those\ncan be found [here](doc/examples)\n\n## Important note\n\nFrom version 2.0 onwards, the structure of the PenText repository has been\nsimplified. Please see the [CHANGELOG](CHANGELOG.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradicallyopensecurity%2Fpentext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fradicallyopensecurity%2Fpentext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradicallyopensecurity%2Fpentext/lists"}