fix: spærren godtager kun præcis stempellinjen
canonical() fjernede enhver linje med godkendt: fra det signerede, og Zola kan lukke frontmatter midt på en linje. Sammen gav det plads til ugodkendt tekst i et gyldigt stemplet indlæg. Nu er kun den linje tjenesten skriver usigneret, og kun én gang. Bruger runnerens python3 i stedet for setup-python, som kun har builds til Ubuntu. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
aeb7c88949
commit
41e7dacae6
+9
-1
@@ -40,6 +40,14 @@ def old_sign(key, rel, text, assets):
|
||||
return "v1:" + hmac.new(key, body.encode(), hashlib.sha256).hexdigest()
|
||||
|
||||
|
||||
def old_stamp(text):
|
||||
"""(stempel eller None, draft) i det gamle format."""
|
||||
head = text.split("\n---\n", 1)[0].split("\n")
|
||||
g = next((l for l in head if l.startswith("godkendt:")), None)
|
||||
stamp = re.sub(r"^godkendt:\s*", "", g).strip("'\"") if g else None
|
||||
return stamp, any(re.fullmatch(r"draft:\s*true\s*", l) for l in head)
|
||||
|
||||
|
||||
def migrated(text, stamp):
|
||||
"""Den gamle fil i det nye format: tags under taxonomies, stemplet under extra."""
|
||||
lines = text.split("\n")
|
||||
@@ -76,7 +84,7 @@ def main():
|
||||
errors.append(f"{rel}: findes ikke i {args.fra} som {old_rel}; kun godkendelsesflowet må stemple nyt")
|
||||
continue
|
||||
text = read_text(rel)
|
||||
stamp_gl, draft = stamp_of(old)
|
||||
stamp_gl, draft = old_stamp(old)
|
||||
o_assets = old_assets(args.fra, slug)
|
||||
n_assets = assets_for(slug)
|
||||
if draft or not stamp_gl or not hmac.compare_digest(stamp_gl, old_sign(key, old_rel, old, o_assets)):
|
||||
|
||||
Reference in New Issue
Block a user