Access to Issues::Assignees API
# File lib/github_api/issues.rb, line 40 def assignees(options={}, &block) @assignees ||= ApiFactory.new('Issues::Assignees', current_options.merge(options), &block) end
Access to Issues::Comments API
# File lib/github_api/issues.rb, line 45 def comments(options={}, &block) @comments ||= ApiFactory.new('Issues::Comments', current_options.merge(options), &block) end
Create an issue
<tt>:title</tt> - Required string <tt>:body</tt> - Optional string <tt>:assignee</tt> - Optional string - Login for the user that this issue should be assigned to. Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. <tt>:milestone</tt> - Optional number - Milestone to associate this issue with. Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise. <tt>:labels</tt> - Optional array of strings - Labels to associate with this issue Only users with push access can set labels for new issues. Labels are silently dropped otherwise.
github = Github.new :user => 'user-name', :repo => 'repo-name' github.issues.create "title" => "Found a bug", "body" => "I'm having a problem with this.", "assignee" => "octocat", "milestone" => 1, "labels" => [ "Label1", "Label2" ]
# File lib/github_api/issues.rb, line 197 def create(*args) arguments(args, :required => [:user, :repo]) do sift VALID_ISSUE_PARAM_NAMES assert_required %w[ title ] end post_request("/repos/#{user}/#{repo}/issues", arguments.params) end
Edit an issue
<tt>:title</tt> - Optional string <tt>:body</tt> - Optional string <tt>:assignee</tt> - Optional string - Login for the user that this issue should be assigned to. <tt>:state</tt> - Optional string - State of the issue:<tt>open</tt> or <tt>closed</tt> <tt>:milestone</tt> - Optional number - Milestone to associate this issue with <tt>:labels</tt> - Optional array 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 array ([]) to clear all Labels from the Issue.
github = Github.new github.issues.edit 'user-name', 'repo-name', 'number' "title" => "Found a bug", "body" => "I'm having a problem with this.", "assignee" => "octocat", "milestone" => 1, "labels" => [ "Label1", "Label2" ]
# File lib/github_api/issues.rb, line 228 def edit(*args) arguments(args, :required => [:user, :repo, :number]) do sift VALID_ISSUE_PARAM_NAMES end params = arguments.params patch_request("/repos/#{user}/#{repo}/issues/#{number}", params) end
Access to Issues::Events API
# File lib/github_api/issues.rb, line 50 def events(options={}, &block) @events ||= ApiFactory.new('Issues::Events', current_options.merge(options), &block) end
Get a single issue
github = Github.new github.issues.get 'user-name', 'repo-name', 'number'
# File lib/github_api/issues.rb, line 164 def get(*args) arguments(args, :required => [:user, :repo, :number]) get_request("/repos/#{user}/#{repo}/issues/#{number}", arguments.params) end
Access to Issues::Comments API
# File lib/github_api/issues.rb, line 55 def labels(options={}, &block) @labels ||= ApiFactory.new('Issues::Labels', current_options.merge(options), &block) end
List your issues
List all issues across all the authenticated user’s visible repositories including owned repositories, member repositories, and organization repositories.
github = Github.new :oauth_token => '...' github.issues.list
List all issues across owned and member repositories for the authenticated user.
github = Github.new :oauth_token => '...' github.issues.list :user
List all issues for a given organization for the authenticated user.
github = Github.new :oauth_token => '...' github.issues.list :org => 'org-name'
List issues for a repository
github = Github.new github.issues.list :user => 'user-name', :repo => 'repo-name'
:filter
* <tt>assigned</tt> Issues assigned to you (default) * <tt>created</tt> Issues created by you * <tt>mentioned</tt> Issues mentioning you * <tt>subscribed</tt> Issues you've subscribed to updates for * <tt>all</tt> All issues the user can see
:milestone
* Integer Milestone number * <tt>none</tt> for Issues with no Milestone. * <tt>*</tt> for Issues with any Milestone
:state
- open
, closed
, default:
open
:labels
- String list of comma separated
Label names.
Example: bug,ui,@high
:assignee
* String User login * <tt>none</tt> for Issues with no assigned User. * <tt>*</tt> for Issues with any assigned User.
:creator
String User login :mentioned
String User
login :sort
- created
, updated
,
comments
,
default: <tt>created</tt>
:direction
- asc
, desc
, default:
desc
:since
- Optional string of a timestamp
in ISO 8601
format: YYYY-MM-DDTHH:MM:SSZ
github = Github.new :oauth_token => '...' github.issues.list :since => '2011-04-12T12:12:12Z', :filter => 'created', :state => 'open', :labels => "bug,ui,bla", :sort => 'comments', :direction => 'asc'
# File lib/github_api/issues.rb, line 128 def list(*args) params = arguments(args) do assert_values VALID_ISSUE_PARAM_VALUES end.params response = if (org = params.delete('org')) get_request("/orgs/#{org}/issues", params) elsif (user_name = params.delete('user')) && (repo_name = params.delete('repo')) list_repo user_name, repo_name elsif args.include? :user get_request("/user/issues", params) else get_request("/issues", params) end return response unless block_given? response.each { |el| yield el } end
Access to Issues::Comments API
# File lib/github_api/issues.rb, line 60 def milestones(options={}, &block) @milestones ||= ApiFactory.new('Issues::Milestones', current_options.merge(options), &block) end
List issues for a repository
def #list_repo(user_name, repo_name, params)
# File lib/github_api/issues.rb, line 153 def list_repo(user, repo) get_request("/repos/#{user}/#{repo}/issues", arguments.params) end