master here requires signed commits. No contributor signs. Every open PR is
therefore unmergeable, including the one that repairs the build.
$ gh api repos/embeddedos-org/eBoot/branches/master/protection
sigs=true reviews=1 checks=null
Verified commit counts on every open PR:
| PR |
verified commits |
author |
| #55 |
0/1 |
tejasmhadgut |
| #57 |
0/1 |
muhammadburhandevv-hub |
| #58 |
0/7 |
Kartikey1306 |
| #59 |
0/9 |
Kartikey1306 |
| #61 |
0/1 |
Harshit-Vashisth |
| #62 |
0/2 |
JoaoMorais03 |
| #63 |
0/1 |
swayam-2003 |
| #64 |
0/1 |
ShrenikMensinkai |
| #65 |
1/3 |
Jayakrishnan9539 |
| #67 |
0/8 |
srpatcha |
Nine of ten have zero verified commits. #65 has one of three, which still fails —
the rule applies per commit.
Why this is urgent rather than tidy
#58 repairs the eos_crc32 conflicting-types failure that stops master from
building. It cannot merge. So the repository cannot be fixed without either
changing the policy or rewriting a contributor's commits for them.
Everything else queues behind it, including #67, which branches from #58 for
exactly that reason.
The policy is also not doing what it looks like it does
Only eBoot and eNI set it:
eBoot sigs=true reviews=1 checks=null
eNI sigs=true reviews=1 checks=null
eos sigs=false reviews=1 checks=null
ebuild sigs=false reviews=1 checks=null
EoSim sigs=false reviews=1 checks=null
EoStudio sigs=false reviews=1 checks=null
eFirmware <branch not protected>
eCAD <no protection>
A signing requirement on two repositories out of nine does not establish
provenance for the platform. It stops contributions to those two. An attacker
targeting the boot chain would go through eos or ebuild, which have no such
requirement and whose output eBoot loads.
Note checks=null everywhere: no repository in the organisation has a required
status check. Nothing verifies that a merge result builds before it becomes the
default branch. That is the gap that actually let broken code onto master here
and in eos (see eos#92), and it is unaddressed while signing is enforced on two
repos.
Options
-
Turn signing off here and in eNI. Consistent with the other seven repos,
unblocks all ten PRs immediately. Provenance for release artifacts is then
handled where it belongs — signed tags and signed .efw images, which is a
supply-chain control over what ships, not over who typed what.
-
Keep it and require it everywhere. Defensible, but it needs contributor
documentation, and it means no external contribution merges anywhere until
each author configures signing. Nine PRs from eight different people are
currently affected in this repo alone.
-
Keep it and have a maintainer re-sign contributor commits. Unblocks
things, but the signature then attests to the maintainer, not the author,
which is the opposite of what the control is for.
My recommendation is 1, paired with adding the required status check that
checks=null shows is missing — that is the control that would have caught the
build breakages, and it is the one no repository has.
This needs an owner decision; I have not changed any setting.
masterhere requires signed commits. No contributor signs. Every open PR istherefore unmergeable, including the one that repairs the build.
Verified commit counts on every open PR:
Nine of ten have zero verified commits. #65 has one of three, which still fails —
the rule applies per commit.
Why this is urgent rather than tidy
#58 repairs the
eos_crc32conflicting-types failure that stopsmasterfrombuilding. It cannot merge. So the repository cannot be fixed without either
changing the policy or rewriting a contributor's commits for them.
Everything else queues behind it, including #67, which branches from #58 for
exactly that reason.
The policy is also not doing what it looks like it does
Only
eBootandeNIset it:A signing requirement on two repositories out of nine does not establish
provenance for the platform. It stops contributions to those two. An attacker
targeting the boot chain would go through
eosorebuild, which have no suchrequirement and whose output eBoot loads.
Note
checks=nulleverywhere: no repository in the organisation has a requiredstatus check. Nothing verifies that a merge result builds before it becomes the
default branch. That is the gap that actually let broken code onto
masterhereand in
eos(see eos#92), and it is unaddressed while signing is enforced on tworepos.
Options
Turn signing off here and in eNI. Consistent with the other seven repos,
unblocks all ten PRs immediately. Provenance for release artifacts is then
handled where it belongs — signed tags and signed
.efwimages, which is asupply-chain control over what ships, not over who typed what.
Keep it and require it everywhere. Defensible, but it needs contributor
documentation, and it means no external contribution merges anywhere until
each author configures signing. Nine PRs from eight different people are
currently affected in this repo alone.
Keep it and have a maintainer re-sign contributor commits. Unblocks
things, but the signature then attests to the maintainer, not the author,
which is the opposite of what the control is for.
My recommendation is 1, paired with adding the required status check that
checks=nullshows is missing — that is the control that would have caught thebuild breakages, and it is the one no repository has.
This needs an owner decision; I have not changed any setting.