diff --git a/pkgs/tools/security/graphinder/default.nix b/pkgs/tools/security/graphinder/default.nix new file mode 100644 index 000000000000..46081281fc5f --- /dev/null +++ b/pkgs/tools/security/graphinder/default.nix @@ -0,0 +1,55 @@ +{ lib +, fetchFromGitHub +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "graphinder"; + version = "1.11.5"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "Escape-Technologies"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-ds0XPDDeBtN9AXGIyxqj9aDJyQWekWVL8zbSYRKWw18="; + }; + + nativeBuildInputs = with python3.pkgs; [ + poetry-core + ]; + + propagatedBuildInputs = with python3.pkgs; [ + aiohttp + beautifulsoup4 + requests + setuptools + ]; + + checkInputs = with python3.pkgs; [ + pytest-asyncio + pytest-mock + pytestCheckHook + ]; + + pythonImportsCheck = [ + "graphinder" + ]; + + disabledTests = [ + # Tests require network access + "test_domain_class" + "test_extract_file_zip" + "test_fetch_assets" + "test_full_run" + "test_init_domain_tasks" + "test_is_gql_endpoint" + ]; + + meta = with lib; { + description = "Tool to find GraphQL endpoints using subdomain enumeration"; + homepage = "https://github.com/Escape-Technologies/graphinder"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 280a79821a39..2ddf7d681b79 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17442,6 +17442,10 @@ with pkgs; graphia = libsForQt5.callPackage ../applications/science/misc/graphia { }; + graphinder = callPackage ../tools/security/graphinder { + python3 = python310; + }; + icon-lang = callPackage ../development/interpreters/icon-lang { }; libgit2 = callPackage ../development/libraries/libgit2 {