The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Config::Identity::GitHub;

use strict;
use warnings;

use Config::Identity;
use Carp;

sub load {
    my $self = shift;
    return Config::Identity->load_best( 'github' );
}

sub check {
    my $self = shift;
    my %identity = @_;
    my @missing;
    defined $identity{$_} && length $identity{$_}
        or push @missing, $_ for qw/ login token /;
    croak "Missing ", join ' and ', @missing if @missing;
}

sub load_check {
    my $self = shift;
    my %identity = $self->load;
    $self->check( %identity );
    return %identity;
}

1;