NAME
Pithub::Issues - Github v3 Issues API
VERSION
version 0.01020
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 numbernone
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 loginnone
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.