diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb
index 7ecb4f75f222c49562a468aafba923dbf6e70324..8f842e508249513194e6b6d90a1526ec11094dad 100644
--- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb
+++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb
@@ -362,7 +362,12 @@ 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(formula, tap_full_name, old_contents)
+          begin
+            remote_url, username = GitHub.forked_repo_info!(tap_full_name)
+          rescue *GitHub.api_errors => e
+            formula.path.atomic_write(old_contents)
+            odie "Unable to fork: #{e.message}!"
+          end
         end
 
         safe_system "git", "fetch", "--unshallow", "origin" if shallow
@@ -445,27 +450,6 @@ module Homebrew
     [resource.fetch, forced_version]
   end
 
-  def forked_repo_info(formula, tap_full_name, old_contents)
-    response = GitHub.create_fork(tap_full_name)
-  rescue GitHub::AuthenticationFailedError, *GitHub.api_errors => e
-    formula.path.atomic_write(old_contents)
-    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:.*")
-      response.fetch("ssh_url")
-    else
-      url = response.fetch("clone_url")
-      if (api_token = Homebrew::EnvConfig.github_api_token)
-        url.gsub!(%r{^https://github\.com/}, "https://#{api_token}@github.com/")
-      end
-      url
-    end
-    username = response.fetch("owner").fetch("login")
-    [remote_url, username]
-  end
-
   def formula_version(formula, spec, contents = nil)
     name = formula.name
     path = formula.path
diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb
index 6d2c5340d5283ddbdd056ec9a10852b1b7448650..c04289fcbe5a7b8b7124ecff426e0ae7b0f05b1e 100644
--- a/Library/Homebrew/utils/github.rb
+++ b/Library/Homebrew/utils/github.rb
@@ -603,4 +603,21 @@ module GitHub
       EOS
     end
   end
+
+  def forked_repo_info!(tap_full_name)
+    response = GitHub.create_fork(tap_full_name)
+    # 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:.*")
+      response.fetch("ssh_url")
+    else
+      url = response.fetch("clone_url")
+      if (api_token = Homebrew::EnvConfig.github_api_token)
+        url.gsub!(%r{^https://github\.com/}, "https://#{api_token}@github.com/")
+      end
+      url
+    end
+    username = response.fetch("owner").fetch("login")
+    [remote_url, username]
+  end
 end