Net::GitHub::V3::PullRequests(3)

NAME
Net::GitHub::V3::PullRequests - GitHub Pull Requests API

SYNOPSIS
    use Net::GitHub::V3;

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

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

1. SET user/repos before call methods below

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

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

    my @pulls = $pull_request->pulls($user, $repo);

  METHODS
Pull Requets

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

pulls
        my @pulls = $pull_request->pulls();
        my @pulls = $pull_request->pulls( { state => 'open' } );
        while (my $pr = $pull_request->next_pull( { state => 'open' } )) { ...; }

pull
        my $pull  = $pull_request->pull($pull_number);

create_pull
update_pull
        my $pull = $pull_request->create_pull( {
            "title" => "Amazing new feature",
            "body" => "Please pull this in!",
            "head" => "octocat:new-feature",
            "base" => "master"
        } );
        my $pull = $pull_request->update_pull( $pull_number, $new_pull_data );

commits
files
        my @commits = $pull_request->commits($pull_number);
        my @files   = $pull_request->files($pull_number);
        while (my $commit = $pull_request->next_commit($pull_number)) { ...; }
        while (my $file = $pull_request->next_file($pull_number)) { ...; }

is_merged
merge
        my $is_merged = $pull_request->is_merged($pull_number);
        my $result    = $pull_request->merge($pull_number);

Pull Request Comments API

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

comments
comment
create_comment
update_comment
delete_comment
        my @comments = $pull_request->comments($pull_number);
        while (my $comment = $pull_request->next_comment($pull_number)) { ...; }
        my $comment  = $pull_request->comment($comment_id);
        my $comment  = $pull_request->create_comment($pull_number, {
            "body" => "a new comment",
            commit_id => '586fe4be94c32248043b344e99fa15c72b40d1c2',
            path => 'test',
            position => 1,
        });
        my $comment = $pull_request->update_comment($comment_id, {
            "body" => "Nice change"
        });
        my $st = $pull_request->delete_comment($comment_id);

Pull Request Reviews API

<http://developer.github.com/v3/pulls/reviews/>

reviews
review
create_review
update_review
delete_review
        my @reviews = $pull_request->reviews($pull_number);
        while (my $review = $pull_request->next_review($pull_number)) { ...; }
        my $review  = $pull_request->review($review_id);
        my $review  = $pull_request->create_review($pull_number, {
            "body" => "a new review",
            commit_id => '586fe4be94c32248043b344e99fa15c72b40d1c2',
            event => 'APPROVE',
        });
        my $review = $pull_request->update_review($review_id, {
            "body" => "Nice change"
        });
        my $st = $pull_request->delete_review($review_id);

Pull Request Review API

<https://developer.github.com/v3/pulls/review_requests/>

reviewers
add_reviewers
delete_reviewers
        my @reviewers = $pull_request->reviewers($pull_number);
        my $result = $pull_request->add_reviewers($pull_number, {
            reviewers => [$user1, $user2],
            team_reviewers => [$team1],
        );
        my $result = $pull_request->delete_reviewers($pull_number, {
            reviewers => [$user1, $user2],
            team_reviewers => [$team1],
        );

AUTHOR & COPYRIGHT & LICENSE
Refer Net::GitHub