Skip to content

Commit 943dbe4

Browse files
authored
Update design to include org required checks in policy. (#167)
Signed-off-by: Tom Hennen <tomhennen@google.com>
1 parent 50e75e6 commit 943dbe4

File tree

2 files changed

+57
-3
lines changed

2 files changed

+57
-3
lines changed

DESIGN.md

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ outside of user control) to indicate what controls _ought_ to be enforced and wh
343343
enforcement should start.
344344

345345
This is used to prevent users from disabling controls, making changes, and reenabling the
346-
controls. Now, if a user wanted to do so they'd also have to update their 'Since' date
346+
controls. Now, if a user wanted to do so they'd also have to update the 'Since' dates
347347
in their policy, and have that change submitted to the policy repo. The updated date
348348
would then not cover the uncontrolled changes they made.
349349

@@ -355,13 +355,67 @@ This amounts to public declaration of SLSA adoption and allows backsliding to be
355355
"protected_branches": [
356356
{
357357
"Name": "main",
358-
"Since": "2025-02-28T15:09:27.845Z",
359-
"target_slsa_source_level": "SLSA_SOURCE_LEVEL_2"
358+
"Since": "2025-03-28T15:09:27.845Z",
359+
"target_slsa_source_level": "SLSA_SOURCE_LEVEL_3",
360+
"org_status_check_controls": [
361+
{
362+
"check_name": "test",
363+
"property_name": "ORG_SOURCE_TESTED",
364+
"Since": "2025-05-31T22:44:18.816Z"
365+
}
366+
]
360367
}
361368
]
362369
}
363370
```
364371

372+
### Org Specified Properties
373+
374+
Policies also allow users to specify that the GitHub repo must have a rule requiring
375+
certain 'checks' to be run by GitHub Actions. In the above policy example
376+
the organization must have their repo configured to require the 'test' status check
377+
have been run by GitHub Actions. As seen in this example:
378+
379+
![required status check example](media/require_status_checks.png)
380+
381+
## Verification Summary Attestations (VSA)
382+
383+
Example VSA
384+
385+
```json
386+
{
387+
"_type": "https://in-toto.io/Statement/v1",
388+
"subject": [
389+
{
390+
"digest": {
391+
"gitCommit": "932eb09d23b8574a5c1c3780afec1a93ebaa3e92"
392+
},
393+
"annotations": {
394+
"source_refs": [
395+
"refs/heads/main"
396+
]
397+
}
398+
}
399+
],
400+
"predicateType": "https://slsa.dev/verification_summary/v1",
401+
"predicate": {
402+
"policy": {
403+
"uri": "https://github.com/slsa-framework/slsa-source-poc/blob/main/policy/github.com/slsa-framework/slsa-source-poc/source-policy.json"
404+
},
405+
"resourceUri": "git+https://github.com/slsa-framework/slsa-source-poc",
406+
"timeVerified": "2025-06-01T15:19:28.226795439Z",
407+
"verificationResult": "PASSED",
408+
"verifiedLevels": [
409+
"SLSA_SOURCE_LEVEL_3",
410+
"ORG_SOURCE_TESTED"
411+
],
412+
"verifier": {
413+
"id": "https://github.com/slsa-framework/slsa-source-poc"
414+
}
415+
}
416+
}
417+
```
418+
365419
## Attestation Storage
366420

367421
Attestations are stored on commits using [git notes](https://git-scm.com/docs/git-notes)

media/require_status_checks.png

117 KB
Loading

0 commit comments

Comments
 (0)