Merge pull request #13907 from troymccabe/bugfix/13789-homepage-gh-private-repo-check
Checks github API if homepage 404s
This commit is contained in:
commit
fbbcb9700c
@ -716,7 +716,7 @@ module Cask
|
|||||||
|
|
||||||
return unless cask.homepage
|
return unless cask.homepage
|
||||||
|
|
||||||
validate_url_for_https_availability(cask.homepage, "homepage URL", cask.token, cask.tap,
|
validate_url_for_https_availability(cask.homepage, SharedAudits::URL_TYPE_HOMEPAGE, cask.token, cask.tap,
|
||||||
user_agents: [:browser, :default],
|
user_agents: [:browser, :default],
|
||||||
check_content: true,
|
check_content: true,
|
||||||
strict: strict?)
|
strict: strict?)
|
||||||
|
@ -498,7 +498,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
if (http_content_problem = curl_check_http_content(homepage,
|
if (http_content_problem = curl_check_http_content(homepage,
|
||||||
"homepage URL",
|
SharedAudits::URL_TYPE_HOMEPAGE,
|
||||||
user_agents: [:browser, :default],
|
user_agents: [:browser, :default],
|
||||||
check_content: true,
|
check_content: true,
|
||||||
strict: @strict,
|
strict: @strict,
|
||||||
|
@ -290,7 +290,25 @@ module Utils
|
|||||||
url_protected_by_cloudflare?(response) || url_protected_by_incapsula?(response)
|
url_protected_by_cloudflare?(response) || url_protected_by_incapsula?(response)
|
||||||
end
|
end
|
||||||
|
|
||||||
return "The #{url_type} #{url} is not reachable (HTTP status code #{details[:status_code]})"
|
# https://github.com/Homebrew/brew/issues/13789
|
||||||
|
# If the `:homepage` of a formula is private, it will fail an `audit`
|
||||||
|
# since there's no way to specify a `strategy` with `using:` and
|
||||||
|
# GitHub does not authorize access to the web UI using token
|
||||||
|
#
|
||||||
|
# Strategy:
|
||||||
|
# If the `:homepage` 404s, it's a GitHub link, and we have a token then
|
||||||
|
# check the API (which does use tokens) for the repository
|
||||||
|
repo_details = url.match(%r{https?://github\.com/(?<user>[^/]+)/(?<repo>[^/]+)/?.*})
|
||||||
|
check_github_api = url_type == SharedAudits::URL_TYPE_HOMEPAGE &&
|
||||||
|
details[:status_code] == "404" &&
|
||||||
|
repo_details &&
|
||||||
|
Homebrew::EnvConfig.github_api_token
|
||||||
|
|
||||||
|
unless check_github_api
|
||||||
|
return "The #{url_type} #{url} is not reachable (HTTP status code #{details[:status_code]})"
|
||||||
|
end
|
||||||
|
|
||||||
|
"Unable to find homepage" if SharedAudits.github_repo_data(repo_details[:user], repo_details[:repo]).nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
if url.start_with?("https://") && Homebrew::EnvConfig.no_insecure_redirect? &&
|
if url.start_with?("https://") && Homebrew::EnvConfig.no_insecure_redirect? &&
|
||||||
|
@ -10,6 +10,8 @@ module SharedAudits
|
|||||||
include Utils::Curl
|
include Utils::Curl
|
||||||
extend Utils::Curl
|
extend Utils::Curl
|
||||||
|
|
||||||
|
URL_TYPE_HOMEPAGE = "homepage URL"
|
||||||
|
|
||||||
module_function
|
module_function
|
||||||
|
|
||||||
def github_repo_data(user, repo)
|
def github_repo_data(user, repo)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user