lib/github_api/client/issues/assignees.rb
# encoding: utf-8 require_relative '../../api' module Github class Client::Issues::Assignees < API # Lists all the available assignees (owner + collaborators) # to which issues may be assigned. # # @example # Github.issues.assignees.list 'owner', 'repo' # Github.issues.assignees.list 'owner', 'repo' { |assignee| ... } # # @api public def list(*args) arguments(args, required: [:owner, :repo]) response = get_request("/repos/#{arguments.owner}/#{arguments.repo}/assignees", arguments.params) return response unless block_given? response.each { |el| yield el } end alias :all :list # Check to see if a particular user is an assignee for a repository. # # @example # Github.issues.assignees.check 'user', 'repo', 'assignee' # # @example # github = Github.new user: 'user-name', repo: 'repo-name' # github.issues.assignees.check 'assignee' # # @api public def check(*args) arguments(args, required: [:owner, :repo, :assignee]) params = arguments.params get_request("/repos/#{arguments.owner}/#{arguments.repo}/assignees/#{arguments.assignee}",params) true rescue Github::Error::NotFound false end # Add assignees to an issue # # @example # github = Github.new # github.issues.assignees.add 'user', 'repo', 'issue-number', # 'hubot', 'other_assignee', ... # # @api public def add(*args) arguments(args, required: [:user, :repo, :number]) params = arguments.params params['data'] = { 'assignees' => arguments.remaining } unless arguments.remaining.empty? post_request("/repos/#{arguments.user}/#{arguments.repo}/issues/#{arguments.number}/assignees", params) end alias :<< :add # Remove a assignees from an issue # # @example # github = Github.new # github.issues.assignees.remove 'user', 'repo', 'issue-number', # 'hubot', 'other_assignee' # # @api public def remove(*args) arguments(args, required: [:user, :repo, :number]) params = arguments.params params['data'] = { 'assignees' => arguments.remaining } unless arguments.remaining.empty? delete_request("/repos/#{arguments.user}/#{arguments.repo}/issues/#{arguments.number}/assignees", params) end end # Issues::Assignees end # Github