MCPcopy
hub / github.com/openai/plugins / write_csv_export

Function write_csv_export

plugins/codex-security/scripts/workbench_db.py:2515–2568  ·  view source on GitHub ↗
(connection: sqlite3.Connection, scan: sqlite3.Row)

Source from the content-addressed store, hash-verified

2513
2514
2515def write_csv_export(connection: sqlite3.Connection, scan: sqlite3.Row) -> Path:
2516 scan_dir = require_canonical_scan_directory(Path(scan["scan_dir"]))
2517 output = io.StringIO(newline="")
2518 writer = csv.writer(output)
2519 writer.writerow(
2520 (
2521 "occurrence_id",
2522 "finding_id",
2523 "title",
2524 "summary",
2525 "severity",
2526 "confidence",
2527 "status",
2528 "close_reason",
2529 "note",
2530 "remediation",
2531 "path",
2532 "start_line",
2533 "end_line",
2534 )
2535 )
2536 for row in finding_export_rows(connection, scan["id"]):
2537 writer.writerow(
2538 (
2539 csv_cell(row["occurrence_id"]),
2540 csv_cell(row["finding_id"]),
2541 csv_cell(row["title"]),
2542 csv_cell(row["summary"]),
2543 csv_cell(row["severity"]),
2544 csv_cell(row["confidence"]),
2545 csv_cell(row["status"]),
2546 csv_cell(row["close_reason"]),
2547 csv_cell(row["note"]),
2548 csv_cell(row["remediation"]),
2549 csv_cell(row["relative_path"]),
2550 row["start_line"],
2551 row["end_line"],
2552 )
2553 )
2554 try:
2555 write_scan_local_bytes(
2556 scan_dir,
2557 "exports/findings.csv",
2558 output.getvalue().encode("utf-8"),
2559 )
2560 except ContractError as exc:
2561 raise SystemExit(
2562 "exports: expected a regular directory inside the scan directory."
2563 ) from exc
2564 destination = scan_dir / "exports" / "findings.csv"
2565 path = available_artifact_path(scan_dir, destination)
2566 if path is None:
2567 raise SystemExit("findings.csv: expected a regular file inside the scan directory.")
2568 return path
2569
2570
2571def finding_export_rows(connection: sqlite3.Connection, scan_id: str) -> sqlite3.Cursor:

Callers 1

export_findingsFunction · 0.85

Calls 5

write_scan_local_bytesFunction · 0.90
finding_export_rowsFunction · 0.85
csv_cellFunction · 0.85
available_artifact_pathFunction · 0.85

Tested by

no test coverage detected