Skip to content

[Security] Harden supply chain dependencies#20

Open
daniel-mohedano wants to merge 2 commits intomasterfrom
daniel.mohedano/SDTEST-3666
Open

[Security] Harden supply chain dependencies#20
daniel-mohedano wants to merge 2 commits intomasterfrom
daniel.mohedano/SDTEST-3666

Conversation

@daniel-mohedano
Copy link
Copy Markdown
Contributor

@daniel-mohedano daniel-mohedano commented Apr 7, 2026

Summary

  • Add Gradle dependency lockfiles (gradle.lockfile) to pin all transitive dependency versions and enable lockAllConfigurations() across all subprojects
  • Restrict mavenLocal() to SNAPSHOT versions only, ensuring releases always resolve from Maven Central with full Gradle Module Metadata (fixes inconsistent lockfile resolution between local and CI)
  • Add distributionSha256Sum to gradle-wrapper.properties for Gradle distribution integrity verification
  • Add gradle/actions/wrapper-validation CI step to both GHA workflows (tests + release)
  • Update actions/checkout from v2 to v4 in test workflow (was 4 major versions behind)
  • Pin gradle/actions/setup-gradle to commit SHA with exact version comment (v4.4.3 instead of floating v4)
  • Add TODO for deprecated openjdk:8 image in GitLab CI (tag removed from Docker Hub, needs migration as part of release process refactor)

What's NOT changed (and why)

  • GitLab CI openjdk:8 image: deprecated and removed from Docker Hub — requires migration to e.g. eclipse-temurin:11-jdk, deferred to release process refactor
  • GitLab CI apt/pip installs: transient CI tools, not part of the build artifact supply chain
  • Internal ECR image (gpg:1): internal image, low risk

Test plan

  • ./gradlew build passes locally with dependency locking enabled
  • Verify GHA test workflow runs successfully with updated actions/checkout v4
  • Verify GHA wrapper-validation job passes
  • Verify release workflow is not affected

🤖 Generated with Claude Code

…pendency pinning

- Add Gradle dependency lockfiles to pin all transitive dependency versions
- Enable dependency locking (`lockAllConfigurations`) across all subprojects
- Add `distributionSha256Sum` to gradle-wrapper.properties for integrity verification
- Add `gradle/actions/wrapper-validation` step to both GHA workflows
- Update `actions/checkout` from v2 to v4 in test workflow (was 4 major versions behind)
- Pin `gradle/actions/setup-gradle` to commit SHA with exact version comment (v4.4.3)
- Add TODO for deprecated openjdk:8 image in GitLab CI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@daniel-mohedano daniel-mohedano requested a review from a team as a code owner April 7, 2026 10:06
mavenLocal() serves artifacts without Gradle Module Metadata, causing
junit-bom (a platform dependency declared in JUnit's .module metadata)
to be missing from the dependency graph locally but present in CI.
Restricting mavenLocal to SNAPSHOT versions ensures releases always
resolve from Maven Central with full metadata, making lockfiles
consistent across local and CI environments.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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