Scan timing: clone 1.69s · analysis 0.42s · 0.6 MB · GitHub preflight 504ms
https://github.com/kulturpool/EDMLib.git
· scanned 2026-05-25 08:26 UTC (1 week, 4 days ago)
· 10 languages
108 findings (56 legacy + 52 scanner) 81st percentile · Python · small (2-20K LoC) Scanner says 87 (lower by 5)
Last scanned 1 week, 4 days ago · v2 · 82 findings from 2 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
75.0 | 0.15 | 11.25 |
security_score |
98.7 | 0.25 | 24.68 |
testing_score |
100.0 | 0.20 | 20.00 |
documentation_score |
50.0 | 0.15 | 7.50 |
practices_score |
67.0 | 0.15 | 10.05 |
code_quality |
80.0 | 0.10 | 8.00 |
| Overall | 1.00 | 81.5 |
All 240 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
shared_files |
software | healthy | tests/conftest.py:6 |
xml_string |
software | healthy | tests/conftest.py:11 |
test_missing_edm_rights |
software | healthy | tests/parser/test_rights.py:6 |
test_http_edm_rights |
software | healthy | tests/parser/test_rights.py:11 |
test_https_edm_rights |
software | healthy | tests/parser/test_rights.py:16 |
test_parser_owl_sameas |
software | healthy | tests/parser/test_parser_owl_sameas.py:6 |
_get_bytes |
software | healthy | tests/parser/conftest.py:5 |
parser_files |
software | healthy | tests/parser/conftest.py:11 |
file_edm_record_minimal |
software | healthy | tests/parser/conftest.py:16 |
xml_with_lang_in_edm_type |
software | healthy | tests/parser/conftest.py:21 |
xml_with_xsdtypes |
software | healthy | tests/parser/conftest.py:26 |
ref_lit_xml |
software | healthy | tests/parser/conftest.py:31 |
xml_with_empty_description |
software | healthy | tests/parser/conftest.py:36 |
xml_with_empty_description_and_invalid_ref |
software | healthy | tests/parser/conftest.py:41 |
xml_with_gyear |
software | healthy | tests/parser/conftest.py:46 |
get_record_with_missing_edm_rights |
software | healthy | tests/parser/conftest.py:51 |
get_record_with_https_edm_rights |
software | healthy | tests/parser/conftest.py:56 |
get_record_with_http_edm_rights |
software | healthy | tests/parser/conftest.py:61 |
test_file_parser |
software | healthy | tests/parser/test_parser.py:7 |
test_validation_edm_type_with_lang_raises |
software | healthy | tests/parser/test_parser.py:18 |
test_string_parser |
software | healthy | tests/parser/test_parser.py:24 |
test_serialization_lit_ref |
software | healthy | tests/parser/test_parser.py:32 |
test_xml_datatypes_parsing |
software | healthy | tests/parser/test_parser.py:46 |
test_parser_empty_element |
software | healthy | tests/parser/test_parser.py:52 |
test_parser_empty_element_and_invalid_ref |
software | healthy | tests/parser/test_parser.py:62 |
test_gyear_serialization_cycle |
software | healthy | tests/parser/test_xml_to_py_to_rdf.py:4 |
test_parse_edm_xml |
software | healthy | tests/parser/test_aggregation_uri_validation.py:5 |
test_construct_programmatically |
software | healthy | tests/parser/test_aggregation_uri_validation.py:9 |
test_parse_as_graph |
software | healthy | tests/parser/test_aggregation_uri_validation.py:31 |
example_graphs |
software | healthy | tests/parser/functional/tests.py:7 |
process |
software | healthy | tests/parser/functional/manual_test.py:12 |
test_for_valid_statements |
software | healthy | tests/edm/test_rights.py:37 |
test_for_invalid_statements |
software | healthy | tests/edm/test_rights.py:49 |
test_normalize_statement |
software | healthy | tests/edm/test_rights.py:180 |
core_files |
software | healthy | tests/edm/conftest.py:7 |
cho_id_mismatch |
software | healthy | tests/edm/conftest.py:12 |
invalid_uri |
software | healthy | tests/edm/conftest.py:36 |
valid_uri |
software | healthy | tests/edm/conftest.py:54 |
test_providedcho_minimal_success |
software | healthy | tests/edm/test_edm_providedCHO.py:7 |
test_providedcho_missing_identifier_raises |
software | healthy | tests/edm/test_edm_providedCHO.py:22 |
test_providedcho_empty_identifier_raises |
software | healthy | tests/edm/test_edm_providedCHO.py:36 |
record_input_data |
software | healthy | tests/edm/test_generic_tests.py:8 |
web_resource_input_data |
software | healthy | tests/edm/test_generic_tests.py:14 |
test_provided_cho |
software | healthy | tests/edm/test_generic_tests.py:19 |
test_aggregation |
software | healthy | tests/edm/test_generic_tests.py:25 |
test_webresource |
software | healthy | tests/edm/test_generic_tests.py:31 |
test_record_init |
software | healthy | tests/edm/test_generic_tests.py:35 |
test_validation_cho_and_aggregation_id |
software | healthy | tests/edm/test_edm_classes.py:18 |
test_validation_skos_pref_label |
software | healthy | tests/edm/test_edm_classes.py:25 |
test_validation_skos_pref_label_single_lang_tag_in_List_ok |
software | healthy | tests/edm/test_edm_classes.py:38 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
pyproject.toml |
software | healthy | pyproject.toml |
.gitlab-ci.yml |
software | healthy | .gitlab-ci.yml |
compose.yml |
software | healthy | .devcontainer/compose.yml |
devcontainer.json |
software | healthy | .devcontainer/devcontainer.json |
Dockerfile |
software | healthy | .devcontainer/Dockerfile |
__init__.py |
software | healthy | tests/__init__.py |
conftest.py |
software | healthy | tests/conftest.py |
test_rights.py |
software | healthy | tests/parser/test_rights.py |
__init__.py |
software | healthy | tests/parser/__init__.py |
test_parser_owl_sameas.py |
software | healthy | tests/parser/test_parser_owl_sameas.py |
conftest.py |
software | healthy | tests/parser/conftest.py |
test_parser.py |
software | healthy | tests/parser/test_parser.py |
test_xml_to_py_to_rdf.py |
software | healthy | tests/parser/test_xml_to_py_to_rdf.py |
test_aggregation_uri_validation.py |
software | healthy | tests/parser/test_aggregation_uri_validation.py |
restored_1.json |
software | healthy | tests/parser/functional/restored_1.json |
schema.json |
software | healthy | tests/parser/functional/schema.json |
test_1.json |
software | healthy | tests/parser/functional/test_1.json |
tests.py |
software | healthy | tests/parser/functional/tests.py |
manual_test.py |
software | healthy | tests/parser/functional/manual_test.py |
test_rights.py |
software | healthy | tests/edm/test_rights.py |
record-input-data.json |
software | healthy | tests/edm/record-input-data.json |
__init__.py |
software | healthy | tests/edm/__init__.py |
conftest.py |
software | healthy | tests/edm/conftest.py |
test_edm_providedCHO.py |
software | healthy | tests/edm/test_edm_providedCHO.py |
test_generic_tests.py |
software | healthy | tests/edm/test_generic_tests.py |
test_edm_classes.py |
software | healthy | tests/edm/test_edm_classes.py |
test_record.py |
software | healthy | tests/edm/test_record.py |
test_value_types.py |
software | healthy | tests/edm/test_value_types.py |
test_uri.py |
software | healthy | tests/edm/test_uri.py |
test_uri_ref.py |
software | healthy | tests/edm/test_uri_ref.py |
web-resource-input-data.json |
software | healthy | tests/edm/web-resource-input-data.json |
cho-id-mismatch.json |
software | healthy | tests/edm/conftest-files/cho-id-mismatch.json |
validate.py |
software | warning | examples/validate.py |
__init__.py |
software | healthy | examples/__init__.py |
parse_rdf_xml.py |
software | warning | examples/parse_rdf_xml.py |
parse_jsonld.py |
software | warning | examples/parse_jsonld.py |
full.json |
software | healthy | examples/full.json |
minimal.json |
software | healthy | examples/minimal.json |
serialize_to_json_ld.py |
software | warning | examples/serialize_to_json_ld.py |
parser.py |
software | healthy | edmlib/parser.py |
__init__.py |
software | healthy | edmlib/__init__.py |
shared_types.py |
software | healthy | edmlib/shared_types.py |
enums.py |
software | healthy | edmlib/edm/enums.py |
__init__.py |
software | healthy | edmlib/edm/__init__.py |
value_types.py |
software | healthy | edmlib/edm/value_types.py |
exceptions.py |
software | healthy | edmlib/edm/exceptions.py |
base.py |
software | healthy | edmlib/edm/base.py |
record.py |
software | healthy | edmlib/edm/record.py |
jsonld_cached_documentloader.py |
software | healthy | edmlib/edm/jsonld_cached_documentloader.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestSanitizeUrlQuotation |
software | healthy | tests/edm/test_uri.py:13 |
EDM_Parser |
software | healthy | edmlib/parser.py:112 |
MANDATE |
software | healthy | edmlib/shared_types.py:5 |
CARDINALITY |
software | healthy | edmlib/shared_types.py:17 |
EDM_Namespace |
software | healthy | edmlib/edm/enums.py:11 |
XSD_Types |
software | healthy | edmlib/edm/enums.py:78 |
MANDATE |
software | healthy | edmlib/edm/enums.py:176 |
CARDINALITY |
software | healthy | edmlib/edm/enums.py:192 |
Ref |
software | healthy | edmlib/edm/value_types.py:9 |
Lit |
software | healthy | edmlib/edm/value_types.py:38 |
InvalidRefException |
software | healthy | edmlib/edm/exceptions.py:4 |
EDM_BaseClass |
software | healthy | edmlib/edm/base.py:9 |
EDM_Record |
software | healthy | edmlib/edm/record.py:38 |
SKOS_Concept |
software | healthy | edmlib/edm/classes/context.py:7 |
EDM_Agent |
software | healthy | edmlib/edm/classes/context.py:272 |
EDM_TimeSpan |
software | healthy | edmlib/edm/classes/context.py:690 |
CC_License |
software | healthy | edmlib/edm/classes/context.py:874 |
EDM_Place |
software | healthy | edmlib/edm/classes/context.py:921 |
ORE_Aggregation |
software | healthy | edmlib/edm/classes/core.py:12 |
EDM_ProvidedCHO |
software | healthy | edmlib/edm/classes/core.py:294 |
EDM_WebResource |
software | healthy | edmlib/edm/classes/core.py:1303 |
SVCS_Service |
software | healthy | edmlib/edm/classes/service.py:7 |
UsageArea |
software | healthy | edmlib/edm/validation/3d_vocabularies.py:6 |
DigitalSourceType |
software | healthy | edmlib/edm/validation/3d_vocabularies.py:28 |
ModelType |
software | healthy | edmlib/edm/validation/3d_vocabularies.py:41 |
| Label | Layer | Status | Path |
|---|---|---|---|
.devcontainer |
software | healthy | .devcontainer |
tests |
software | healthy | tests |
parser |
software | healthy | tests/parser |
functional |
software | healthy | tests/parser/functional |
edm |
software | healthy | tests/edm |
conftest-files |
software | healthy | tests/edm/conftest-files |
examples |
software | healthy | examples |
edmlib |
software | healthy | edmlib |
edm |
software | healthy | edmlib/edm |
classes |
software | healthy | edmlib/edm/classes |
validation |
software | healthy | edmlib/edm/validation |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
image::.devcontainer/Dockerfile |
hardware | healthy | .devcontainer/Dockerfile |
edmlib-devcontainer |
hardware | healthy | .devcontainer/compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::publish-to-pypi |
cicd | healthy | .github/workflows/publish-to-pypi.yml |
gitlab-ci |
cicd | healthy | .gitlab-ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
PYPI_TOKEN |
cicd | healthy | — |
GITLAB_PACKAGING_REGISTRY_TOKEN |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-ptzwh7lc |
software | healthy | /tmp/repobility-clone-ptzwh7lc |
| Label | Layer | Status | Path |
|---|---|---|---|
192.0.2.1 |
network | healthy | tests/edm/conftest.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:15001 |
network | healthy | tests/edm/conftest-files/cho-id-mismatch.json |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | edmlib/edm/classes/core.py |
| Label | Layer | Status | Path |
|---|---|---|---|
publish |
cicd | healthy | .github/workflows/publish-to-pypi.yml |
This page is publicly accessible at:
https://repobility.com/scan/6eb8cbf3-dacf-4c7a-894e-f278de8ac11c/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/6eb8cbf3-dacf-4c7a-894e-f278de8ac11c/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.