From 1f4b487caa217758245c6fbc819d001e61ac22cc Mon Sep 17 00:00:00 2001 From: Dave Cole Date: Wed, 10 Apr 2013 11:35:29 -0400 Subject: Whitelist accounts. Set allowed branch as webhook parameter so it can vary based on repository. --- jekyll-hook.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'jekyll-hook.js') diff --git a/jekyll-hook.js b/jekyll-hook.js index e020836..399bbe5 100755 --- a/jekyll-hook.js +++ b/jekyll-hook.js @@ -11,8 +11,9 @@ var mailer = email.server.connect(config.email); app.use(express.bodyParser()); // Receive webhook post -app.post('/hooks/jekyll', function(req, res){ +app.post('/hooks/jekyll/:branch', function(req, res){ var data = JSON.parse(req.body.payload); + var branch = req.params.branch; var params = []; // Parse webhook data for internal variables @@ -23,9 +24,15 @@ app.post('/hooks/jekyll', function(req, res){ // Close connection res.send(202); - // End early if not master branch - if (data.branch !== config.branch) { - console.log('Not ' + config.branch + ' branch.'); + // End early if not permitted account + if (config.accounts.indexOf(data.owner) === -1) { + console.log(data.owner + ' is not an authorized account.'); + return; + } + + // End early if not permitted branch + if (data.branch !== branch) { + console.log('Not ' + branch + ' branch.'); return; } -- cgit v1.2.3