1{ lib
2, fetchFromGitHub
3, python3
4}:
5
6python3.pkgs.buildPythonApplication rec {
7 pname = "graphinder";
8 version = "1.11.6";
9 format = "pyproject";
10
11 src = fetchFromGitHub {
12 owner = "Escape-Technologies";
13 repo = pname;
14 rev = "refs/tags/v${version}";
15 hash = "sha256-TDc6aIFkxShlfC6fLYMKULfrFUAYhQZrIHZNDuMh68g=";
16 };
17
18 nativeBuildInputs = with python3.pkgs; [
19 poetry-core
20 ];
21
22 propagatedBuildInputs = with python3.pkgs; [
23 aiohttp
24 beautifulsoup4
25 requests
26 setuptools
27 ];
28
29 nativeCheckInputs = with python3.pkgs; [
30 pytest-asyncio
31 pytest-mock
32 pytestCheckHook
33 ];
34
35 pythonImportsCheck = [
36 "graphinder"
37 ];
38
39 disabledTests = [
40 # Tests require network access
41 "test_domain_class"
42 "test_extract_file_zip"
43 "test_fetch_assets"
44 "test_full_run"
45 "test_init_domain_tasks"
46 "test_is_gql_endpoint"
47 ];
48
49 meta = with lib; {
50 description = "Tool to find GraphQL endpoints using subdomain enumeration";
51 homepage = "https://github.com/Escape-Technologies/graphinder";
52 changelog = "https://github.com/Escape-Technologies/graphinder/releases/tag/v${version}";
53 license = with licenses; [ mit ];
54 maintainers = with maintainers; [ fab ];
55 };
56}