Skip to content

chore: Pin dev deps, track lockfile, add bundler to Dependabot#497

Open
itaybre wants to merge 2 commits into
masterfrom
itay/supply-chain-hardening
Open

chore: Pin dev deps, track lockfile, add bundler to Dependabot#497
itaybre wants to merge 2 commits into
masterfrom
itay/supply-chain-hardening

Conversation

@itaybre

@itaybre itaybre commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Pin all dev dependencies in gemspec to pessimistic minor version ranges (~>) to prevent unexpected major version breakage
  • Remove bundler from gemspec dev deps — it's a toolchain dependency, not a gem dependency
  • Track Gemfile.lock (generated with bundler 2.6.8, matching CI)
  • Add bundler ecosystem to Dependabot for automated gem updates

Changes

File Change
fastlane-plugin-sentry.gemspec Pin fastlane ~> 2.10, pry ~> 0.14, rspec ~> 3.0, rubocop ~> 1.0, rubocop-rspec ~> 3.0; drop bundler
.gitignore Stop ignoring Gemfile.lock
Gemfile.lock New — generated with bundler 2.6.8
.github/dependabot.yml Add bundler ecosystem (weekly)

Follow-up items

  • Add bundler-audit to CI to catch known CVEs in transitive deps
  • Pin bundler version in integration-test.yml (currently unspecified, unlike test.yml which uses 2.6.8)

Test plan

  • CI passes with the new version constraints and lockfile
  • bundle install resolves cleanly against the tracked lockfile

#skip-changelog

itaybre and others added 2 commits June 12, 2026 10:57
…r to Dependabot

- Pin all dev dependencies in gemspec to pessimistic minor version ranges
  to prevent unexpected major version breakage
- Remove bundler from gemspec dev deps (it's a toolchain dep, not a gem dep)
- Track Gemfile.lock (generated with bundler 2.6.8 matching CI)
- Add bundler ecosystem to Dependabot for automated gem updates

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Match test.yml by installing bundler 2.6.8 explicitly before
bundle install, ensuring consistent dependency resolution.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@itaybre itaybre marked this pull request as ready for review June 12, 2026 14:18
@itaybre itaybre changed the title build: harden supply chain — pin dev deps, track lockfile, add bundler to Dependabot chore: Pin dev deps, track lockfile, add bundler to Dependabot Jun 12, 2026
Comment thread Gemfile.lock
Comment on lines +293 to +295
PLATFORMS
arm64-darwin-24
ruby

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Bug: The Gemfile.lock is missing the Windows platform (x64-mingw-ucrt), which will cause the bundle install command to fail on the Windows CI runner.
Severity: HIGH

Suggested Fix

Add the required platforms to the lockfile by running bundle lock --add-platform x86_64-linux and bundle lock --add-platform x64-mingw-ucrt. This will ensure bundle install can resolve dependencies correctly across all CI environments.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.

Location: Gemfile.lock#L293-L295

Potential issue: The `Gemfile.lock` was generated on a macOS machine (`arm64-darwin-24`)
and does not include the necessary platform entry for Windows (e.g., `x64-mingw-ucrt`).
The CI pipeline is configured to run tests on `windows-latest` and has been updated to
use `bundler` version `2.6.8`. Bundler versions 2.2 and newer enforce strict platform
matching. When `bundle install` is executed on the Windows CI runner, it will fail
because the runner's platform is not present in the lockfile's `PLATFORMS` section,
leading to a build failure.

Also affects:

  • .github/workflows/integration-test.yml:21~27

Did we get this right? 👍 / 👎 to inform future reviews.

@philprime philprime left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Almost LGTM

with:
ruby-version: "3.1.2"

- run: gem install bundler -v '2.6.8'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

h: I don't think we need this as bundle install uses the bundler version defined in the Gemfile.lock automatically

Comment thread Gemfile.lock
Comment on lines +294 to +295
arm64-darwin-24
ruby

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

m: I think it should be enough to just define ruby here

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.

2 participants