Skip to content

test(supply-chain): rebase Maven checksum RED on live develop - #281

Closed
seonghobae wants to merge 14 commits into
developfrom
security/maven-wrapper-checksum-106add
Closed

test(supply-chain): rebase Maven checksum RED on live develop#281
seonghobae wants to merge 14 commits into
developfrom
security/maven-wrapper-checksum-106add

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Supersedes stale-base PR #266 for issue #265 without rewriting its evidence.

This replacement starts from exact protected develop@106add38465937f6eb4e4accc185fd30aab4446f. Current exact test-only head 39fecd992e22cfa125af2d7af0510b9fd78dd85f adds only MavenWrapperIntegrityTest; protected .mvn/wrapper/maven-wrapper.properties still lacks distributionSha256Sum, so the intended RED is the focused checksum assertion after normal build/test startup.

Preserved contract from #266: Maven Wrapper 3.3.4, only-script, Maven 3.9.11 Central URL, reviewed SHA-256 0d7125e8c91097b36edb990ea5934e6c68b4440eef4ea96510a0f6815e7eeadb. No old-head/base checks or reviews transfer. Keep Draft through valid current-base RED. After RED, the narrow GREEN may add only distributionSha256Sum to the wrapper properties, followed by fresh exact-head validation. Shared exact-source, non-vacuous coverage, scanner-completeness, and independent-review gates remain separate.

Summary by CodeRabbit

  • 보안 강화

    • Maven Wrapper 배포 파일의 SHA-256 체크섬 검증을 추가했습니다.
    • CI 및 SBOM 생성 전에 Wrapper 무결성을 자동으로 확인하도록 개선했습니다.
  • 테스트

    • Maven Wrapper의 버전, 배포 URL, 배포 유형 및 체크섬을 검증하는 테스트를 추가했습니다.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: cf9cd9ee-004f-4954-afc0-ac47c63a97a5

📥 Commits

Reviewing files that changed from the base of the PR and between 0fd506c and 48141b2.

📒 Files selected for processing (1)
  • etl-service/src/test/java/com/xtrmetl/etl/documentation/MavenWrapperIntegrityTest.java
🚧 Files skipped from review as they are similar to previous changes (1)
  • etl-service/src/test/java/com/xtrmetl/etl/documentation/MavenWrapperIntegrityTest.java

📝 Walkthrough

Walkthrough

Maven Wrapper에 Maven 3.9.11 배포 아카이브의 SHA-256 체크섬을 추가했습니다. 검증 도구가 고정된 Wrapper 설정을 확인합니다. CI와 SBOM 워크플로는 Maven 실행 전에 검증합니다. 회귀 테스트가 설정과 워크플로 순서를 검사합니다.

Changes

Maven Wrapper 무결성

Layer / File(s) Summary
체크섬 설정 및 검증 도구
.mvn/wrapper/maven-wrapper.properties, .github/scripts/VerifyMavenWrapperIntegrity.java
Maven Wrapper의 배포 체크섬을 설정했습니다. 검증 도구가 Wrapper 버전, 배포 유형, URL 및 SHA-256 체크섬을 정확히 비교합니다.
CI 및 SBOM 사전 검증 연결
.github/workflows/ci.yml, .github/workflows/sbom.yml
운영체제별 Maven 테스트와 SBOM 생성 전에 Wrapper 무결성 검증 단계를 실행하도록 구성했습니다.
무결성 회귀 테스트
etl-service/src/test/java/com/xtrmetl/etl/documentation/MavenWrapperIntegrityTest.java
Wrapper 설정의 고정값과 체크섬 형식을 검증합니다. CI 및 SBOM 워크플로의 Maven Wrapper 호출이 검증 단계 직후 실행되는지 확인합니다.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CI 또는 SBOM 워크플로
  participant VerifyMavenWrapperIntegrity
  participant Maven Wrapper 설정
  participant Maven Wrapper 실행

  CI 또는 SBOM 워크플로->>VerifyMavenWrapperIntegrity: 무결성 검증 실행
  VerifyMavenWrapperIntegrity->>Maven Wrapper 설정: 고정 URL, 버전, 유형, 체크섬 읽기
  Maven Wrapper 설정-->>VerifyMavenWrapperIntegrity: properties 값 반환
  VerifyMavenWrapperIntegrity-->>CI 또는 SBOM 워크플로: 검증 성공 또는 예외
  CI 또는 SBOM 워크플로->>Maven Wrapper 실행: 테스트 또는 SBOM 생성 실행
Loading

Possibly related issues

Possibly related PRs

Suggested labels: manual-merge

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 Maven 체크섬 RED 테스트를 develop 기준으로 재배치하는 변경 목적과 관련되며, 주요 변경 내용을 구체적으로 나타냅니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch security/maven-wrapper-checksum-106add

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@etl-service/src/test/java/com/xtrmetl/etl/documentation/MavenWrapperIntegrityTest.java`:
- Around line 17-23: Add preflight validation before every Unix and Windows
Maven Wrapper invocation in the CI and SBOM workflows, ensuring the configured
distributionUrl and distributionSha256Sum are present and match the reviewed
fixed values. Make these checks run before the wrapper can bootstrap Maven,
including paths using -DskipTests, while retaining MavenWrapperIntegrityTest as
post-run regression coverage.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 02465730-e0ce-4d53-8001-4de909bee140

📥 Commits

Reviewing files that changed from the base of the PR and between 106add3 and ff937c3.

📒 Files selected for processing (2)
  • .mvn/wrapper/maven-wrapper.properties
  • etl-service/src/test/java/com/xtrmetl/etl/documentation/MavenWrapperIntegrityTest.java

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@etl-service/src/test/java/com/xtrmetl/etl/documentation/MavenWrapperIntegrityTest.java`:
- Around line 138-140: Update containsWrapperInvocation to match the Windows
wrapper invocation with a single runtime backslash, so it detects .\mvnw.cmd
calls alongside ./mvnw calls. Then run ./mvnw -B test to verify the change.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8f916d89-f37c-462f-8010-ed68517100f6

📥 Commits

Reviewing files that changed from the base of the PR and between ff937c3 and 0fd506c.

📒 Files selected for processing (4)
  • .github/scripts/VerifyMavenWrapperIntegrity.java
  • .github/workflows/ci.yml
  • .github/workflows/sbom.yml
  • etl-service/src/test/java/com/xtrmetl/etl/documentation/MavenWrapperIntegrityTest.java

@seonghobae
seonghobae marked this pull request as draft August 11, 2026 20:14
@seonghobae
seonghobae marked this pull request as ready for review August 11, 2026 22:13

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 2664071fd94d18edc3181da1159a2065b24e2d23.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (3 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (3 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Workflow (2 files)"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow (2 files)"]
  R2 --> V2["actionlint plus required checks"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 2664071fd94d18edc3181da1159a2065b24e2d23
  • Workflow run: 31652708448
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 2664071fd94d18edc3181da1159a2065b24e2d23.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (3 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (3 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Workflow (2 files)"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow (2 files)"]
  R2 --> V2["actionlint plus required checks"]
Loading

Copy link
Copy Markdown
Collaborator Author

Superseded by current-base replacement #311; closing this stale evidence lane without transferring its checks/reviews.

Fresh preservation proof: #281 is at 2664071fd94d18edc3181da1159a2065b24e2d23, #311 is at 417f6bcbbd9daca55aacb41f85aa3988bb6336cc, and both resolve from protected develop@4408b6086fd725ff1629d8f048cf28f3a2b40b1b. The reviewed Maven 3.9.11 URL/checksum and MavenWrapperIntegrityTest blobs are identical between the two heads; #311 retains the CI/SBOM preflight contract and strengthens the preflight by rejecting duplicate canonical wrapper properties. The current #281 OpenCode change request and Strix failure remain evidence only for #281 and are not treated as passing or transferred to #311.

@seonghobae seonghobae closed this Aug 13, 2026

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 2664071fd94d18edc3181da1159a2065b24e2d23.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (3 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (3 files)"]
  R1 --> V1["required checks"]
  Evidence --> S2["Workflow (2 files)"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow (2 files)"]
  R2 --> V2["actionlint plus required checks"]
Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant