diff --git a/server.js b/server.js index a58e1d7..843e6ba 100644 --- a/server.js +++ b/server.js @@ -2,6 +2,7 @@ var secureServer = !!process.env.HTTPS; var serverPort = +process.env.PORT || +process.argv[2] || (secureServer? 443: 80); var bindAddress = process.env.BIND_ADDRESS || process.argv[3] || '::'; var infoSite = process.env.INFOSITE || "http://shields.io"; +var githubApiUrl = process.env.GITHUB_URL || 'https://api.github.com'; var Camp = require('camp'); var camp = Camp.start({ documentRoot: __dirname, @@ -2865,7 +2866,7 @@ cache(function(data, match, sendBadge, request) { var user = match[1]; // eg, strongloop/express var repo = match[2]; var format = match[3]; - var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo + '/tags'; + var apiUrl = githubApiUrl + '/repos/' + user + '/' + repo + '/tags'; var badgeData = getBadgeData('tag', data); if (badgeData.template === 'social') { badgeData.logo = badgeData.logo || logos.github; @@ -2926,7 +2927,7 @@ cache(function(data, match, sendBadge, request) { var user = match[1]; // eg, qubyte/rubidium var repo = match[2]; var format = match[3]; - var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo + '/releases/latest'; + var apiUrl = githubApiUrl + '/repos/' + user + '/' + repo + '/releases/latest'; var badgeData = getBadgeData('release', data); if (badgeData.template === 'social') { badgeData.logo = badgeData.logo || logos.github; @@ -2959,7 +2960,7 @@ cache(function(data, match, sendBadge, request) { var repo = match[2]; // eg, subtitleedit var version = match[3]; // eg, 3.4.7 var format = match[4]; - var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo + '/compare/' + version + '...master'; + var apiUrl = githubApiUrl + '/repos/' + user + '/' + repo + '/compare/' + version + '...master'; var badgeData = getBadgeData('commits since ' + version, data); if (badgeData.template === 'social') { badgeData.logo = badgeData.logo || logos.github; @@ -2999,7 +3000,7 @@ cache(function(data, match, sendBadge, request) { total = false; } - var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo + '/releases'; + var apiUrl = githubApiUrl + '/repos/' + user + '/' + repo + '/releases'; if (!total) { var release_path = tag !== 'latest' ? 'tags/' + tag : 'latest'; apiUrl = apiUrl + '/' + release_path; @@ -3063,15 +3064,15 @@ cache(function(data, match, sendBadge, request) { var repo = match[5]; // eg, shields var ghLabel = match[6]; // eg, website var format = match[7]; - var apiUrl = 'https://api.github.com/'; + var apiUrl = githubApiUrl; var query = {}; var issuesApi = false; // Are we using the issues API instead of the repo one? if (isPR) { - apiUrl += 'search/issues'; + apiUrl += '/search/issues'; query.q = 'is:pr is:' + (isClosed? 'closed': 'open') + ' repo:' + user + '/' + repo; } else { - apiUrl += 'repos/' + user + '/' + repo; + apiUrl += '/repos/' + user + '/' + repo; if (isClosed || ghLabel !== undefined) { apiUrl += '/issues'; if (isClosed) { query.state = 'closed'; } @@ -3125,7 +3126,7 @@ cache(function(data, match, sendBadge, request) { var user = match[1]; // eg, qubyte/rubidium var repo = match[2]; var format = match[3]; - var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo; + var apiUrl = githubApiUrl + '/repos/' + user + '/' + repo; var badgeData = getBadgeData('forks', data); if (badgeData.template === 'social') { badgeData.logo = badgeData.logo || logos.github; @@ -3160,7 +3161,7 @@ cache(function(data, match, sendBadge, request) { var user = match[1]; // eg, qubyte/rubidium var repo = match[2]; var format = match[3]; - var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo; + var apiUrl = githubApiUrl + '/repos/' + user + '/' + repo; var badgeData = getBadgeData('stars', data); if (badgeData.template === 'social') { badgeData.logo = badgeData.logo || logos.github; @@ -3193,7 +3194,7 @@ cache(function(data, match, sendBadge, request) { var user = match[1]; // eg, qubyte/rubidium var repo = match[2]; var format = match[3]; - var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo; + var apiUrl = githubApiUrl + '/repos/' + user + '/' + repo; var badgeData = getBadgeData('watchers', data); if (badgeData.template === 'social') { badgeData.logo = badgeData.logo || logos.github; @@ -3225,7 +3226,7 @@ camp.route(/^\/github\/followers\/([^\/]+)\.(svg|png|gif|jpg|json)$/, cache(function(data, match, sendBadge, request) { var user = match[1]; // eg, qubyte var format = match[2]; - var apiUrl = 'https://api.github.com/users/' + user; + var apiUrl = githubApiUrl + '/users/' + user; var badgeData = getBadgeData('followers', data); if (badgeData.template === 'social') { badgeData.logo = badgeData.logo || logos.github; @@ -3254,7 +3255,7 @@ cache(function(data, match, sendBadge, request) { var user = match[1]; // eg, mashape var repo = match[2]; // eg, apistatus var format = match[3]; - var apiUrl = 'https://api.github.com/repos/' + user + '/' + repo; + var apiUrl = githubApiUrl + '/repos/' + user + '/' + repo; var badgeData = getBadgeData('license', data); if (badgeData.template === 'social') { badgeData.logo = badgeData.logo || logos.github;