mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Audit GitHub repository notability.
This stuff seems to be taken better when coming from a script rather than from a human. Feel free to disagree about the specific numbers chosen here.
This commit is contained in:
parent
48df76dc89
commit
51a1792e7a
@ -422,6 +422,26 @@ class FormulaAuditor
|
||||
end
|
||||
end
|
||||
|
||||
def audit_github_repository
|
||||
return unless @strict
|
||||
|
||||
regex = %r{https?://github.com/([^/]+)/([^/]+)/?.*}
|
||||
_, user, repo = *regex.match(formula.stable.url)
|
||||
_, user, repo = *regex.match(formula.homepage) unless user
|
||||
return if !user || !repo
|
||||
|
||||
metadata = GitHub.repository(user, repo)
|
||||
problem "GitHub fork (not canonical repository)" if metadata["fork"]
|
||||
if (metadata["forks_count"] < 5) || (metadata["watchers_count"] < 5) ||
|
||||
(metadata["stargazers_count"] < 10)
|
||||
problem "GitHub repository not notable enough (<5 forks, <5 watchers and/or <10 stars)"
|
||||
end
|
||||
|
||||
if (Date.parse(metadata["created_at"]) > (Date.today - 30))
|
||||
problem "GitHub repository too new (<30 days old)"
|
||||
end
|
||||
end
|
||||
|
||||
def audit_specs
|
||||
if head_only?(formula) && formula.tap.to_s.downcase != "homebrew/homebrew-head-only"
|
||||
problem "Head-only (no stable download)"
|
||||
@ -831,6 +851,7 @@ class FormulaAuditor
|
||||
audit_specs
|
||||
audit_desc
|
||||
audit_homepage
|
||||
audit_github_repository
|
||||
audit_deps
|
||||
audit_conflicts
|
||||
audit_options
|
||||
|
@ -399,6 +399,10 @@ module GitHub extend self
|
||||
open(uri) { |json| json["items"] }
|
||||
end
|
||||
|
||||
def repository(user, repo)
|
||||
open(URI.parse("https://api.github.com/repos/#{user}/#{repo}")) { |j| j }
|
||||
end
|
||||
|
||||
def build_query_string(query, qualifiers)
|
||||
s = "q=#{uri_escape(query)}+"
|
||||
s << build_search_qualifier_string(qualifiers)
|
||||
|
Loading…
x
Reference in New Issue
Block a user