Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

User Details

Get user details for one or more users.

Usage

var userinfo = require( 'github-user-details' );

userinfo( opts, clbk )

Gets user details for one or more users.

var opts = {
    'usernames': [
        'kgryte',
        'planeshifter',
        'unknown_username'
    ]
};

userinfo( opts, clbk );

function clbk( error, results, info ) {
    // Check for rate limit information...
    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 ) {
        throw new Error( error.message );
    }
    console.dir( results );
    /* =>
        {
            'meta': {
                'total': 3,
                'success': 2,
                'failure': 1
            },
            'data': {
                'kgryte': {...},
                'Planeshifter': {...}
            },
            'failures': {
                'unknown_username': 'Not Found'
            }
        }
    */
}

The function accepts the following options:

To authenticate with GitHub, set the token option.

var opts = {
    'usernames': ['kgryte'],
    'token': 'tkjorjk34ek3nj4!'
};

userinfo( opts, clbk );

To specify a user agent, set the useragent option.

var opts = {
    'usernames': [ 'kgryte', 'Planeshifter' ],
    'useragent': 'hello-github!'
};

userinfo( opts, clbk );

userinfo.factory( options, clbk )

Creates a reusable function.

var opts = {
    'usernames': [ 'kgryte', 'Planeshifter' ],
    'token': 'tkjorjk34ek3nj4!'
};

var get = userinfo.factory( opts, clbk );

get();
get();
get();
// ...

The factory method accepts the same options as userinfo().

Notes

  • If the module encounters an application-level error (e.g., no network connection, etc), that error is returned immediately to the provided callback.

  • If the module encounters a downstream error (e.g., timeout, reset connection, etc), that error is included in the returned results under the failures field.

  • Rate limit information includes the following:

    • limit: maximum number of requests a consumer is permitted to make per hour.
    • remaining: number of remaining requests.
    • reset: time at which the current rate limit window resets in UTC seconds.

Examples

var userinfo = require( 'github-user-details' );

var opts = {
    'usernames': [
        'kgryte',
        'planeshifter',
        'rgizz'
    ],
    'useragent': 'beep-boop-bop'
};

userinfo( opts, clbk );

function clbk( error, results, info ) {
    if ( info ) {
        console.error( info );
    }
    if ( error ) {
        throw new Error( error.message );
    }
    console.dir( results );
}

CLI

Usage

Usage: ghuserinfo [options] user1 user2 ...

Options:

  -h,  --help               Print this message.
  -V,  --version            Print the package version.
       --token token        GitHub access token.
  -ua, --useragent ua       User agent.

Notes

  • In addition to the token option, the token may also be specified by a GITHUB_TOKEN environment variable. The command-line option always takes precedence.
  • If a user's details are successfully resolved, the user info is written to stdout.
  • If a user's details cannot be resolved due to a downstream error (failure), the username (and its associated error) is written to sterr.
  • Output order is not guaranteed to match input order.
  • Rate limit information is written to stderr.

Examples

Setting the access token using the command-line option:

$ DEBUG=* ghuserinfo --token <token> kgryte planeshifter
# => {...}

Setting the access token using an environment variable:

$ DEBUG=* GITHUB_TOKEN=<token> ghuserinfo kgryte planeshifter
# => {...}