80 lines
1.8 KiB
Nix
80 lines
1.8 KiB
Nix
{ lib
|
|
, fetchFromGitHub
|
|
, fetchpatch
|
|
, python3
|
|
}:
|
|
|
|
python3.pkgs.buildPythonApplication rec {
|
|
pname = "skjold";
|
|
version = "0.4.1";
|
|
format = "pyproject";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "twu";
|
|
repo = pname;
|
|
rev = "v${version}";
|
|
hash = "sha256-xz6N7/LS3wOymh9tet8OLgsSaretzuMU4hQd+LeUPJ4=";
|
|
};
|
|
|
|
nativeBuildInputs = with python3.pkgs; [
|
|
poetry-core
|
|
];
|
|
|
|
propagatedBuildInputs = with python3.pkgs; [
|
|
click
|
|
packaging
|
|
pyyaml
|
|
toml
|
|
];
|
|
|
|
checkInputs = with python3.pkgs; [
|
|
pytest-mock
|
|
pytest-watch
|
|
pytestCheckHook
|
|
];
|
|
|
|
patches = [
|
|
# Switch to poetry-core, https://github.com/twu/skjold/pull/91
|
|
(fetchpatch {
|
|
name = "switch-poetry-core.patch";
|
|
url = "https://github.com/twu/skjold/commit/b341748c9b11798b6a5182d659a651b0f200c6f5.patch";
|
|
sha256 = "sha256-FTZTbIudO6lYO9tLD4Lh1h5zsTeKYtflR2tbbHZ5auM=";
|
|
})
|
|
];
|
|
|
|
postPatch = ''
|
|
substituteInPlace pyproject.toml \
|
|
--replace 'packaging = "^21.0"' 'packaging = "*"' \
|
|
--replace 'pyyaml = "^5.3"' 'pyyaml = "*"'
|
|
'';
|
|
|
|
disabledTestPaths = [
|
|
# Too sensitive to pass
|
|
"tests/test_cli.py"
|
|
];
|
|
|
|
disabledTests = [
|
|
# Requires network access
|
|
"pyup-werkzeug"
|
|
"test_ensure_accessing_advisories_triggers_update"
|
|
"test_ensure_accessing_advisories_triggers_update"
|
|
"test_ensure_gemnasium_update"
|
|
"test_ensure_missing_github_token_raises_usage_error"
|
|
"test_ensure_pypi_advisory_db_update"
|
|
"test_ensure_source_is_affected_single"
|
|
"test_osv_advisory_with_vulnerable_package_via_osv_api"
|
|
"urllib3"
|
|
];
|
|
|
|
pythonImportsCheck = [
|
|
"skjold"
|
|
];
|
|
|
|
meta = with lib; {
|
|
description = "Tool to Python dependencies against security advisory databases";
|
|
homepage = "https://github.com/twu/skjold";
|
|
license = with licenses; [ mit ];
|
|
maintainers = with maintainers; [ fab ];
|
|
};
|
|
}
|