The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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');

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' } );
issue
my $issue = $issue->issue($issue_id);
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_id, {
    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_id);
my $comment  = $issue->comment($comment_id);
my $comment  = $issue->create_comment($issue_id, {
    "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_id);
my @events = $issue->repos_events;
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;
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_label($issue_id);
my @labels = $issue->create_issue_label($issue_id, ['New Label']);
my $st = $issue->delete_issue_label($issue_id, $label_name);
my @labels = $issue->replace_issue_label($issue_id, ['New Label']);
my $st = $issue->delete_issue_labels($issue_id);
my @lbales = $issue->milestone_labels($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' } );
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