Files
sarif-cli/bin/sarif-make-schema
michael hohn 25a6538946 wip: add simple pull parser
Works, but is incomplete:
qlite> SELECT COUNT(*) FROM results;
SELECT COUNT(*) FROM runs;
SELECT COUNT(*) FROM alerts;
SELECT COUNT(*) FROM referenced_source_regions;
3139
1
0
0
2025-10-20 00:16:21 -07:00

64 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Create SQLite schema for SARIF importer.
"""
import sqlite3, sys
schemas = {
"runs": """CREATE TABLE IF NOT EXISTS runs (
run_id TEXT PRIMARY KEY,
timestamp TIMESTAMP,
tool TEXT,
version TEXT,
exit_code INTEGER
);""",
"results": """CREATE TABLE IF NOT EXISTS results (
run_id TEXT,
rule_id TEXT,
severity TEXT,
message TEXT,
file_path TEXT,
line_start INTEGER,
line_end INTEGER,
column_start INTEGER,
column_end INTEGER,
PRIMARY KEY (run_id, rule_id, file_path, line_start)
);""",
"alerts": """CREATE TABLE IF NOT EXISTS alerts (
alert_id TEXT PRIMARY KEY,
run_id TEXT,
rule_id TEXT,
kind TEXT,
file_path TEXT,
message TEXT,
severity TEXT
);""",
"referenced_source_regions": """CREATE TABLE IF NOT EXISTS referenced_source_regions (
region_id TEXT PRIMARY KEY,
result_id TEXT,
file_path TEXT,
start_line INTEGER,
end_line INTEGER,
start_column INTEGER,
end_column INTEGER,
snippet TEXT,
source_hash TEXT
);"""
}
def main():
if len(sys.argv) < 2:
print("Usage: sarif-make-schema dbfile")
sys.exit(1)
db = sys.argv[1]
con = sqlite3.connect(db)
cur = con.cursor()
for name, sql in schemas.items():
cur.executescript(sql)
con.commit()
con.close()
print(f"Created/verified schema in {db}")
if __name__ == "__main__":
main()