From 2f12470c2dc6791a5925fce7c140797de7e9b697 Mon Sep 17 00:00:00 2001 From: Thaddee Tyl Date: Mon, 2 Jun 2014 23:28:54 +0200 Subject: [PATCH] Use GitHub OAuth apps to increase rate limits. --- Makefile | 1 + server.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/Makefile b/Makefile index b73c4fd8f2..72fbad0192 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,7 @@ website: deploy: git add -f Verdana.ttf + git add -f secret.json git commit -m'MUST NOT BE ON GITHUB' git push -f heroku HEAD:master git reset HEAD~1 diff --git a/server.js b/server.js index 21f7ec85db..f15249b962 100644 --- a/server.js +++ b/server.js @@ -8,6 +8,12 @@ var fs = require('fs'); var LruCache = require('./lru-cache.js'); var badge = require('./badge.js'); var svg2img = require('./svg-to-img.js'); +var serverSecrets; +try { + // Everything that cannot be checked in but is useful server-side + // is stored in this JSON data. + serverSecrets = require('secret.json'); +} catch(e) {} var semver = require('semver'); var serverStartTime = new Date((new Date()).toGMTString()); @@ -873,6 +879,12 @@ cache(function(data, match, sendBadge) { var repo = match[2]; var format = match[3]; var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo + '/tags'; + // Using our OAuth App secret grants us 5000 req/min + // instead of the standard 60 req/min. + if (serverSecrets) { + apiUrl += '?client_id=' + serverSecrets.gh_client_id + + '&client_secret=' + serverSecrets.gh_client_secret; + } var badgeData = getBadgeData('tag', data); // A special User-Agent is required: // http://developer.github.com/v3/#user-agent-required @@ -897,6 +909,8 @@ cache(function(data, match, sendBadge) { } sendBadge(format, badgeData); } catch(e) { + console.error(e); + console.error('JSON: ' + buffer); badgeData.text[1] = 'invalid'; sendBadge(format, badgeData); } @@ -938,6 +952,8 @@ cache(function(data, match, sendBadge) { } sendBadge(format, badgeData); } catch(e) { + console.error(e); + console.error('JSON: ' + buffer); badgeData.text[1] = 'invalid'; sendBadge(format, badgeData); }