The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::GitHub::V3::Query - Base Query role for Net::GitHub::V3

SYNOPSIS

    package Net::GitHub::V3::XXX;

    use Moo;
    with 'Net::GitHub::V3::Query';

DESCRIPTION

set Authentication and call API

ATTRIBUTES

login
pass
access_token

Either set access_token from OAuth or login:pass for Basic Authentication

http://developer.github.com/

raw_string
raw_response
api_throttle

API throttling is enabled by default, set api_throttle to 0 to disable it.

rate_limit

The maximum number of queries allowed per hour. 60 for anonymous users and 5,000 for authenticated users.

rate_limit_remaining

The number of requests remaining in the current rate limit window.

rate_limit_reset

The time the current rate limit resets in UTC epoch seconds.

update_rate_limit

Query the /rate_limit API (for free) to update the cached values for rate_limit, rate_limit_remaining, rate_limit_reset

last_page

Denotes the index of the last page in the pagination

RaiseError

METHODS

query

Refer Net::GitHub::V3

next_page

Calls query with next_url. See Net::GitHub::V3

prev_page

Calls query with prev_url. See Net::GitHub::V3

first_page

Calls query with first_url. See Net::GitHub::V3

last_page

Calls query with last_url. See Net::GitHub::V3

set_next_page

Adjusts next_url to be a new url in the pagination space I.E. you are jumping to a new index in the pagination

iterate($method_name, $arguments, $callback)

This provides an helper to iterate over APIs call using pagination, using the combo: has_next_page, next_page... for you.

The arguments can be either a scalar if the function is using a single argument, an ArrayRef when the function is using multiple arguments. You can also use one HashRef for functions supporting named parameters.

The callback function is called with a single item. The return value of the callback function can be used to stop the iteration when returning a 'false' value.

In common cases, you want to return a true value: '1'.

Sample usage:

    $gh->org->iterate( 'repos', 'OrganizationName', sub {
        my $item = shift;

        print "Repo Name is $item->{name}"

        return 1; # if you want to continue iterating
        return;   # use a false value when you want to interrupt the iteration
    } );
result_sets

For internal use by the item-per-item pagination: This is a store of the state(s) for the pagination. Each entry maps the initial URL of a GitHub query to a Net::GitHub::V3::ResultSet object.

next($url)

Returns the next item for the query which started at $url, or undef if there are no more items.

close($url)

Terminates the item-per-item pagination for the query which started at $url.

NG_DEBUG

export NG_DEBUG=1 to view the request URL

NG_DEBUG > 1 to view request/response string

AUTHOR & COPYRIGHT & LICENSE

Refer Net::GitHub