1{ lib
2, asgiref
3, buildPythonPackage
4, certifi
5, charset-normalizer
6, cvss
7, deepl
8, django
9, fetchFromGitHub
10, gql
11, idna
12, markdown-it-py
13, mdurl
14, pygments
15, pytest
16, pytestCheckHook
17, pythonOlder
18, pyyaml
19, reptor
20, requests
21, rich
22, setuptools
23, sqlparse
24, termcolor
25, toml
26, tomli-w
27, urllib3
28, xmltodict
29}:
30
31buildPythonPackage rec {
32 pname = "reptor";
33 version = "0.7";
34 format = "pyproject";
35
36 disabled = pythonOlder "3.8";
37
38 src = fetchFromGitHub {
39 owner = "Syslifters";
40 repo = "reptor";
41 rev = "refs/tags/${version}";
42 hash = "sha256-d76Hsf+leJKYOh7k/RVuo6adfjMW6yAYt+vh7KNh7sA=";
43 };
44
45 nativeBuildInputs = [
46 setuptools
47 ];
48
49 propagatedBuildInputs = [
50 asgiref
51 certifi
52 charset-normalizer
53 cvss
54 django
55 idna
56 markdown-it-py
57 mdurl
58 pygments
59 pyyaml
60 requests
61 rich
62 sqlparse
63 termcolor
64 toml
65 tomli-w
66 urllib3
67 xmltodict
68 ];
69
70 passthru.optional-dependencies = {
71 ghostwriter = [
72 gql
73 ] ++ gql.optional-dependencies.aiohttp;
74 translate = [
75 deepl
76 ];
77 };
78
79 nativeCheckInputs = [
80 pytestCheckHook
81 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
82
83 preCheck = ''
84 export HOME=$(mktemp -d)
85 export PATH="$PATH:$out/bin";
86 '';
87
88 pythonImportsCheck = [
89 "reptor"
90 ];
91
92 disabledTestPaths = [
93 # Tests want to use pip install dependencies
94 "reptor/plugins/importers/GhostWriter/tests/test_ghostwriter.py"
95 ];
96
97 disabledTests = [
98 # Tests need network access
99 "TestDummy"
100 "TestIntegration"
101
102 ];
103
104 meta = with lib; {
105 description = "Module to do automated pentest reporting with SysReptor";
106 homepage = "https://github.com/Syslifters/reptor";
107 changelog = "https://github.com/Syslifters/reptor/releases/tag/${version}";
108 license = licenses.mit;
109 maintainers = with maintainers; [ fab ];
110 };
111}