---
name: "Pithub::Issues"
section: "3pm"
platform: "linux"
package: "libpithub-perl"
version: "0.01043-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Pithub::Issues"
---

# Pithub::Issues(3pm)

Github v3 Issues API

## NAME

Pithub::Issues - Github v3 Issues API

## VERSION

version 0.01043

## METHODS

### assignees

Provides access to Pithub::Issues::Assignees.

### comments

Provides access to Pithub::Issues::Comments.

### create

- •

  Create an issue

  ```
      POST /repos/:user/:repo/issues
  ```

  Parameters:

  - •

    **user**: mandatory string

  - •

    **repo**: mandatory string

  - •

    **data**: mandatory hashref, having following keys:

    - •

      **title**: mandatory string

    - •

      **body**: optional string

    - •

      **assignee**: optional string - Login for the user that this issue should be assigned to.

    - •

      **milestone**: optional number - Milestone to associate this issue with.

    - •

      **labels**: optional arrayref of strings - Labels to associate with this issue.

  Examples:

  ```
      my $i = Pithub::Issues->new;
      my $result = $i->create(
          user => 'plu',
          repo => 'Pithub',
          data => {
              assignee  => 'octocat',
              body      => "I'm having a problem with this.",
              labels    => [ 'Label1', 'Label2' ],
              milestone => 1,
              title     => 'Found a bug'
          }
      );
  ```

  Response: **Status: 201 Created**

  ```
      {
          "url": "https://api.github.com/repos/octocat/Hello-World/issues/1",
          "html_url": "https://github.com/octocat/Hello-World/issues/1",
          "number": 1347,
          "state": "open",
          "title": "Found a bug",
          "body": "I'm having a problem with this.",
          "user": {
              "login": "octocat",
              "id": 1,
              "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
              "url": "https://api.github.com/users/octocat"
          },
          "labels": [
          {
              "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug",
              "name": "bug",
              "color": "f29513"
          }
          ],
          "assignee": {
              "login": "octocat",
              "id": 1,
              "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
              "url": "https://api.github.com/users/octocat"
          },
          "milestone": {
              "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1",
              "number": 1,
              "state": "open",
              "title": "v1.0",
              "description": "",
              "creator": {
                  "login": "octocat",
                  "id": 1,
                  "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
                  "url": "https://api.github.com/users/octocat"
              },
              "open_issues": 4,
              "closed_issues": 8,
              "created_at": "2011-04-10T20:09:31Z",
              "due_on": null
          },
          "comments": 0,
          "pull_request": {
              "html_url": "https://github.com/octocat/Hello-World/issues/1",
              "diff_url": "https://github.com/octocat/Hello-World/issues/1.diff",
              "patch_url": "https://github.com/octocat/Hello-World/issues/1.patch"
          },
          "closed_at": null,
          "created_at": "2011-04-22T13:33:48Z",
          "updated_at": "2011-04-22T13:33:48Z"
      }
  ```

### events

Provides access to Pithub::Issues::Events.

### get

- •

  Get a single issue

  ```
      GET /repos/:user/:repo/issues/:id
  ```

  Parameters:

  - •

    **user**: mandatory string

  - •

    **repo**: mandatory string

  - •

    **issue\_id**: mandatory integer

  Examples:

  ```
      my $i = Pithub::Issues->new;
      my $result = $i->get(
          user => 'plu',
          repo => 'Pithub',
          issue_id => 1,
      );
  ```

  Response: **Status: 200 OK**

  ```
      {
          "url": "https://api.github.com/repos/octocat/Hello-World/issues/1",
          "html_url": "https://github.com/octocat/Hello-World/issues/1",
          "number": 1347,
          "state": "open",
          "title": "Found a bug",
          "body": "I'm having a problem with this.",
          "user": {
              "login": "octocat",
              "id": 1,
              "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
              "url": "https://api.github.com/users/octocat"
          },
          "labels": [
          {
              "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug",
              "name": "bug",
              "color": "f29513"
          }
          ],
          "assignee": {
              "login": "octocat",
              "id": 1,
              "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
              "url": "https://api.github.com/users/octocat"
          },
          "milestone": {
              "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1",
              "number": 1,
              "state": "open",
              "title": "v1.0",
              "description": "",
              "creator": {
                  "login": "octocat",
                  "id": 1,
                  "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
                  "url": "https://api.github.com/users/octocat"
              },
              "open_issues": 4,
              "closed_issues": 8,
              "created_at": "2011-04-10T20:09:31Z",
              "due_on": null
          },
          "comments": 0,
          "pull_request": {
              "html_url": "https://github.com/octocat/Hello-World/issues/1",
              "diff_url": "https://github.com/octocat/Hello-World/issues/1.diff",
              "patch_url": "https://github.com/octocat/Hello-World/issues/1.patch"
          },
          "closed_at": null,
          "created_at": "2011-04-22T13:33:48Z",
          "updated_at": "2011-04-22T13:33:48Z"
      }
  ```

### labels

Provides access to Pithub::Issues::Labels.

### list

- •

  List the issues of the authenticated user

  ```
      GET /issues
  ```

  This API call can be influenced via the `"params"` hashref with following parameters:

  - •

    **filter**: one of the following:

    - •

      **assigned**: Issues assigned to you (default)

    - •

      **created**: Issues created by you

    - •

      **mentioned**: Issues mentioning you

    - •

      **subscribed**: Issues you're subscribed to updates for

  - •

    **state**: one of the following:

    - •

      **open** (default)

    - •

      **closed**

  - •

    **labels**: String list of comma separated Label names. Example: `"bug,ui,@high"`

  - •

    **sort**: one of the following:

    - •

      **created** (default)

    - •

      **updated**

    - •

      **comments**

  - •

    **direction**: one of the following:

    - •

      **asc**

    - •

      **desc** (default)

  - •

    **since**: optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ

  Examples:

  ```
      my $i      = Pithub::Issues->new;
      my $result = $i->list(
          params => {
              filter    => 'assigned',
              state     => 'open',
              labels    => 'bug',
              sort      => 'updated',
              direction => 'asc',
          }
      );
  ```

  Response: **Status: 200 OK**

  ```
      [
          {
              "url": "https://api.github.com/repos/octocat/Hello-World/issues/1",
              "html_url": "https://github.com/octocat/Hello-World/issues/1",
              "number": 1347,
              "state": "open",
              "title": "Found a bug",
              "body": "I'm having a problem with this.",
              "user": {
                  "login": "octocat",
                  "id": 1,
                  "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
                  "url": "https://api.github.com/users/octocat"
              },
              "labels": [
              {
                  "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug",
                  "name": "bug",
                  "color": "f29513"
              }
              ],
              "assignee": {
                  "login": "octocat",
                  "id": 1,
                  "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
                  "url": "https://api.github.com/users/octocat"
              },
              "milestone": {
                  "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1",
                  "number": 1,
                  "state": "open",
                  "title": "v1.0",
                  "description": "",
                  "creator": {
                      "login": "octocat",
                      "id": 1,
                      "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
                      "url": "https://api.github.com/users/octocat"
                  },
                  "open_issues": 4,
                  "closed_issues": 8,
                  "created_at": "2011-04-10T20:09:31Z",
                  "due_on": null
              },
              "comments": 0,
              "pull_request": {
                  "html_url": "https://github.com/octocat/Hello-World/issues/1",
                  "diff_url": "https://github.com/octocat/Hello-World/issues/1.diff",
                  "patch_url": "https://github.com/octocat/Hello-World/issues/1.patch"
              },
              "closed_at": null,
              "created_at": "2011-04-22T13:33:48Z",
              "updated_at": "2011-04-22T13:33:48Z"
          }
      ]
  ```

- •

  List issues for a repository

  ```
      GET /repos/:user/:repo/issues
  ```

  Parameters:

  - •

    **user**: mandatory string

  - •

    **repo**: mandatory string

  This API call can be influenced via the `"params"` hashref with following parameters:

  - •

    **milestone**: one of the following:

    - •

      `"Integer"` Milestone number

    - •

      `"none"` for Issues with no Milestone

    - •

      `"*"` for Issues with any Milestone

  - •

    **state**: one of the following:

    - •

      **open** (default)

    - •

      **closed**

  - •

    **assignee**: one of the following:

    - •

      `"String"` User login

    - •

      `"none"` for Issues with no assigned User

    - •

      `"*"` for Issues with any assigned User

  - •

    **mentioned**: String User login

  - •

    **labels**: String list of comma separated Label names. Example: `"bug,ui,@high"`

  - •

    **sort**: one of the following:

    - •

      **created** (default)

    - •

      **updated**

    - •

      **comments**

  - •

    **direction**: one of the following:

    - •

      **asc**

    - •

      **desc** (default)

  - •

    **since**: optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ

  Examples:

  ```
      my $i      = Pithub::Issues->new;
      my $result = $i->list(
          user    => 'plu',
          repo    => 'Pithub',
          params => {
              milestone => 42,
              state     => 'open',
              labels    => 'bug',
              sort      => 'updated',
              direction => 'asc',
          }
      );
  ```

  Response: **Status: 200 OK**

  ```
      [
          {
              "url": "https://api.github.com/repos/octocat/Hello-World/issues/1",
              "html_url": "https://github.com/octocat/Hello-World/issues/1",
              "number": 1347,
              "state": "open",
              "title": "Found a bug",
              "body": "I'm having a problem with this.",
              "user": {
                  "login": "octocat",
                  "id": 1,
                  "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
                  "url": "https://api.github.com/users/octocat"
              },
              "labels": [
              {
                  "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug",
                  "name": "bug",
                  "color": "f29513"
              }
              ],
              "assignee": {
                  "login": "octocat",
                  "id": 1,
                  "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
                  "url": "https://api.github.com/users/octocat"
              },
              "milestone": {
                  "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1",
                  "number": 1,
                  "state": "open",
                  "title": "v1.0",
                  "description": "",
                  "creator": {
                      "login": "octocat",
                      "id": 1,
                      "gravatar_url": "https://github.com/images/error/octocat_happy.gif",
                      "url": "https://api.github.com/users/octocat"
                  },
                  "open_issues": 4,
                  "closed_issues": 8,
                  "created_at": "2011-04-10T20:09:31Z",
                  "due_on": null
              },
              "comments": 0,
              "pull_request": {
                  "html_url": "https://github.com/octocat/Hello-World/issues/1",
                  "diff_url": "https://github.com/octocat/Hello-World/issues/1.diff",
                  "patch_url": "https://github.com/octocat/Hello-World/issues/1.patch"
              },
              "closed_at": null,
              "created_at": "2011-04-22T13:33:48Z",
              "updated_at": "2011-04-22T13:33:48Z"
          }
      ]
  ```

### milestones

Provides access to Pithub::Issues::Milestones.

### update

- •

  Edit an issue

  ```
      PATCH /repos/:user/:repo/issues/:id
  ```

  Parameters:

  - •

    **user**: mandatory string

  - •

    **repo**: mandatory string

  - •

    **data**: mandatory hashref, having following keys:

    - •

      **title**: mandatory string

    - •

      **body**: optional string

    - •

      **assignee**: optional string - Login for the user that this issue should be assigned to.

    - •

      **milestone**: optional number - Milestone to associate this issue with.

    - •

      **labels**: optional arrayref of strings - Labels to associate with this issue. Pass one or more Labels to replace the set of Labels on this Issue. Send an empty arrayref (`"[]"`) to clear all Labels from the Issue.

  Examples:

  ```
      my $i = Pithub::Issues->new;
      my $result = $i->update(
          user     => 'plu',
          repo     => 'Pithub',
          issue_id => 1,
          data     => {
              assignee  => 'octocat',
              body      => "I'm having a problem with this.",
              labels    => [ 'Label1', 'Label2' ],
              milestone => 1,
              state     => 'open',
              title     => 'Found a bug'
          }
      );
  ```

## AUTHOR

Johannes Plunien \<plu@cpan.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Johannes Plunien.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
