function create( options, clbk ) {
	var opts;
	var err;
	opts = copy( defaults );
	err = validate( opts, options );
	if ( err ) {
		throw err;
	}
	if ( !isFunction( clbk ) ) {
		throw new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );
	}
	query( opts, done );
	/**
	* Callback invoked after receiving an API response.
	*
	* @private
	* @param {(Error|null)} error - error object
	* @param {ObjectArray} data - query data
	* @param {Object} info - response info
	* @returns {void}
	*/
	function done( error, data, info ) {
		error = error || null;
		data = data || null;
		info = info || null;
		clbk( error, data, info );
	}
}
Creates a token.

@param {Object} options - function options
@param {string} options.username - GitHub username
@param {string} options.password - GitHub password
@param {StringArray} options.scopes - list of scopes
@param {string} options.note - note regarding the purpose of the token
@param {string} [options.otp] - GitHub one-time password
@param {string} [options.note_url] - application URL
@param {string} [options.client_id] - app OAuth client id
@param {string} [options.client_secret] - app OAuth client secret
@param {string} [options.fingerprint] - unique token id
@param {string} [options.useragent] - user agent string
@param {Function} clbk - callback to invoke upon query completion
@throws {TypeError} callback argument must be a function
@returns {void}