A clone fails on tags made before a key rotation issue #114 closed: completed andymccall opened this · 1 comment
andymccall set labels bug ·
closed by change e5d9b0513f3e ·
andymccall
Fixed in 31ae7daf; pinned into oxygenflow (64ba4ad3) and oxygenhub (8c17f0fb); earth-1, mars-1 and plex-1 run it. Released oxy 0.4.3 still fails a fresh clone of this repository until the next release.
andymccall closed ·
A fresh
oxy clone https://oxygenhub.io/andymccall/oxygenfails with oxy 0.4.3:Found when a new runner (mars-1) had no cached copy of the oxygen subrepo and oxygenhub run 332's
fmtjob failed while cloning it.Cause: a tag's attestation is checked against the current policy with
Policy::authorizes, which knows nothing of rotation. v0.1.0 was signed by a key that has since been rotated to one the policy names, so every tag made before a rotation is refused, and one refused tag fails the whole clone. Changes already handle this (Policy::succeedswalkspreviouslinks); tags did not.Fix: a tag signed by a predecessor of a key the rule lists is authorized when it is dated before that predecessor's successor was made, so old tags stay valid and a superseded key makes nothing new. Revoked keys never qualify.
After the fix: oxygen, then the pins in oxygenflow (runners) and oxygenhub, then the runners redeployed.