[Phase 2] arp-scan + nmap integration and XML parsing - #20
Merged
Merged
Conversation
- Implement ArpHost dataclass and parse_arp_output() pure parser - Implement run_arp_scan() with subprocess, env var fallbacks, and error handling - Fix arp-scan regex to handle optional vendor column (no trailing tab) - Implement NmapHost/PortInfo dataclasses and parse_nmap_xml() with full XML parsing - Implement run_nmap_scan() with temp-file XML output and guaranteed cleanup - Implement orchestrate_scan() merging ARP MAC enrichment into nmap results - Add 4 nmap fixture XML files covering rich, minimal, down-host, and no-ports cases - Add 45 tests (unit + integration) with 100% line coverage - Fix pre-existing Ruff PT001/PT023 issues in test_db.py and test_main.py
CI was running ruff==0.4.x which had reversed PT023 opinion (requires parens) and flagged S603 noqa comments differently. Pinning to 0.15.x matches local toolchain. Add N817 to ignore list since 'ET' is the universal stdlib alias for xml.etree.ElementTree.
CVE-2024-47874 and CVE-2025-54121 in starlette 0.37.x; fix is starlette>=0.47.2 which requires fastapi>=0.120 for dependency compatibility.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
arp_scan.py(subprocess wrapper + pure parser for arp-scan output),nmap_scan.py(subprocess wrapper + XML parser for-oXoutput), andscanner/__init__.pyorchestrator that merges ARP MAC data into nmap resultstest_db.pyandtest_main.pyTest coverage
Closes #4