You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: generate SBOM and attach to GitHub Releases (OSPS-QA-02.02) (#77)
## Summary
- Adds `anchore/sbom-action` to the `merge` job to generate an SPDX JSON
SBOM for each Docker image release
- SBOM is uploaded as `sbom.spdx.json` to the corresponding GitHub
Release via `gh release upload`
- Adds a smoke test in `pre-merge-cd-check` that validates SBOM
generation against the PR image before merge
- Bumps version to 2.6.1
## Motivation
Satisfies
[OSPS-QA-02.02](https://baseline.openssf.org/versions/2025-02-25#osps-qa-0202):
all compiled release assets must be delivered with a software bill of
materials.
## How it works
After the multi-arch manifest is created and verified in the `merge`
job:
1. `anchore/sbom-action` scans the verified image and writes
`sbom.spdx.json` (`upload-artifact: false`, `upload-release-assets:
false` to suppress auto-upload)
2. `gh release upload --clobber` attaches the file to the GitHub Release
after it is created
In `pre-merge-cd-check`, a smoke test generates an SBOM from the PR
amd64 image and confirms the file is non-empty, validating the action
before it reaches the release pipeline.
## Test plan
- [ ] `pre-merge-cd-check` passes — SBOM smoke test generates a
non-empty `sbom-pr.spdx.json`
- [ ] After merge, pipeline releases v2.6.1 with `sbom.spdx.json`
attached to the GitHub Release
- [ ] `gh release download v2.6.1 --pattern 'sbom.spdx.json'` succeeds
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Signed-off-by: Paradoxbound <paradoxbound@users.noreply.github.com>
Co-authored-by: Paradoxbound <paradoxbound@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [2.6.1] - 2026-03-08
11
+
12
+
### Added
13
+
- SBOM (Software Bill of Materials) in SPDX JSON format generated for each Docker image release and attached to the GitHub Release as `sbom.spdx.json` (#77)
14
+
10
15
## [2.6.0] - 2026-03-08
11
16
12
17
### Changed
@@ -111,7 +116,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
111
116
- Response enhancement: URLs, content previews, human-friendly dates, word counts
Source releases are signed git tags — you can verify the tag signature with:
367
367
368
368
```bash
369
-
git tag --verify v2.6.0
369
+
git tag --verify v2.6.1
370
+
```
371
+
372
+
### Software Bill of Materials (SBOM)
373
+
374
+
Every Docker image release includes an SBOM in SPDX JSON format, attached as an asset to the [GitHub Release](https://github.com/paradoxbound/bookstack-mcp/releases). Download it from the release page:
0 commit comments