Net::GitHub::V3::Issues(3)

NAME
Net::GitHub::V3::Issues - GitHub Issues API

SYNOPSIS
    use Net::GitHub::V3;

    my $gh = Net::GitHub::V3->new; # read L<Net::GitHub::V3> to set right authentication info
    my $issue = $gh->issue;

DESCRIPTION

  METHODS
Issues

<http://developer.github.com/v3/issues/>

issues
        my @issues = $issue->issues();
        my @issues = $issue->issues(filter => 'assigned', state => 'open');
        while (my $next_issue = $issues->next_issue(...)) { ...; }

    Returns issues assigned to the authenticated user.

To ease the keyboard, we provied two ways to call any method which starts with :user/:repo

1. SET user/repo before call methods below

    $gh->set_default_user_repo('fayland', 'perl-net-github'); # take effects for all $gh->
    $issue->set_default_user_repo('fayland', 'perl-net-github'); # only take effect to $gh->issue
    my @issues = $repos->issues;

2. If it is just for once, we can pass :user, :repo before any arguments

    my @issues = $issue->repos_issues($user, $repo);

repos_issues
        my @issues = $issue->repos_issues;
        my @issues = $issue->repos_issues($user, $repos);
        my @issues = $issue->repos_issues( { state => 'open' } );
        my @issues = $issue->repos_issues($user, $repos, { state => 'open' } );
        while (my $r_issue = $issue->next_repos_issue(...)) { ...; }

issue
        my $issue = $issue->issue($issue_number);

create_issue
        my $isu = $issue->create_issue( {
            "title" => "Found a bug",
            "body" => "I'm having a problem with this.",
            "assignee" => "octocat",
            "milestone" => 1,
            "labels" => [
                "Label1",
                "Label2"
            ]
        } );

update_issue
        my $isu = $issue->update_issue( $issue_number, {
            state => 'closed'
        } );

Issue Comments API

<http://developer.github.com/v3/issues/comments/>

comments
comment
create_comment
update_comment
delete_comment
        my @comments = $issue->comments($issue_number);
        while (my $comment = $issue->next_comment($issue_number)) { ...; }
        my $comment  = $issue->comment($comment_id);
        my $comment  = $issue->create_comment($issue_number, {
            "body" => "a new comment"
        });
        my $comment = $issue->update_comment($comment_id, {
            "body" => "Nice change"
        });
        my $st = $issue->delete_comment($comment_id);

Issue Event API

<http://developer.github.com/v3/issues/events/>

events
repos_events
        my @events = $issue->events($issue_number);
        while (my $event = $issue->next_event($issue_number)) { ...; }
        my @events = $issue->repos_events;
        while (my $r_event = $issue->next_repos_event) { ...; }
        my $event  = $issue->event($event_id);

Issue Labels API

<http://developer.github.com/v3/issues/labels/>

labels
label
create_label
update_label
delete_label
        my @labels = $issue->labels;
        while (my $label = $issue->next_label) { ...; }
        my $label  = $issue->label($label_name);
        my $label  = $issue->create_label( {
            "name" => "API",
            "color" => "FFFFFF"
        } );
        my $label  = $issue->update_label( $label_name, {
            "name" => "bugs",
            "color" => "000000"
        } );
        my $st = $issue->delete_label($label_name);

issue_labels
create_issue_label
delete_issue_label
replace_issue_label
delete_issue_labels
milestone_labels
        my @labels = $issue->issue_labels($issue_number);
        my @labels = $issue->create_issue_label($issue_number, ['New Label']);
        my $st = $issue->delete_issue_label($issue_number, $label_name);
        my @labels = $issue->replace_issue_label($issue_number, ['New Label']);
        my $st = $issue->delete_issue_labels($issue_number);
        my @lables = $issue->milestone_labels($milestone_id);
        while (my $label = $issue->next_milestone_label($milestone_id)) { ...; }

Issue Milestones API

<http://developer.github.com/v3/issues/milestones/>

milestones
milestone
create_milestone
update_milestone
delete_milestone
        my @milestones = $issue->milestones;
        my @milestones = $issue->milestones( { state => 'open' } );
        while (my $milestone = $issue->next_milestone( ... )) { ...; }
        my $milestone  = $issue->milestone($milestone_id);
        my $milestone  = $issue->create_milestone( {
            "title" => "String",
            "state" => "open",
            "description" => "String",
        } );
        my $milestone  = $issue->update_milestone( $milestone_id, {
            title => 'New Title'
        } );
        my $st = $issue->delete_milestone($milestone_id);

AUTHOR & COPYRIGHT & LICENSE
Refer Net::GitHub