Pass a User-Agent when fetching data from the GitHub API

See <http://developer.github.com/v3/#user-agent-required>.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
Daniel Lee Harple 2013-05-07 14:07:25 -04:00 committed by Jack Nagel
parent 0bf35a05a9
commit 222f96d37b
3 changed files with 9 additions and 8 deletions

View File

@ -1,8 +1,7 @@
require 'open-uri'
require 'vendor/multi_json'
begin
open "https://api.github.com/legacy/repos/search/homebrew" do |f|
GitHub.open "https://api.github.com/legacy/repos/search/homebrew" do |f|
MultiJson.decode(f.read)["repositories"].each do |repo|
if repo['name'] =~ /^homebrew-(\S+)$/
puts tap = if repo['username'] == "Homebrew"

View File

@ -1,5 +1,6 @@
require "formula"
require "blacklist"
require "utils"
module Homebrew extend self
def search
@ -59,12 +60,10 @@ module Homebrew extend self
def search_tap user, repo, rx
return [] if (HOMEBREW_LIBRARY/"Taps/#{user.downcase}-#{repo.downcase}").directory?
require 'open-uri'
require 'vendor/multi_json'
results = []
open "https://api.github.com/repos/#{user}/homebrew-#{repo}/git/trees/HEAD?recursive=1" do |f|
GitHub.open "https://api.github.com/repos/#{user}/homebrew-#{repo}/git/trees/HEAD?recursive=1" do |f|
user.downcase! if user == "Homebrew" # special handling for the Homebrew organization
MultiJson.decode(f.read)["tree"].map{ |hash| hash['path'] }.compact.each do |file|
name = File.basename(file, '.rb')

View File

@ -257,6 +257,11 @@ def nostdout
end
module GitHub extend self
def open url, headers={}, &block
require 'open-uri'
Kernel.open(url, headers.merge('User-Agent' => HOMEBREW_USER_AGENT), &block)
end
def issues_for_formula name
# bit basic as depends on the issue at github having the exact name of the
# formula in it. Which for stuff like objective-caml is unlikely. So we
@ -264,7 +269,6 @@ module GitHub extend self
name = f.name if Formula === name
require 'open-uri'
require 'vendor/multi_json'
issues = []
@ -284,13 +288,12 @@ module GitHub extend self
end
def find_pull_requests rx
require 'open-uri'
require 'vendor/multi_json'
query = rx.source.delete('.*').gsub('\\', '')
uri = URI.parse("https://api.github.com/legacy/issues/search/mxcl/homebrew/open/#{query}")
open uri do |f|
GitHub.open uri do |f|
MultiJson.decode(f.read)['issues'].each do |pull|
yield pull['pull_request_url'] if rx.match pull['title'] and pull['pull_request_url']
end