From 84626d3e4cf221ac211582ee44b07cbdafe32684 Mon Sep 17 00:00:00 2001 From: Erica Pisani Date: Thu, 5 Mar 2026 10:41:54 -0500 Subject: [PATCH] fix(release-detector): Prefer HEROKU_BUILD_COMMIT over deprecated HEROKU_SLUG_COMMIT HEROKU_SLUG_COMMIT is deprecated. Use HEROKU_BUILD_COMMIT instead, with a fallback to HEROKU_SLUG_COMMIT for backward compatibility. Co-Authored-By: Claude --- sentry-ruby/lib/sentry/release_detector.rb | 2 +- sentry-ruby/spec/sentry_spec.rb | 30 +++++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/sentry-ruby/lib/sentry/release_detector.rb b/sentry-ruby/lib/sentry/release_detector.rb index c71b216a5..00d77fa8d 100644 --- a/sentry-ruby/lib/sentry/release_detector.rb +++ b/sentry-ruby/lib/sentry/release_detector.rb @@ -13,7 +13,7 @@ def detect_release(project_root:, running_on_heroku:) def detect_release_from_heroku(running_on_heroku) return unless running_on_heroku - ENV["HEROKU_SLUG_COMMIT"] + ENV["HEROKU_BUILD_COMMIT"] || ENV["HEROKU_SLUG_COMMIT"] end def detect_release_from_capistrano(project_root) diff --git a/sentry-ruby/spec/sentry_spec.rb b/sentry-ruby/spec/sentry_spec.rb index 22c7a5859..0d9389416 100644 --- a/sentry-ruby/spec/sentry_spec.rb +++ b/sentry-ruby/spec/sentry_spec.rb @@ -1320,7 +1320,7 @@ end end - it "returns nil + logs an warning if HEROKU_SLUG_COMMIT is not set" do + it "returns nil + logs an warning if HEROKU_BUILD_COMMIT is not set" do string_io = StringIO.new logger = Logger.new(string_io) @@ -1332,13 +1332,37 @@ expect(string_io.string).to include(Sentry::Configuration::HEROKU_DYNO_METADATA_MESSAGE) end - it "returns HEROKU_SLUG_COMMIT" do + it "returns HEROKU_BUILD_COMMIT" do begin - ENV["HEROKU_SLUG_COMMIT"] = "REVISION" + ENV["HEROKU_BUILD_COMMIT"] = "REVISION" described_class.init expect(described_class.configuration.release).to eq("REVISION") ensure + ENV["HEROKU_BUILD_COMMIT"] = nil + end + end + + it "falls back to HEROKU_SLUG_COMMIT when HEROKU_BUILD_COMMIT is not set" do + begin + ENV["HEROKU_SLUG_COMMIT"] = "SLUG_REVISION" + + described_class.init + expect(described_class.configuration.release).to eq("SLUG_REVISION") + ensure + ENV["HEROKU_SLUG_COMMIT"] = nil + end + end + + it "prefers HEROKU_BUILD_COMMIT over HEROKU_SLUG_COMMIT" do + begin + ENV["HEROKU_BUILD_COMMIT"] = "BUILD_REVISION" + ENV["HEROKU_SLUG_COMMIT"] = "SLUG_REVISION" + + described_class.init + expect(described_class.configuration.release).to eq("BUILD_REVISION") + ensure + ENV["HEROKU_BUILD_COMMIT"] = nil ENV["HEROKU_SLUG_COMMIT"] = nil end end