Skip to content

Fix GitHub check status failing due to removed URI.escape in Ruby 3.0+#360

Merged
piccadilly-circus merged 2 commits intomasterfrom
fix/github-check-status-uri-escape
Apr 9, 2026
Merged

Fix GitHub check status failing due to removed URI.escape in Ruby 3.0+#360
piccadilly-circus merged 2 commits intomasterfrom
fix/github-check-status-uri-escape

Conversation

@piccadilly-circus
Copy link
Copy Markdown
Contributor

@piccadilly-circus piccadilly-circus commented Mar 25, 2026

Summary

  • Replace removed URI.escape with CGI.escape in file_link helper, fixing NoMethodError on Ruby 3.0+ that silently kills the entire github_check_status Sidekiq task
  • This bug is triggered when any job has a gemfile: matrix config key (e.g., gemfile: Gemfile.collate), causing file_link to be called during check run output generation
  • Add test coverage for builds with gemfile in staged jobs
  • Fix pre-existing email mailer HTML test failure caused by missing enterprise = false in test setup

Context

URI.escape was removed in Ruby 3.0. The file_link method in the check status output helper still used it, causing a NoMethodError whenever a job includes a gemfile: key in its matrix config. This crashes the Sidekiq task, so no check run is ever created or updated on GitHub.

Replace URI.escape with CGI.escape in the file_link helper method.
URI.escape was removed in Ruby 3.0, causing a NoMethodError that silently
breaks GitHub PR check creation for any build with a `gemfile:` matrix key.
The enterprise merge (1d58720) wrapped the build environment updates
section in an unless Travis.config.enterprise? conditional, but the
test never explicitly set enterprise to false, causing the section to
be skipped and the assertion to fail.
@piccadilly-circus piccadilly-circus merged commit 449be40 into master Apr 9, 2026
2 checks passed
@piccadilly-circus piccadilly-circus deleted the fix/github-check-status-uri-escape branch April 9, 2026 08:50
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