Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
654e554
test(osv): define direct-source provenance contracts
seonghobae Aug 20, 2026
327f9c7
ci(osv): exercise direct-source provenance contract
seonghobae Aug 20, 2026
93dd991
fix(osv): reconcile exact immutable source evidence
seonghobae Aug 20, 2026
00abb82
docs(osv): explain direct-source provenance evidence
seonghobae Aug 20, 2026
123d9d2
ci(osv): preserve provenance before vulnerability verdict
seonghobae Aug 20, 2026
80fd3fd
ci(osv): bind policy checkout to governed source
seonghobae Aug 20, 2026
03254d7
test(osv): bind reconciliation ahead of reporter
seonghobae Aug 20, 2026
2b7f71d
test(osv): reproduce live nested advisory shape
seonghobae Aug 20, 2026
9b95378
fix(osv): read authoritative nested affected range
seonghobae Aug 20, 2026
f2a9419
test(osv): reject package-key tarball disagreement
seonghobae Aug 20, 2026
42845bb
ci(osv): require full suite and branch coverage
seonghobae Aug 20, 2026
9d33c40
test(osv): cover every fail-closed provenance branch
seonghobae Aug 20, 2026
003b357
fix(osv): fail closed on malformed source ports
seonghobae Aug 20, 2026
78ae8a0
test(osv): assert exact CLI success code
seonghobae Aug 20, 2026
29af209
fix(ci): keep provenance quality workflow PR-only
seonghobae Aug 20, 2026
c573b35
fix(osv): fail closed on ambiguous provenance
seonghobae Aug 20, 2026
c3636cc
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 20, 2026
e2c0031
fix(osv): reject malformed UTF-8 inputs safely
seonghobae Aug 20, 2026
d1da605
fix(osv): exit cleanly on malformed text input
seonghobae Aug 20, 2026
73bb8c7
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 20, 2026
f285fd7
test: document OSV provenance cases
seonghobae Aug 20, 2026
915a528
Merge branch 'main' into fix/osv-direct-source-provenance-1096
seonghobae Aug 20, 2026
c6c2684
fix(security): read OSV inputs without symlink races
seonghobae Aug 21, 2026
fe27160
test(security): cover secure OSV input branches
seonghobae Aug 21, 2026
75d7f5f
style(test): combine secure input contexts
seonghobae Aug 21, 2026
a0fbba8
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 21, 2026
9f46401
fix(osv): accept verified empty scan documents
seonghobae Aug 21, 2026
6a4e63a
docs: close coordinator docstring gate
seonghobae Aug 21, 2026
0f2e4c9
chore(osv): satisfy reconciler lint contract
seonghobae Aug 21, 2026
6e93fd0
fix(osv): parse pnpm package provenance safely
seonghobae Aug 21, 2026
6ea77b1
Merge protected main into OSV direct-source provenance
seonghobae Aug 21, 2026
3a619b5
fix(security): pin pip-audit pip below vulnerability
seonghobae Aug 21, 2026
ad46744
fix(osv): distinguish findings from scanner failure
seonghobae Aug 21, 2026
a93d086
fix(security): retain fixed pip-audit toolchain
seonghobae Aug 21, 2026
d02d57e
fix(security): regenerate pip audit lock provenance
seonghobae Aug 21, 2026
f031579
chore(security): keep pip lock repair in its owner branch
seonghobae Aug 21, 2026
67f3064
Merge branch 'main' into fix/osv-direct-source-provenance-1096
seonghobae Aug 21, 2026
843d874
test: align scheduler gate with dispatch concurrency
seonghobae Aug 21, 2026
a7fb512
docs(security): clarify per-scan OSV evidence ownership
seonghobae Aug 21, 2026
acbd253
test: track scheduler concurrency contract
seonghobae Aug 21, 2026
7a171bc
chore(osv): restore Strix contract to owner lane
seonghobae Aug 21, 2026
9b44801
test(scheduler): track current dispatch concurrency
seonghobae Aug 21, 2026
7449aaf
chore(osv): keep Strix assertions on canonical owner
seonghobae Aug 21, 2026
10f1ccd
test(security): require supported OSV output flags
seonghobae Aug 21, 2026
db6dee6
fix(security): use supported OSV output arguments
seonghobae Aug 21, 2026
c24ce16
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 21, 2026
1eaba56
test(scheduler): preserve dispatch concurrency contract
seonghobae Aug 21, 2026
092d838
chore(osv): restore canonical Strix ownership
seonghobae Aug 21, 2026
fca5cd1
test(scheduler): align quick gate with canonical concurrency
seonghobae Aug 21, 2026
eb7efe5
ci: refresh pip audit runtime
seonghobae Aug 21, 2026
c45a776
chore(osv): restore canonical pip lock ownership
seonghobae Aug 21, 2026
f61a879
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 21, 2026
4748ced
fix(osv): report malformed evidence cleanly
seonghobae Aug 21, 2026
4e1102b
Merge branch 'main' into fix/osv-direct-source-provenance-1096
seonghobae Aug 21, 2026
2cc5427
Merge protected main into OSV provenance repair
seonghobae Aug 23, 2026
6a92e1c
fix(osv): pin immutable SheetJS artifact integrity
seonghobae Aug 23, 2026
10ee81c
fix(security): trust protected policy on self-scan
seonghobae Aug 23, 2026
e61fb11
fix(osv): preserve raw evidence during policy bootstrap
seonghobae Aug 23, 2026
3741f69
merge(main): refresh OSV provenance owner
seonghobae Aug 24, 2026
9736108
fix(osv): report atomic evidence write failures cleanly
seonghobae Aug 24, 2026
88b6859
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 24, 2026
abada26
Merge protected main into fix/osv-direct-source-provenance-1096
seonghobae Aug 25, 2026
3212348
Merge protected main into OSV direct-source provenance
seonghobae Aug 25, 2026
05b1f25
docs(osv): clarify inclusive affected bounds
seonghobae Aug 25, 2026
79bcded
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 25, 2026
9eb3659
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 25, 2026
8d3f84a
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 25, 2026
5addc92
Merge protected main into OSV provenance owner
seonghobae Aug 25, 2026
1283b98
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 26, 2026
c537afe
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 26, 2026
ebe39ac
Merge branch 'main' into fix/osv-direct-source-provenance-1096
opencode-agent[bot] Aug 26, 2026
e2b31d8
Merge branch 'main' into fix/osv-direct-source-provenance-1096
seonghobae Aug 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/osv-direct-source-quality-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: OSV Direct Source Quality CI

on:
pull_request:
branches: [main]
paths:
- '.github/workflows/security-scan.yml'
- '.github/workflows/osv-direct-source-quality-ci.yml'
- 'scripts/ci/osv_direct_source_reconcile.py'
- 'tests/test_osv_direct_source_reconcile.py'
- 'docs/doctoring/osv-direct-source-provenance.md'
permissions:
contents: read

concurrency:
group: osv-direct-source-quality-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
provenance-contract:
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- name: Checkout exact source revision
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.14'
- name: Install exact hash-verified quality dependencies
env:
PIP_DISABLE_PIP_VERSION_CHECK: '1'
PIP_NO_INPUT: '1'
shell: bash --noprofile --norc -e -o pipefail {0}
run: |
cat >"${RUNNER_TEMP}/osv-provenance-quality-requirements.txt" <<'EOF'
coverage==7.15.2 --hash=sha256:b9a6367e4aff723e8ee8190836836124284e8fcd4265e307c844010cfa074f3f
iniconfig==2.1.0 --hash=sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760
packaging==26.2 --hash=sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e
pluggy==1.6.0 --hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746
pygments==2.20.0 --hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176
pytest==9.1.1 --hash=sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c
EOF
python -m pip install \
--only-binary=:all: \
--require-hashes \
-r "${RUNNER_TEMP}/osv-provenance-quality-requirements.txt"
Comment thread
seonghobae marked this conversation as resolved.
- name: Verify full central suite and provenance coverage
shell: bash --noprofile --norc -e -o pipefail {0}
run: |
test "$(git rev-parse HEAD)" = "${{ github.event.pull_request.head.sha || github.sha }}"
python -m coverage run --branch -m pytest --import-mode=importlib tests -q
python -m coverage report \
--include='scripts/ci/osv_direct_source_reconcile.py' \
--show-missing \
--fail-under=100
Comment thread
seonghobae marked this conversation as resolved.
python -m compileall -q \
scripts/ci/osv_direct_source_reconcile.py \
tests/test_osv_direct_source_reconcile.py
git diff --exit-code
Loading
Loading