module Octokit::Client::Issues

def add_assignees(repo, number, assignees, options = {})

Other tags:
    Example: Add assignees "pengwynn" and "joeyw" to Issue #23 on octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/assignees/#add-assignees-to-an-issue -

Returns:
  • (Sawyer::Resource) - Issue

Parameters:
  • assignees (Array) -- Assignees to be added
  • number (Integer) -- Issue number
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def add_assignees(repo, number, assignees, options = {})
  post "#{Repository.path repo}/issues/#{number}/assignees", options.merge({ assignees: assignees })
end

def add_comment(repo, number, comment, options = {})

Other tags:
    Example: Add the comment "Almost to v1" to Issue #23 on octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/comments/#create-a-comment -

Returns:
  • (Sawyer::Resource) - Comment

Parameters:
  • comment (String) -- Comment to be added
  • number (Integer) -- Issue number
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def add_comment(repo, number, comment, options = {})
  post "#{Repository.path repo}/issues/#{number}/comments", options.merge({ body: comment })
end

def close_issue(repo, number, options = {})

Other tags:
    Example: Close Issue #25 from octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/#edit-an-issue -

Returns:
  • (Sawyer::Resource) - The updated Issue

Options Hash: (**options)
  • :labels (Array) -- List of Label names. Example: ['bug', 'ui', '@high'].
  • :milestone (Integer) -- Milestone number.
  • :assignees (Array) -- User login.
  • :assignee (String) -- User login.

Parameters:
  • options (Hash) -- A customizable set of options.
  • number (Integer) -- Number ID of the issue
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def close_issue(repo, number, options = {})
  patch "#{Repository.path repo}/issues/#{number}", options.merge({ state: 'closed' })
end

def create_issue(repo, title, body = nil, options = {})

Other tags:
    Example: Create a new Issues for a repository -

Other tags:
    See: https://developer.github.com/v3/issues/#create-an-issue -

Returns:
  • (Sawyer::Resource) - Your newly created issue

Options Hash: (**options)
  • :labels (String) -- List of comma separated Label names. Example: bug,ui,@high.
  • :milestone (Integer) -- Milestone number.
  • :assignees (Array) -- User login.
  • :assignee (String) -- User login.

Parameters:
  • options (Hash) -- A customizable set of options.
  • body (String) -- An optional concise description
  • title (String) -- A descriptive title
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def create_issue(repo, title, body = nil, options = {})
  options[:labels] = case options[:labels]
                     when String
                       options[:labels].split(',').map(&:strip)
                     when Array
                       options[:labels]
                     else
                       []
                     end
  parameters = { title: title }
  parameters[:body] = body unless body.nil?
  post "#{Repository.path repo}/issues", options.merge(parameters)
end

def delete_comment(repo, number, options = {})

Other tags:
    Example: Delete the comment #1194549 on an issue on octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/comments/#delete-a-comment -

Returns:
  • (Boolean) - Success

Parameters:
  • number (Integer) -- Comment number
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def delete_comment(repo, number, options = {})
  boolean_from_response :delete, "#{Repository.path repo}/issues/comments/#{number}", options
end

def issue(repo, number, options = {})

Other tags:
    Example: Get issue #25 from octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/#get-a-single-issue -

Returns:
  • (Sawyer::Resource) - The issue you requested, if it exists

Parameters:
  • number (Integer) -- Number ID of the issue
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def issue(repo, number, options = {})
  get "#{Repository.path repo}/issues/#{number}", options
end

def issue_comment(repo, number, options = {})

Other tags:
    Example: Get comment #1194549 from an issue on octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/comments/#get-a-single-comment -

Returns:
  • (Sawyer::Resource) - The specific comment in question

Parameters:
  • number (Integer) -- Number ID of the comment
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def issue_comment(repo, number, options = {})
  paginate "#{Repository.path repo}/issues/comments/#{number}", options
end

def issue_comments(repo, number, options = {})

Other tags:
    Example: Get comments for issue #25 from octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/comments/#list-comments-on-an-issue -

Returns:
  • (Array) - Array of comments that belong to an issue

Parameters:
  • number (Integer) -- Number ID of the issue
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def issue_comments(repo, number, options = {})
  paginate "#{Repository.path repo}/issues/#{number}/comments", options
end

def issue_timeline(repo, number, options = {})

Other tags:
    Example: Get timeline for issue #1435 on octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/timeline/ -

Returns:
  • (Sawyer::Resource) - The timeline for this issue

Parameters:
  • number (Integer) -- Number ID of the comment
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def issue_timeline(repo, number, options = {})
  paginate "#{Repository.path repo}/issues/#{number}/timeline", options
end

def issues_comments(repo, options = {})

Other tags:
    Example: Get issues comments, sort by updated descending since a time -
    Example: Get the comments for issues in the octokit repository -

Other tags:
    See: https://developer.github.com/v3/issues/comments/#list-comments-in-a-repository -

Returns:
  • (Array) - List of issues comments.

Options Hash: (**options)
  • :since (String) -- Timestamp in ISO 8601
  • :direction (String) -- asc or desc. Ignored without sort
  • :sort (String) -- created or updated

Parameters:
  • options (Hash) -- Optional parameters
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def issues_comments(repo, options = {})
  paginate "#{Repository.path repo}/issues/comments", options
end

def list_assignees(repo, options = {})

Other tags:
    Example: Get available assignees on repository octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/assignees/#list-assignees -

Returns:
  • (Array) - List of GitHub users.

Parameters:
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def list_assignees(repo, options = {})
  paginate "#{Repository.path repo}/assignees", options
end

def list_issues(repository = nil, options = {})

Other tags:
    Example: List issues for the authenticated user across repositories -
    Example: List issues for a repository -

Other tags:
    See: https://developer.github.com/v3/issues/#list-issues -
    See: https://developer.github.com/v3/issues/#list-issues-for-a-repository -

Returns:
  • (Array) - A list of issues for a repository.

Options Hash: (**options)
  • :page (Integer) -- Page number.
  • :direction (String) -- Direction: asc or desc.
  • :sort (String) -- Sort: created, updated, or comments.
  • :labels (String) -- List of comma separated Label names. Example: bug,ui,@high.
  • :mentioned (String) -- User login.
  • :creator (String) -- User login.
  • :assignee (String) -- User login.
  • :state (String) -- State: open, closed, or all.
  • :milestone (Integer) -- Milestone number.

Parameters:
  • options (Sawyer::Resource) -- A customizable set of options.
  • repository (Integer, String, Repository, Hash) -- A GitHub repository.
def list_issues(repository = nil, options = {})
  path = repository ? "#{Repository.new(repository).path}/issues" : 'issues'
  paginate path, options
end

def lock_issue(repo, number, options = {})

Other tags:
    Example: Lock Issue #25 from octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/#lock-an-issue -

Returns:
  • (Boolean) - Success

Parameters:
  • number (Integer) -- Number ID of the issue
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def lock_issue(repo, number, options = {})
  boolean_from_response :put, "#{Repository.path repo}/issues/#{number}/lock", options
end

def org_issues(org, options = {})

Other tags:
    Example: List all issues for a given organization for the authenticated user -

Other tags:
    See: https://developer.github.com/v3/issues/#list-issues -

Returns:
  • (Array) - A list of issues.

Options Hash: (**options)
  • :since (String) -- Timestamp in ISO 8601
  • :page (Integer) -- Page number.
  • :direction (String) -- Direction: asc or desc.
  • :sort (String) -- Sort: created, updated, or comments.
  • :labels (Array) -- List of Label names. Example: ['bug', 'ui', '@high'].
  • :state (String) -- State: open, closed, or all.
  • :filter (String) -- State: assigned, created, mentioned, subscribed or closed.

Parameters:
  • options (Sawyer::Resource) -- A customizable set of options.
  • org (String, Integer) -- Organization GitHub login or id.
def org_issues(org, options = {})
  paginate "#{Organization.path org}/issues", options
end

def remove_assignees(repo, number, assignees, options = {})

Other tags:
    Example: Remove assignees "pengwynn" from Issue #23 on octokit/octokit.rb -
    Example: Remove assignees "pengwynn" and "joeyw" from Issue #23 on octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/assignees/#remove-assignees-from-an-issue -

Returns:
  • (Sawyer::Resource) - Issue

Parameters:
  • options (Hash) -- Header params for request
  • assignees (Array) -- Assignees to be removed
  • number (Integer) -- Issue number
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def remove_assignees(repo, number, assignees, options = {})
  delete "#{Repository.path repo}/issues/#{number}/assignees", options.merge({ assignees: assignees })
end

def reopen_issue(repo, number, options = {})

Other tags:
    Example: Reopen Issue #25 from octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/#edit-an-issue -

Returns:
  • (Sawyer::Resource) - The updated Issue

Options Hash: (**options)
  • :labels (Array) -- List of Label names. Example: ['bug', 'ui', '@high'].
  • :milestone (Integer) -- Milestone number.
  • :assignees (Array) -- User login.
  • :assignee (String) -- User login.

Parameters:
  • options (Hash) -- A customizable set of options.
  • number (Integer) -- Number ID of the issue
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def reopen_issue(repo, number, options = {})
  patch "#{Repository.path repo}/issues/#{number}", options.merge({ state: 'open' })
end

def unlock_issue(repo, number, options = {})

Other tags:
    Example: Unlock Issue #25 from octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/#unlock-an-issue -

Returns:
  • (Boolean) - Success

Parameters:
  • number (Integer) -- Number ID of the issue
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def unlock_issue(repo, number, options = {})
  boolean_from_response :delete, "#{Repository.path repo}/issues/#{number}/lock", options
end

def update_comment(repo, number, comment, options = {})

Other tags:
    Example: Update the comment #1194549 with body "I've started this on my 25-issue-comments-v3 fork" on an issue on octokit/octokit.rb -

Other tags:
    See: https://developer.github.com/v3/issues/comments/#edit-a-comment -

Returns:
  • (Sawyer::Resource) - Comment

Parameters:
  • comment (String) -- Body of the comment which will replace the existing body.
  • number (Integer) -- Comment number
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
def update_comment(repo, number, comment, options = {})
  patch "#{Repository.path repo}/issues/comments/#{number}", options.merge({ body: comment })
end

def update_issue(repo, number, *args)

Other tags:
    Example: Change only the assignee of Issue #25 -
    Example: Change the title of Issue #25 -

Other tags:
    See: https://developer.github.com/v3/issues/#edit-an-issue -

Returns:
  • (Sawyer::Resource) - The updated Issue

Options Hash: (**options)
  • :state (String) -- State of the issue. open or closed
  • :labels (Array) -- List of Label names. Example: ['bug', 'ui', '@high'].
  • :milestone (Integer) -- Milestone number.
  • :assignees (Array) -- User login.
  • :assignee (String) -- User login.
  • :body (String) -- Updated body of the issue
  • :title (String) -- Updated title for the issue
  • :state (String) -- State of the issue. open or closed
  • :labels (String) -- List of comma separated Label names. Example: bug,ui,@high.
  • :milestone (Integer) -- Milestone number.
  • :assignees (Array) -- User login.
  • :assignee (String) -- User login.

Parameters:
  • options (Hash) -- A customizable set of options.
  • number (Integer) -- Number ID of the issue
  • repo (Integer, String, Repository, Hash) -- A GitHub repository
  • options (Hash) -- A customizable set of options.
  • body (String) -- Updated body of the issue
  • title (String) -- Updated title for the issue
  • number (Integer) -- Number ID of the issue
  • repo (Integer, String, Repository, Hash) -- A GitHub repository

Overloads:
  • update_issue(repo, number, options)
  • update_issue(repo, number, title, body, options)
def update_issue(repo, number, *args)
  arguments = Arguments.new(args)
  opts = arguments.options
  unless arguments.empty?
    opts[:title] = arguments.shift
    opts[:body] = arguments.shift
  end
  patch "#{Repository.path repo}/issues/#{number}", opts
end

def user_issues(options = {})

Other tags:
    Example: List issues for the authenticated user across owned and member repositories -

Other tags:
    See: https://developer.github.com/v3/issues/#list-issues -

Returns:
  • (Array) - A list of issues for a repository.

Options Hash: (**options)
  • :since (String) -- Timestamp in ISO 8601
  • :page (Integer) -- Page number.
  • :direction (String) -- Direction: asc or desc.
  • :sort (String) -- Sort: created, updated, or comments.
  • :labels (Array) -- List of Label names. Example: ['bug', 'ui', '@high'].
  • :state (String) -- State: open, closed, or all.
  • :filter (String) -- State: assigned, created, mentioned, subscribed or closed.

Parameters:
  • options (Sawyer::Resource) -- A customizable set of options.
def user_issues(options = {})
  paginate 'user/issues', options
end