Scan timing: clone 4.59s · analysis 2.56s · 24.8 MB · GitHub API rate-limit (preflight)
https://github.com/microsoft/markitdown
· scanned 2026-06-04 04:10 UTC (1 day, 9 hours ago)
· 10 languages
223 findings (115 legacy + 108 scanner) 69th percentile · Python · small (2-20K LoC) Scanner says 89 (lower by 12)
Last scanned 1 day, 9 hours ago · v2 · 169 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 |
55.0 | 0.15 | 8.25 |
security_score |
97.7 | 0.25 | 24.43 |
testing_score |
85.0 | 0.20 | 17.00 |
documentation_score |
80.0 | 0.15 | 12.00 |
practices_score |
75.0 | 0.15 | 11.25 |
code_quality |
43.6 | 0.10 | 4.36 |
| Overall | 1.00 | 77.3 |
All 606 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 |
|---|---|---|---|
extract_text |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py:37 |
svc |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py:46 |
_convert |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py:50 |
test_pptx_image_start |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py:66 |
test_pptx_image_middle |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py:80 |
test_pptx_image_end |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py:96 |
test_pptx_multiple_images |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py:111 |
test_pptx_complex_layout |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py:126 |
test_pptx_no_ocr_service_no_tags |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py:140 |
extract_text |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:33 |
svc |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:40 |
_convert |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:44 |
test_docx_image_start |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:60 |
test_docx_image_middle |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:75 |
test_docx_image_end |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:92 |
test_docx_multiple_images |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:108 |
test_docx_multipage |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:125 |
test_docx_complex_layout |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:152 |
test_inject_placeholders_single_image |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:171 |
test_inject_placeholders_two_images_sequential_tokens |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:180 |
test_inject_placeholders_no_img_tag_appends_at_end |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:194 |
test_inject_placeholders_empty_map_leaves_html_unchanged |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:202 |
test_docx_no_ocr_service_no_tags |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:215 |
extract_text |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:37 |
svc |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:46 |
_convert |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:50 |
test_pdf_image_start |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:66 |
test_pdf_image_middle |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:82 |
test_pdf_image_end |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:100 |
test_pdf_multiple_images |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:117 |
test_pdf_complex_layout |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:134 |
test_pdf_multipage |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:151 |
test_pdf_scanned_invoice |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:167 |
test_pdf_scanned_meeting_minutes |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:171 |
test_pdf_scanned_minimal |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:175 |
test_pdf_scanned_sales_report |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:179 |
test_pdf_scanned_report |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:183 |
test_pdf_scanned_fallback_format |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:197 |
test_pdf_no_ocr_service_no_tags |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:226 |
extract_text |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py:38 |
svc |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py:47 |
_convert |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py:51 |
test_xlsx_image_start |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py:67 |
test_xlsx_image_middle |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py:92 |
test_xlsx_image_end |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py:127 |
test_xlsx_multiple_images |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py:166 |
test_xlsx_complex_layout |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py:201 |
test_xlsx_no_ocr_service_no_tags |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py:241 |
register_converters |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_plugin.py:19 |
__init__ |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_pptx_converter_… |
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 |
Dockerfile |
software | healthy | Dockerfile |
.pre-commit-config.yaml |
software | healthy | .pre-commit-config.yaml |
SUPPORT.md |
software | healthy | SUPPORT.md |
CODE_OF_CONDUCT.md |
software | healthy | CODE_OF_CONDUCT.md |
SECURITY.md |
software | healthy | SECURITY.md |
devcontainer.json |
software | healthy | .devcontainer/devcontainer.json |
README.md |
software | healthy | packages/markitdown-ocr/README.md |
pyproject.toml |
software | healthy | packages/markitdown-ocr/pyproject.toml |
__init__.py |
software | healthy | packages/markitdown-ocr/tests/__init__.py |
test_pptx_converter.py |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py |
test_docx_converter.py |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py |
test_pdf_converter.py |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py |
test_xlsx_converter.py |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py |
__about__.py |
software | warning | packages/markitdown-ocr/src/markitdown_ocr/__about__.py |
__init__.py |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/__init__.py |
_plugin.py |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_plugin.py |
_pptx_converter_with_ocr.py |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_pptx_converter_… |
_docx_converter_with_ocr.py |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_docx_converter_… |
_xlsx_converter_with_ocr.py |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_xlsx_converter_… |
_pdf_converter_with_ocr.py |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_pdf_converter_w… |
_ocr_service.py |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_ocr_service.py |
README.md |
software | healthy | packages/markitdown/README.md |
pyproject.toml |
software | healthy | packages/markitdown/pyproject.toml |
ThirdPartyNotices.md |
software | healthy | packages/markitdown/ThirdPartyNotices.md |
test_cli_vectors.py |
software | healthy | packages/markitdown/tests/test_cli_vectors.py |
__init__.py |
software | healthy | packages/markitdown/tests/__init__.py |
test_pdf_masterformat.py |
software | healthy | packages/markitdown/tests/test_pdf_masterformat.py |
test_module_misc.py |
software | healthy | packages/markitdown/tests/test_module_misc.py |
test_module_vectors.py |
software | healthy | packages/markitdown/tests/test_module_vectors.py |
test_docintel_html.py |
software | healthy | packages/markitdown/tests/test_docintel_html.py |
test_cu_converter.py |
software | healthy | packages/markitdown/tests/test_cu_converter.py |
_test_vectors.py |
software | healthy | packages/markitdown/tests/_test_vectors.py |
test_cli_misc.py |
software | healthy | packages/markitdown/tests/test_cli_misc.py |
test_pdf_memory.py |
software | healthy | packages/markitdown/tests/test_pdf_memory.py |
test_pdf_tables.py |
software | healthy | packages/markitdown/tests/test_pdf_tables.py |
test_serp.html |
software | healthy | packages/markitdown/tests/test_files/test_serp.html |
test_blog.html |
software | healthy | packages/markitdown/tests/test_files/test_blog.html |
test.json |
software | healthy | packages/markitdown/tests/test_files/test.json |
test_wikipedia.html |
software | healthy | packages/markitdown/tests/test_files/test_wikipedia.html |
MEDRPT-2024-PAT-3847_medical_report_scan.md |
software | healthy | packages/markitdown/tests/test_files/expected_outputs/MEDRP… |
test.md |
software | healthy | packages/markitdown/tests/test_files/expected_outputs/test.… |
SPARSE-2024-INV-1234_borderless_table.md |
software | healthy | packages/markitdown/tests/test_files/expected_outputs/SPARS… |
REPAIR-2022-INV-001_multipage.md |
software | healthy | packages/markitdown/tests/test_files/expected_outputs/REPAI… |
RECEIPT-2024-TXN-98765_retail_purchase.md |
software | healthy | packages/markitdown/tests/test_files/expected_outputs/RECEI… |
movie-theater-booking-2024.md |
software | healthy | packages/markitdown/tests/test_files/expected_outputs/movie… |
__about__.py |
software | warning | packages/markitdown/src/markitdown/__about__.py |
__init__.py |
software | healthy | packages/markitdown/src/markitdown/__init__.py |
_exceptions.py |
software | healthy | packages/markitdown/src/markitdown/_exceptions.py |
_stream_info.py |
software | healthy | packages/markitdown/src/markitdown/_stream_info.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
MockOCRService |
software | healthy | packages/markitdown-ocr/tests/test_pptx_converter.py:36 |
MockOCRService |
software | healthy | packages/markitdown-ocr/tests/test_docx_converter.py:32 |
MockOCRService |
software | healthy | packages/markitdown-ocr/tests/test_pdf_converter.py:36 |
MockOCRService |
software | healthy | packages/markitdown-ocr/tests/test_xlsx_converter.py:37 |
PptxConverterWithOCR |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_pptx_converter_… |
DocxConverterWithOCR |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_docx_converter_… |
XlsxConverterWithOCR |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_xlsx_converter_… |
PdfConverterWithOCR |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_pdf_converter_w… |
OCRResult |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_ocr_service.py:… |
LLMVisionOCRService |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr/_ocr_service.py:… |
TestMasterFormatPartialNumbering |
software | healthy | packages/markitdown/tests/test_pdf_masterformat.py:14 |
TestAcceptsExtension |
software | healthy | packages/markitdown/tests/test_cu_converter.py:52 |
TestAcceptsMime |
software | healthy | packages/markitdown/tests/test_cu_converter.py:119 |
TestAcceptsFileTypeRestriction |
software | healthy | packages/markitdown/tests/test_cu_converter.py:165 |
TestDetectFileType |
software | healthy | packages/markitdown/tests/test_cu_converter.py:198 |
TestSmartRouting |
software | healthy | packages/markitdown/tests/test_cu_converter.py:313 |
TestResolveAnalyzerModality |
software | healthy | packages/markitdown/tests/test_cu_converter.py:563 |
TestGetModality |
software | healthy | packages/markitdown/tests/test_cu_converter.py:642 |
TestConvertMock |
software | healthy | packages/markitdown/tests/test_cu_converter.py:667 |
TestGetAnalyzerError |
software | healthy | packages/markitdown/tests/test_cu_converter.py:724 |
TestRegistrationPriority |
software | healthy | packages/markitdown/tests/test_cu_converter.py:751 |
TestCLIArgs |
software | healthy | packages/markitdown/tests/test_cu_converter.py:793 |
TestMissingDependency |
software | healthy | packages/markitdown/tests/test_cu_converter.py:911 |
FileTestVector |
software | healthy | packages/markitdown/tests/_test_vectors.py:6 |
TestPdfMemoryOptimization |
software | healthy | packages/markitdown/tests/test_pdf_memory.py:83 |
TestPdfMemoryBenchmark |
software | healthy | packages/markitdown/tests/test_pdf_memory.py:300 |
TestPdfTableExtraction |
software | healthy | packages/markitdown/tests/test_pdf_tables.py:97 |
TestPdfFullOutputComparison |
software | healthy | packages/markitdown/tests/test_pdf_tables.py:722 |
TestPdfTableMarkdownFormat |
software | healthy | packages/markitdown/tests/test_pdf_tables.py:981 |
TestPdfTableStructureConsistency |
software | healthy | packages/markitdown/tests/test_pdf_tables.py:1040 |
MarkItDownException |
software | healthy | packages/markitdown/src/markitdown/_exceptions.py:11 |
MissingDependencyException |
software | healthy | packages/markitdown/src/markitdown/_exceptions.py:19 |
UnsupportedFormatException |
software | healthy | packages/markitdown/src/markitdown/_exceptions.py:34 |
FailedConversionAttempt |
software | healthy | packages/markitdown/src/markitdown/_exceptions.py:42 |
FileConversionException |
software | healthy | packages/markitdown/src/markitdown/_exceptions.py:52 |
StreamInfo |
software | healthy | packages/markitdown/src/markitdown/_stream_info.py:6 |
DocumentConverterResult |
software | healthy | packages/markitdown/src/markitdown/_base_converter.py:5 |
DocumentConverter |
software | healthy | packages/markitdown/src/markitdown/_base_converter.py:42 |
ConverterRegistration |
software | healthy | packages/markitdown/src/markitdown/_markitdown.py:87 |
MarkItDown |
software | healthy | packages/markitdown/src/markitdown/_markitdown.py:94 |
Tag2Method |
software | healthy | packages/markitdown/src/markitdown/converter_utils/docx/mat… |
Pr |
software | healthy | packages/markitdown/src/markitdown/converter_utils/docx/mat… |
oMath2Latex |
software | healthy | packages/markitdown/src/markitdown/converter_utils/docx/mat… |
AudioConverter |
software | healthy | packages/markitdown/src/markitdown/converters/_audio_conver… |
YouTubeConverter |
software | healthy | packages/markitdown/src/markitdown/converters/_youtube_conv… |
CsvConverter |
software | healthy | packages/markitdown/src/markitdown/converters/_csv_converte… |
_CustomMarkdownify |
software | healthy | packages/markitdown/src/markitdown/converters/_markdownify.… |
RssConverter |
software | healthy | packages/markitdown/src/markitdown/converters/_rss_converte… |
OutlookMsgConverter |
software | healthy | packages/markitdown/src/markitdown/converters/_outlook_msg_… |
PdfConverter |
software | healthy | packages/markitdown/src/markitdown/converters/_pdf_converte… |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.devcontainer |
software | healthy | .devcontainer |
packages |
software | healthy | packages |
markitdown-ocr |
software | healthy | packages/markitdown-ocr |
tests |
software | healthy | packages/markitdown-ocr/tests |
src |
software | healthy | packages/markitdown-ocr/src |
markitdown_ocr |
software | healthy | packages/markitdown-ocr/src/markitdown_ocr |
markitdown |
software | healthy | packages/markitdown |
tests |
software | healthy | packages/markitdown/tests |
test_files |
software | healthy | packages/markitdown/tests/test_files |
expected_outputs |
software | healthy | packages/markitdown/tests/test_files/expected_outputs |
src |
software | healthy | packages/markitdown/src |
markitdown |
software | healthy | packages/markitdown/src/markitdown |
converter_utils |
software | healthy | packages/markitdown/src/markitdown/converter_utils |
docx |
software | healthy | packages/markitdown/src/markitdown/converter_utils/docx |
math |
software | healthy | packages/markitdown/src/markitdown/converter_utils/docx/math |
converters |
software | healthy | packages/markitdown/src/markitdown/converters |
markitdown-sample-plugin |
software | healthy | packages/markitdown-sample-plugin |
tests |
software | healthy | packages/markitdown-sample-plugin/tests |
src |
software | healthy | packages/markitdown-sample-plugin/src |
markitdown_sample_plugin |
software | healthy | packages/markitdown-sample-plugin/src/markitdown_sample_plu… |
markitdown-mcp |
software | healthy | packages/markitdown-mcp |
tests |
software | healthy | packages/markitdown-mcp/tests |
src |
software | healthy | packages/markitdown-mcp/src |
markitdown_mcp |
software | healthy | packages/markitdown-mcp/src/markitdown_mcp |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
image::packages/markitdown-mcp/Dockerfile |
hardware | healthy | packages/markitdown-mcp/Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::tests |
cicd | healthy | .github/workflows/tests.yml |
gha::pre-commit |
cicd | healthy | .github/workflows/pre-commit.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
cicd | healthy | .github/workflows/tests.yml |
pre-commit |
cicd | healthy | .github/workflows/pre-commit.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-o_gwr67l |
software | healthy | /tmp/repobility-clone-o_gwr67l |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | packages/markitdown-mcp/src/markitdown_mcp/__main__.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | packages/markitdown/pyproject.toml |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::packages/markitdown/src/markitdown/converters/_cu_con… |
security | healthy | packages/markitdown/src/markitdown/converters/_cu_converter… |
This page is publicly accessible at:
https://repobility.com/scan/dbdaf599-dde3-40fb-aea4-0a5672c27966/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/dbdaf599-dde3-40fb-aea4-0a5672c27966/
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.