aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Lee Harple2013-05-18 08:27:22 -0400
committerJack Nagel2013-05-22 19:53:05 -0500
commitc2f9c5dff75c6568089f6610d40a67cc568a86af (patch)
treee09f74c3d05350bf1928beab3771f0fd61e097ac
parenta113ebbfee5cfc96f95f1ac13b2ea110e58e05cc (diff)
downloadhomebrew-c2f9c5dff75c6568089f6610d40a67cc568a86af.tar.bz2
Added support for a GitHub Personal API Access token
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
-rw-r--r--Library/Contributions/manpages/brew.1.md6
-rw-r--r--Library/Homebrew/global.rb1
-rw-r--r--Library/Homebrew/utils.rb4
-rw-r--r--share/man/man1/brew.16
4 files changed, 15 insertions, 2 deletions
diff --git a/Library/Contributions/manpages/brew.1.md b/Library/Contributions/manpages/brew.1.md
index 008465294..b0cca1867 100644
--- a/Library/Contributions/manpages/brew.1.md
+++ b/Library/Contributions/manpages/brew.1.md
@@ -459,6 +459,12 @@ can take several different forms:
directories. TextMate can handle this correctly in project mode, but many
editors will do strange things in this case.
+ * HOMEBREW\_GITHUB\_API\_TOKEN:
+ A personal GitHub API Access token, which you can be create at
+ <https://github.com/settings/applications>. If set, GitHub will allow you a
+ greater number of API requests. See
+ <http://developer.github.com/v3/#rate-limiting> for more information.
+
* HOMEBREW\_KEEP\_INFO:
If set, Homebrew will not remove files from `share/info`, allowing them
to be linked from the Cellar. To access these info files, prepend
diff --git a/Library/Homebrew/global.rb b/Library/Homebrew/global.rb
index 8d43afcf2..72f4f757d 100644
--- a/Library/Homebrew/global.rb
+++ b/Library/Homebrew/global.rb
@@ -77,6 +77,7 @@ else
MACOS = false
end
+HOMEBREW_GITHUB_API_TOKEN = ENV["HOMEBREW_GITHUB_API_TOKEN"]
HOMEBREW_USER_AGENT = "Homebrew #{HOMEBREW_VERSION} (Ruby #{RUBY_VERSION}-#{RUBY_PATCHLEVEL}; #{OS_VERSION})"
HOMEBREW_CURL_ARGS = '-f#LA'
diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb
index ad943b6f8..ad86946aa 100644
--- a/Library/Homebrew/utils.rb
+++ b/Library/Homebrew/utils.rb
@@ -260,7 +260,9 @@ module GitHub extend self
def open url, headers={}, &block
require 'open-uri'
begin
- Kernel.open(url, {'User-Agent' => HOMEBREW_USER_AGENT}.merge(headers), &block)
+ default_headers = {'User-Agent' => HOMEBREW_USER_AGENT}
+ default_headers['Authorization'] = "token #{HOMEBREW_GITHUB_API_TOKEN}" if HOMEBREW_GITHUB_API_TOKEN
+ Kernel.open(url, default_headers.merge(headers), &block)
rescue OpenURI::HTTPError => e
if e.io.meta['x-ratelimit-remaining'].to_i <= 0
require 'vendor/multi_json'
diff --git a/share/man/man1/brew.1 b/share/man/man1/brew.1
index 13b837164..38c4c6f26 100644
--- a/share/man/man1/brew.1
+++ b/share/man/man1/brew.1
@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
-.TH "BREW" "1" "April 2013" "Homebrew" "brew"
+.TH "BREW" "1" "May 2013" "Homebrew" "brew"
.
.SH "NAME"
\fBbrew\fR \- The missing package manager for OS X
@@ -500,6 +500,10 @@ If set, Homebrew will use this editor when editing a single formula, or several
\fINOTE\fR: \fBbrew edit\fR will open all of Homebrew as discontinuous files and directories\. TextMate can handle this correctly in project mode, but many editors will do strange things in this case\.
.
.TP
+HOMEBREW_GITHUB_API_TOKEN
+A personal GitHub API Access token, which you can be create at \fIhttps://github\.com/settings/applications\fR\. If set, GitHub will allow you a greater number of API requests\. See \fIhttp://developer\.github\.com/v3/#rate\-limiting\fR for more information\.
+.
+.TP
HOMEBREW_KEEP_INFO
If set, Homebrew will not remove files from \fBshare/info\fR, allowing them to be linked from the Cellar\. To access these info files, prepend \fBshare/info\fR to your \fBINFOPATH\fR environment variable\.
.