chore: pin new Docker and fuzz dependencies by digest - #29
Conversation
|
@coderabbitai review |
|
@coderabbitai approve |
|
@coderabbitai resolve |
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughClusterFuzz Lite 퍼징 기반 시설을 구축하는 변경입니다. 새로운 Dockerfile, 빌드 스크립트, GitHub Actions 워크플로우, DOM 빌더 퍼저, 퍼징 코퍼스, 통합 테스트를 추가하고 기존 Dockerfile과 프로젝트 메타데이터를 업데이트합니다. Changes
Sequence Diagram(s)sequenceDiagram
participant GH as GitHub Actions
participant Checkout as Repository Checkout
participant Build as ClusterFuzzLite Build Action
participant Run as ClusterFuzzLite Run Action
participant Fuzz as Fuzzer (dom_builder_fuzzer)
participant DomBuilder as build_dom Function
GH->>Checkout: workflow_dispatch / pull_request
Checkout->>Build: Repository Contents
Build->>Build: Run .clusterfuzzlite/build.sh
Build->>Fuzz: PyInstaller Executable
Build->>Run: Fuzzer Binaries Ready
Run->>Fuzz: Execute Fuzzer (code-change mode, 300s)
Fuzz->>Fuzz: atheris.Fuzz() generates inputs
Fuzz->>DomBuilder: test_one_input(raw_bytes)
DomBuilder->>DomBuilder: Parse & Coerce Input
DomBuilder->>DomBuilder: Call build_dom()
Run->>GH: Report Results
sequenceDiagram
participant CLI as Command Line
participant Main as main()
participant SmokeMode as --smoke Mode
participant FuzzMode as atheris Fuzz Mode
participant Fuzzer as exercise_dom_builder()
participant DOM as build_dom()
CLI->>Main: Parse Arguments
alt --smoke Provided
Main->>SmokeMode: Load Seed File (mineru_sample.json)
SmokeMode->>SmokeMode: Parse JSON & Coerce Content
SmokeMode->>DOM: build_dom(content, document_id='smoke')
DOM-->>SmokeMode: Return (success/error)
SmokeMode->>Main: Exit 0
else Fuzz Mode
Main->>Main: atheris.Setup()
Main->>Main: atheris.Fuzz()
Main->>Fuzzer: test_one_input(raw_bytes)
Fuzzer->>Fuzzer: Decode UTF-8 & Parse JSON
Fuzzer->>DOM: build_dom(coerced_content, document_id='fuzz')
DOM-->>Fuzzer: Return (continue)
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts
Comment |
✅ Actions performedReview triggered.
|
Pull request was closed
✅ Actions performedComments resolved and changes approved. |
1 similar comment
✅ Actions performedComments resolved and changes approved. |
Summary
pip installcalls to the existinguv.lockflow via lockedfuzzandnvidiaextrasVerification
uv run pytest tests/test_docker_delivery.py tests/test_fuzzing_integration.py tests/test_project_metadata.py -quv run pytest tests/test_workflow_security.py tests/test_workflow_runtime_env.py -quv run pytest -qPYTHONWARNINGS=error uv run pytest -quv run pytest --cov=src/newsdom_api --cov-branch --cov-report=term-missing --cov-fail-under=100 -quv run mkdocs build --strictpython3 -m py_compile fuzzers/dom_builder_fuzzer.py./.venv/bin/python fuzzers/dom_builder_fuzzer.py --smoke tests/fixtures/mineru_sample.jsonpodman build --format docker -t newsdom-api:test /tmp/newsdom-docker-context && podman run --rm -d --name newsdom-api-qa -p 18000:8000 localhost/newsdom-api:test && curl -sf http://127.0.0.1:18000/health