From c5da90e0eb2ade879d7e60a0ec6a193aad3f8afb Mon Sep 17 00:00:00 2001 From: Dawid Dziurla Date: Sat, 23 Nov 2019 14:08:28 +0100 Subject: [PATCH] bump-formula-pr: fix forking logic --- Library/Homebrew/dev-cmd/bump-formula-pr.rb | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index 58cb293265..66b6e1f21d 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -341,7 +341,7 @@ module Homebrew remote_url = Utils.popen_read("git remote get-url --push origin").chomp username = formula.tap.user else - remote_url, username = forked_repo_info(tap_full_name) + remote_url, username = forked_repo_info(formula, tap_full_name, backup_file) end safe_system "git", "fetch", "--unshallow", "origin" if shallow @@ -380,15 +380,16 @@ module Homebrew end end - def forked_repo_info(tap_full_name) - response = GitHub.create_fork(tap_full_name) - rescue GitHub::AuthenticationFailedError, *GitHub.api_errors => e - formula.path.atomic_write(backup_file) - odie "Unable to fork: #{e.message}!" - else - # GitHub API responds immediately but fork takes a few seconds to be ready. - sleep 1 until GitHub.check_fork_exists(tap_full_name) - remote_url = if system("git", "config", "--local", "--get-regexp", "remote\..*\.url", "git@github.com:.*") + def forked_repo_info(formula, tap_full_name, backup_file) + begin + response = GitHub.create_fork(tap_full_name) + # GitHub API responds immediately but fork takes a few seconds to be ready. + sleep 3 + rescue GitHub::AuthenticationFailedError, *GitHub.api_errors => e + formula.path.atomic_write(backup_file) + odie "Unable to fork: #{e.message}!" + end + remote_url = if system("git", "config", "--local", "--get-regexp", "remote\..*\.url", "git@github.com:.*") response.fetch("ssh_url") else response.fetch("clone_url")