---
name: "Net::GitHub::V3::PullRequests"
section: "3pm"
platform: "linux"
package: "libnet-github-perl"
version: "1.05-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::GitHub::V3::PullRequests"
---

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

GitHub Pull Requests API

## 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
