Module: Octokit::Client::Issues

Included in:
Octokit::Client
Defined in:
lib/octokit/client/issues.rb

Overview

Methods for the Issues API

See Also:

Instance Method Summary (collapse)

Instance Method Details

- (Sawyer::Resource) add_comment(repo, number, comment, options = {})

Add a comment to an issue

Examples:

Add the comment “Almost to v1” to Issue #23 on octokit/octokit.rb

Octokit.add_comment("octokit/octokit.rb", 23, "Almost to v1")

See Also:



225
226
227
# File 'lib/octokit/client/issues.rb', line 225

def add_comment(repo, number, comment, options = {})
  post "#{Repository.path repo}/issues/#{number}/comments", options.merge({:body => comment})
end

- (Sawyer::Resource) close_issue(repo, number, options = {})

Close an issue

Examples:

Close Issue #25 from octokit/octokit.rb

Octokit.close_issue("octokit/octokit.rb", "25")

Options Hash (options):

  • :assignee (String)

    User login.

  • :milestone (Integer)

    Milestone number.

  • :labels (String)

    List of comma separated Label names. Example: bug,ui,@high.

See Also:



124
125
126
# File 'lib/octokit/client/issues.rb', line 124

def close_issue(repo, number, options = {})
  patch "#{Repository.path repo}/issues/#{number}", options.merge({:state => "closed"})
end

- (Sawyer::Resource) create_issue(repo, title, body, options = {}) Also known as: open_issue

Create an issue for a repository

Examples:

Create a new Issues for a repository

Octokit.create_issue("sferik/rails_admin", 'Updated Docs', 'Added some extra links')

Options Hash (options):

  • :assignee (String)

    User login.

  • :milestone (Integer)

    Milestone number.

  • :labels (String)

    List of comma separated Label names. Example: bug,ui,@high.

See Also:



89
90
91
92
93
94
95
96
97
# File 'lib/octokit/client/issues.rb', line 89

def create_issue(repo, title, body, options = {})
  options[:labels] = case options[:labels]
                     when String
                       options[:labels].split(",").map(&:strip)
                     when Array
                       options[:labels]
                     end
  post "#{Repository.path repo}/issues", options.merge({:title => title, :body => body})
end

- (Boolean) delete_comment(repo, number, options = {})

Delete a single comment

Examples:

Delete the comment #1194549 on an issue on octokit/octokit.rb

Octokit.delete_comment("octokit/octokit.rb", 1194549)

See Also:



250
251
252
# File 'lib/octokit/client/issues.rb', line 250

def delete_comment(repo, number, options = {})
  boolean_from_response :delete, "#{Repository.path repo}/issues/comments/#{number}", options
end

- (Sawyer::Resource) issue(repo, number, options = {})

Get a single issue from a repository

Examples:

Get issue #25 from octokit/octokit.rb

Octokit.issue("octokit/octokit.rb", "25")

See Also:



108
109
110
# File 'lib/octokit/client/issues.rb', line 108

def issue(repo, number, options = {})
  get "#{Repository.path repo}/issues/#{number}", options
end

- (Sawyer::Resource) issue_comment(repo, number, options = {})

Get a single comment attached to an issue

Examples:

Get comment #1194549 from an issue on octokit/octokit.rb

Octokit.issue_comments("octokit/octokit.rb", 1194549)

See Also:



212
213
214
# File 'lib/octokit/client/issues.rb', line 212

def issue_comment(repo, number, options = {})
  paginate "#{Repository.path repo}/issues/comments/#{number}", options
end

- (Array<Sawyer::Resource>) issue_comments(repo, number, options = {})

Get all comments attached to an issue

Examples:

Get comments for issue #25 from octokit/octokit.rb

Octokit.issue_comments("octokit/octokit.rb", "25")

See Also:



200
201
202
# File 'lib/octokit/client/issues.rb', line 200

def issue_comments(repo, number, options = {})
  paginate "#{Repository.path repo}/issues/#{number}/comments", options
end

- (Array<Sawyer::Resource>) issues_comments(repo, options = {})

Get all comments attached to issues for the repository

By default, Issue Comments are ordered by ascending ID.

Examples:

Get the comments for issues in the octokit repository

@client.issues_comments("octokit/octokit.rb")

Get issues comments, sort by updated descending since a time

@client.issues_comments("octokit/octokit.rb", {
  :sort => 'desc',
  :direction => 'asc',
  :since => '2010-05-04T23:45:02Z'
})

Options Hash (options):

  • :sort (String)

    created or updated

  • :direction (String)

    asc or desc. Ignored without sort parameter.

  • :since (String)

    Timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ

See Also:



188
189
190
# File 'lib/octokit/client/issues.rb', line 188

def issues_comments(repo, options = {})
  paginate "#{Repository.path repo}/issues/comments", options
end

- (Array<Sawyer::Resource>) list_issues(repository = nil, options = {}) Also known as: issues

List issues for the authenticated user or repository

Examples:

List issues for a repository

Octokit.list_issues("sferik/rails_admin")

List issues for the authenticted user across repositories

@client = Octokit::Client.new(:login => 'foo', :password => 'bar')
@client.list_issues

Options Hash (options):

  • :milestone (Integer)

    Milestone number.

  • :state (String) — default: open

    State: open or closed.

  • :assignee (String)

    User login.

  • :creator (String)

    User login.

  • :mentioned (String)

    User login.

  • :labels (String)

    List of comma separated Label names. Example: bug,ui,@high.

  • :sort (String) — default: created

    Sort: created, updated, or comments.

  • :direction (String) — default: desc

    Direction: asc or desc.

  • :page (Integer) — default: 1

    Page number.

See Also:



30
31
32
# File 'lib/octokit/client/issues.rb', line 30

def list_issues(repository = nil, options = {})
  paginate "#{Repository.new(repository).path}/issues", options
end

- (Array<Sawyer::Resource>) org_issues(org, options = {})

List all issues for a given organization for the authenticated user

Examples:

List all issues for a given organization for the authenticated user

@client = Octokit::Client.new(:login => 'foo', :password => 'bar')
@client.org_issues("octokit")

Options Hash (options):

  • :filter (String) — default: assigned

    State: assigned, created, mentioned, subscribed or closed.

  • :state (String) — default: open

    State: open or closed.

  • :labels (String)

    List of comma separated Label names. Example: bug,ui,@high.

  • :sort (String) — default: created

    Sort: created, updated, or comments.

  • :direction (String) — default: desc

    Direction: asc or desc.

  • :page (Integer) — default: 1

    Page number.

  • :since (String)

    Timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ

See Also:



72
73
74
# File 'lib/octokit/client/issues.rb', line 72

def org_issues(org, options = {})
  paginate "#{Organization.path org}/issues", options
end

- (Sawyer::Resource) reopen_issue(repo, number, options = {})

Reopen an issue

Examples:

Reopen Issue #25 from octokit/octokit.rb

Octokit.reopen_issue("octokit/octokit.rb", "25")

Options Hash (options):

  • :assignee (String)

    User login.

  • :milestone (Integer)

    Milestone number.

  • :labels (String)

    List of comma separated Label names. Example: bug,ui,@high.

See Also:



140
141
142
# File 'lib/octokit/client/issues.rb', line 140

def reopen_issue(repo, number, options = {})
  patch "#{Repository.path repo}/issues/#{number}", options.merge({:state => "open"})
end

- (Sawyer::Resource) update_comment(repo, number, comment, options = {})

Update a single comment on an issue

Examples:

Update the comment #1194549 with body “I've started this on my 25-issue-comments-v3 fork” on an issue on octokit/octokit.rb

Octokit.update_comment("octokit/octokit.rb", 1194549, "Almost to v1, added this on my fork")

See Also:



238
239
240
# File 'lib/octokit/client/issues.rb', line 238

def update_comment(repo, number, comment, options = {})
  patch "#{Repository.path repo}/issues/comments/#{number}", options.merge({:body => comment})
end

- (Sawyer::Resource) update_issue(repo, number, title, body, options = {})

Update an issue

Examples:

Change the title of Issue #25

Octokit.update_issue("octokit/octokit.rb", "25", "A new title", "the same body"")

Options Hash (options):

  • :assignee (String)

    User login.

  • :milestone (Integer)

    Milestone number.

  • :labels (String)

    List of comma separated Label names. Example: bug,ui,@high.

  • :state (String)

    State of the issue. open or closed

See Also:



159
160
161
# File 'lib/octokit/client/issues.rb', line 159

def update_issue(repo, number, title, body, options = {})
  patch "#{Repository.path repo}/issues/#{number}", options.merge({:title => title, :body => body})
end

- (Array<Sawyer::Resource>) user_issues(options = {})

List all issues across owned and member repositories for the authenticated user

Examples:

List issues for the authenticted user across owned and member repositories

@client = Octokit::Client.new(:login => 'foo', :password => 'bar')
@client.user_issues

Options Hash (options):

  • :filter (String) — default: assigned

    State: assigned, created, mentioned, subscribed or closed.

  • :state (String) — default: open

    State: open or closed.

  • :labels (String)

    List of comma separated Label names. Example: bug,ui,@high.

  • :sort (String) — default: created

    Sort: created, updated, or comments.

  • :direction (String) — default: desc

    Direction: asc or desc.

  • :page (Integer) — default: 1

    Page number.

  • :since (String)

    Timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ

See Also:



51
52
53
# File 'lib/octokit/client/issues.rb', line 51

def user_issues(options = {})
  paginate 'user/issues', options
end