artifact_hash.py python
26 lines 702 B
Raw
sha256:0e9549ec7b463911bc08b7d586dc320b1ac9b1f5c943ee7e3865dcc6cb0f6f83 chore(governance): sync handover+roadmap to 84db8c8 (drift:… Human 2 days ago
1 """Parse ``ARTIFACT_SHA256`` from verify script stdout (§K9.5)."""
2
3 from __future__ import annotations
4
5 import re
6
7 _SHA_LINE = re.compile(r"^ARTIFACT_SHA256=([0-9a-fA-F]+)$")
8
9
10 def parse_artifact_sha256(stdout: bytes) -> str | None:
11 """Decode stdout, strip trailing newlines, parse last line for artifact hash."""
12 try:
13 text = stdout.decode("utf-8")
14 except UnicodeDecodeError:
15 return None
16 stripped = text.rstrip("\n\r")
17 if not stripped:
18 return None
19 if "\n" in stripped:
20 line = stripped.rsplit("\n", 1)[-1]
21 else:
22 line = stripped
23 match = _SHA_LINE.match(line)
24 if not match:
25 return None
26 return match.group(1).lower()
File History 1 commit
sha256:6abcf1fa82a7a621ccbc945f19acdba5bc0db54569599404a1452fb4a096a199 fix(ISR): default require_independent_second_reviewer to require Human minor 2 days ago