From 93c3775147cef16768331b1af221e37bf9db78fb Mon Sep 17 00:00:00 2001 From: Carlo Cabrera <30379873+carlocab@users.noreply.github.com> Date: Mon, 24 Apr 2023 21:53:05 +0800 Subject: [PATCH 1/2] git_repository: define `#to_str` Fixes: Error: no implicit conversion of GitRepository into String when doing `brew pr-pull --autosquash`. See [1]. I contemplated implementing only `#to_s`, but we've historically used these as `Pathname`s, and `Pathname` defines `#to_str`. [1] https://github.com/Homebrew/homebrew-core/actions/runs/4784638305/jobs/8506369135#step:10:54 --- Library/Homebrew/git_repository.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Library/Homebrew/git_repository.rb b/Library/Homebrew/git_repository.rb index ba5aab4024..2f4b828abe 100644 --- a/Library/Homebrew/git_repository.rb +++ b/Library/Homebrew/git_repository.rb @@ -109,6 +109,12 @@ class GitRepository popen_git("log", "-1", "--pretty=%B", commit, "--", safe: safe, err: :out)&.strip end + sig { returns(String) } + def to_str + pathname.to_str + end + alias to_s to_str + private sig { params(args: T.untyped, safe: T::Boolean, err: T.nilable(Symbol)).returns(T.nilable(String)) } From 2f378778589c0c40c5c198d64e1267bca3955d17 Mon Sep 17 00:00:00 2001 From: Carlo Cabrera <30379873+carlocab@users.noreply.github.com> Date: Mon, 24 Apr 2023 22:34:09 +0800 Subject: [PATCH 2/2] git_repository: implement `#to_s` instead --- Library/Homebrew/dev-cmd/pr-pull.rb | 6 +++--- Library/Homebrew/git_repository.rb | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/dev-cmd/pr-pull.rb b/Library/Homebrew/dev-cmd/pr-pull.rb index 80a75e5703..258c2e8c26 100644 --- a/Library/Homebrew/dev-cmd/pr-pull.rb +++ b/Library/Homebrew/dev-cmd/pr-pull.rb @@ -161,10 +161,10 @@ module Homebrew package_name = package_file.basename.to_s.chomp(".rb") odebug "Cherry-picking #{package_file}: #{commit}" - Utils::Git.cherry_pick!(git_repo, commit, verbose: verbose, resolve: resolve) + Utils::Git.cherry_pick!(git_repo.to_s, commit, verbose: verbose, resolve: resolve) - old_package = Utils::Git.file_at_commit(git_repo, file, "HEAD^") - new_package = Utils::Git.file_at_commit(git_repo, file, "HEAD") + old_package = Utils::Git.file_at_commit(git_repo.to_s, file, "HEAD^") + new_package = Utils::Git.file_at_commit(git_repo.to_s, file, "HEAD") bump_subject = determine_bump_subject(old_package, new_package, package_file, reason: reason).strip subject, body, trailers = separate_commit_message(git_repo.commit_message) diff --git a/Library/Homebrew/git_repository.rb b/Library/Homebrew/git_repository.rb index 2f4b828abe..83a312c425 100644 --- a/Library/Homebrew/git_repository.rb +++ b/Library/Homebrew/git_repository.rb @@ -110,10 +110,9 @@ class GitRepository end sig { returns(String) } - def to_str - pathname.to_str + def to_s + pathname.to_s end - alias to_s to_str private