MCPcopy Create free account
hub / github.com/OWASP/APTS / main

Function main

scripts/validate_cross_references.py:13–53  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

11)
12
13def main() -> int:
14 valid_reqs = set()
15 req_pattern = re.compile(r"APTS-[A-Z]{2}-[A-Z0-9]{3}")
16
17 md_files = git_ls_files("*.md")
18 standard_md_files = [f for f in md_files if Path(f).parts[0] == "standard"]
19
20 for md_file in standard_md_files:
21 content = read_text(md_file)
22
23 # Match definitions like "## APTS-RP-001: Title"
24 defs = re.findall(r"^#{2,4}\s+(APTS-[A-Z]{2}-[A-Z0-9]{3}):", content, re.MULTILINE)
25 valid_reqs.update(defs)
26
27 # Match table definitions like "| APTS-RP-001 |"
28 table_defs = re.findall(r"\|\s*(APTS-[A-Z]{2}-[A-Z0-9]{3})\s*\|", content)
29 valid_reqs.update(table_defs)
30
31 if not valid_reqs:
32 print("Error: No requirements found to validate against.", file=sys.stderr)
33 return 1
34
35 failed = False
36 for md_file in standard_md_files:
37 content = read_text(md_file)
38 lines = content.splitlines()
39
40 for i, line in enumerate(lines):
41 refs = req_pattern.findall(line)
42 for ref in refs:
43 if ref not in valid_reqs:
44 print(f"Error in {display_path(md_file)}:{i+1}")
45 print(f" Invalid cross-reference: {ref} is not a known requirement.")
46 failed = True
47
48 if failed:
49 print("Cross-reference validation failed.", file=sys.stderr)
50 return 1
51
52 print(f"Successfully validated cross-references against {len(valid_reqs)} known requirements.")
53 return 0
54
55if __name__ == "__main__":
56 raise SystemExit(main())

Callers 1

Calls 3

git_ls_filesFunction · 0.90
read_textFunction · 0.90
display_pathFunction · 0.90

Tested by

no test coverage detected