Skip to content

馃悰 kettle-jem: stop overriding the github git source with SSH in the Gemfile template - #65

Merged
pboling merged 1 commit into
mainfrom
fix/kettle-jem-https-github-git-source
Sep 14, 2026
Merged

馃悰 kettle-jem: stop overriding the github git source with SSH in the Gemfile template#65
pboling merged 1 commit into
mainfrom
fix/kettle-jem-https-github-git-source

Conversation

@pboling

@pboling pboling commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Problem

gems/kettle-jem/lib/kettle/jem/templates/Gemfile.example (added in a61dca1) defines

git_source(:github) { |repo_name| "git@github.com:#{repo_name}.git" }

Every templated project therefore locks its github: gems with git@github.com: remotes in Gemfile.lock. CI runners have no SSH key, so locked_deps.yml fails in rv clean-install with Permission denied (publickey). This blocked the releases of kettle-rb, kettle-ndjson, kettle-gha-pins and kettle-wash (fixed per-repo in kettle-dev/kettle-rb#7, kettle-dev/kettle-ndjson#3, kettle-dev/kettle-gha-pins#2, kettle-dev/kettle-wash#2).

Fix

  • Remove the override from the packaged Gemfile so Bundler's built-in (HTTPS) github: source is used. Local SSH preferences still apply at clone time through git's url.<base>.insteadOf, without being recorded in lockfiles.
  • Invert the spec that asserted the SSH override: the packaged Gemfile must not define git_source(:github).
  • CHANGELOG entry.

Verified locally with KETTLE_DEV_DEV=true (monorepo path gems): spec/integration/structural_merge_template_spec.rb, including the inverted example.

Note: the Gemfile merge has no removal rule for git_source, so projects already templated keep their git_source(:github) line until it is removed (and the lockfile relocked) in each project.

Pre-existing, unrelated failure (also fails on origin/main with KETTLE_DEV_DEV=true):

rspec ./spec/integration/structural_merge_template_spec.rb:452

馃 Generated with Claude Code

https://claude.ai/code/session_01P8aveNcdgPobyMrq8DkD9r

The packaged Gemfile.example defined
git_source(:github) { |repo_name| "git@github.com:#{repo_name}.git" },
so every templated project locked its github: gems with git@github.com
remotes. CI runners have no SSH key, and locked_deps workflows failed in
rv clean-install ("Permission denied (publickey)"), blocking releases of
kettle-rb, kettle-ndjson, kettle-gha-pins and kettle-wash. Use Bundler's
built-in HTTPS github source instead, and invert the spec that asserted
the SSH override.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P8aveNcdgPobyMrq8DkD9r
@pboling
pboling merged commit 07561a6 into main Sep 14, 2026
7 checks passed
@pboling
pboling deleted the fix/kettle-jem-https-github-git-source branch September 14, 2026 03:20
This was referenced Sep 14, 2026
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