text: /**
  * @license Apache-2.0
  *
  * Copyright (c) 2018 The Stdlib Authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *    http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
  
  'use strict';
  
  // MODULES //
  
  var factory = require( './factory.js' );
  
  
  // MAIN //
  
  /**
  * Requests resources from a GitHub API endpoint.
  *
  * @param {Options} [opts] - function options
  * @param {string} [opts.protocol='https'] - request protocol
  * @param {string} [opts.hostname='api.github.com'] - endpoint hostname
  * @param {NonNegativeInteger} [opts.port] - endpoint port
  * @param {string} [opts.pathname='/'] - resource pathname
  * @param {PositiveInteger} [opts.page=1] - resource page
  * @param {PositiveInteger} [opts.last_page=1] - last resource page
  * @param {PositiveInteger} [opts.per_page=100] - page size
  * @param {string} [opts.query=""] - params portion of a query string
  * @param {string} [opts.token] - GitHub access token
  * @param {string} [opts.accept='application/vnd.github.moondragon+json'] - media type
  * @param {string} [opts.useragent] - user agent string
  * @param {Callback} clbk - callback to invoke upon query completion
  * @throws {TypeError} options argument must be an object
  * @throws {(TypeError|Error)} must provide valid options
  * @throws {TypeError} callback argument must be a function
  * @returns {void}
  *
  * @example
  * get( onResponse );
  *
  * function onResponse( error, data, info ) {
  *     // Check for rate limit info...
  *     if ( info ) {
  *         console.error( 'Limit: %d', info.limit );
  *         console.error( 'Remaining: %d', info.remaining );
  *         console.error( 'Reset: %s', (new Date( info.reset*1000 )).toISOString() );
  *     }
  *     if ( error ) {
  *         if ( error instanceof Error ) {
  *             throw error;
  *         }
  *         console.error( error.message );
  *     } else {
  *         console.log( JSON.stringify( data ) );
  *     }
  * }
  */
  function get( opts, clbk ) {
  	if ( arguments.length === 1 ) {
  		// "opts" is assumed to be a callback:
  		return factory( {}, opts )();
  	}
  	factory( opts, clbk )();
  }
  
  
  // EXPORTS //
  
  module.exports = get;
  