code: function downloadRepo(config, tmpFolder, callback) {
  
    console.log('Downloading repo...'.magenta);
  
    // Keep track if the request fails to prevent the continuation of the install
    var requestFailed = false;
  
    var repoUrl = 'http://server.webhook.com/';
  
    if(config.server) {
      if(config.server.indexOf('http://') !== 0) {
        config.server = config.server += 'http://';
      }
  
      if(config.server.indexOf(config.server.length - 1) !== '/') {
        config.server += '/';
      }
  
      repoUrl = config.server;
    }
  
    var repoRequest = request(repoUrl + 'download/?site=' + config.siteName + '&token=' + config.siteToken);
  
    repoRequest
      .on('response', function (response) {
        // If we fail, set it as failing and remove zip file
        if (response.statusCode !== 200) {
          requestFailed = true;
          fs.unlinkSync('repo.zip');
          callback(true);
        }
      })
      .pipe(fs.createWriteStream('repo.zip'))
      .on('close', function () {
        if (requestFailed) return;
  
        console.log('Extracting Files...'.magenta);
        // Unzip into temporary file
        var zip = new Zip('repo.zip');
        zip.extractAllTo(tmpFolder);
        fs.unlinkSync('repo.zip');
        callback(null, tmpFolder + '/' + fs.readdirSync(tmpFolder)[0]);
      });
  }
docs: Downloads repository from github and stores in temporary folder
  @param  {Object}    config     Configuration information
  @param  {String}    tmpFolder  Temporary foler to save unzipped item into
  @param  {Function}  callback   Called on completion