code: function( eventaur, settings ) {
    var gith = this;
    this.settings = settings || {};
  
    // make this bad boy an event emitter
    EventEmitter2.call( this, {
      delimiter: ':',
      maxListeners: 0
    });
  
    // handle bound payloads
    eventaur.on( 'payload', function( originalPayload ) {
  
      // make a simpler payload
      var payload = gith.simplifyPayload( originalPayload );
  
      // bother doing anything?
      if ( filterSettings( settings, payload ) ) {
  
        // all the things
        gith.emit( 'all', payload );
  
        // did we do any branch work?
        if ( originalPayload.created && originalPayload.forced && payload.branch ) {
          gith.emit( 'branch:add', payload );
        }
        if (  originalPayload.deleted && originalPayload.forced && payload.branch ) {
          gith.emit( 'branch:delete', payload );
        }
  
        // how about files?
        if ( payload.files.added.length > 0 ) {
          gith.emit( 'file:add', payload );
        }
        if ( payload.files.deleted.length > 0 ) {
          gith.emit( 'file:delete', payload );
        }
        if ( payload.files.modified.length > 0 ) {
          gith.emit( 'file:modify', payload );
        }
        if ( payload.files.all.length > 0 ) {
          gith.emit( 'file:all', payload );
        }
  
        // tagging?
        if ( payload.tag && originalPayload.created ) {
          gith.emit( 'tag:add', payload );
        }
        if ( payload.tag && originalPayload.deleted ) {
          gith.emit( 'tag:delete', payload );
        }
      }
    });
  }
docs: Used by exports.module.create's returned function to create new gith objects that hold settings and emit events