aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/exceptions.rb6
-rw-r--r--Library/Homebrew/tap.rb8
-rw-r--r--Library/Homebrew/test/test_tap.rb16
3 files changed, 28 insertions, 2 deletions
diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb
index 849272610..ad4e600f6 100644
--- a/Library/Homebrew/exceptions.rb
+++ b/Library/Homebrew/exceptions.rb
@@ -235,8 +235,10 @@ class BuildError < RuntimeError
puts "#{formula} was moved to homebrew-boneyard because it has unfixable issues."
puts "Please do not file any issues about this. Sorry!"
else
- puts "If reporting this issue please do so at (not Homebrew/homebrew):"
- puts " https://github.com/#{formula.tap}/issues"
+ if issues_url = formula.tap.issues_url
+ puts "If reporting this issue please do so at (not Homebrew/homebrew):"
+ puts " #{issues_url}"
+ end
end
end
else
diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb
index 1acbfca4e..b038d3020 100644
--- a/Library/Homebrew/tap.rb
+++ b/Library/Homebrew/tap.rb
@@ -82,6 +82,14 @@ class Tap
(path/".git").exist?
end
+ # The issues URL of this {Tap}.
+ # e.g. `https://github.com/user/homebrew-repo/issues`
+ def issues_url
+ if official? || !custom_remote?
+ "https://github.com/#{user}/homebrew-#{repo}/issues"
+ end
+ end
+
def to_s
name
end
diff --git a/Library/Homebrew/test/test_tap.rb b/Library/Homebrew/test/test_tap.rb
index b8adb81f9..bd329c1d2 100644
--- a/Library/Homebrew/test/test_tap.rb
+++ b/Library/Homebrew/test/test_tap.rb
@@ -67,6 +67,22 @@ class TapTest < Homebrew::TestCase
refute_predicate @tap, :core_formula_repository?
end
+ def test_issues_url
+ t = Tap.new("someone", "foo")
+ path = Tap::TAP_DIRECTORY/"someone/homebrew-foo"
+ path.mkpath
+ FileUtils.cd path do
+ shutup { system "git", "init" }
+ system "git", "remote", "add", "origin",
+ "https://github.com/someone/homebrew-foo"
+ end
+ assert_equal "https://github.com/someone/homebrew-foo/issues", t.issues_url
+ assert_equal "https://github.com/Homebrew/homebrew-foo/issues", @tap.issues_url
+
+ (Tap::TAP_DIRECTORY/"someone/homebrew-no-git").mkpath
+ assert_nil Tap.new("someone", "no-git").issues_url
+ end
+
def test_files
setup_tap_files