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