class Github::Client::Issues::Labels

Constants

VALID_LABEL_INPUTS

Public Instance Methods

<<(*args)
Alias for: add
add(*args) click to toggle source

Add labels to an issue

@example

github = Github.new
github.issues.labels.add 'user-name', 'repo-name', 'issue-number',
  'label1', 'label2', ...

@api public

# File lib/github_api/client/issues/labels.rb, line 131
def add(*args)
  arguments(args, required: [:user, :repo, :number])
  params = arguments.params
  params['data'] = arguments.remaining unless arguments.remaining.empty?

  post_request("/repos/#{arguments.user}/#{arguments.repo}/issues/#{arguments.number}/labels", params)
end
Also aliased as: <<
all(*args)
Alias for: list
create(*args) click to toggle source

Create a label

@param [Hash] params @option params [String] :name

Required string

@option params [String] :color

Required string - 6 character hex code, without leading #

@example

github = Github.new user: 'user-name', repo: 'repo-name'
github.issues.labels.create name: 'API', color: 'FFFFFF'

@api public

# File lib/github_api/client/issues/labels.rb, line 77
def create(*args)
  arguments(args, required: [:user, :repo]) do
    permit VALID_LABEL_INPUTS
    assert_required VALID_LABEL_INPUTS
  end

  post_request("/repos/#{arguments.user}/#{arguments.repo}/labels", arguments.params)
end
delete(*args) click to toggle source

Delete a label

@examples

github = Github.new
github.issues.labels.delete 'user-name', 'repo-name', 'label-name'

@api public

# File lib/github_api/client/issues/labels.rb, line 117
def delete(*args)
  arguments(args, required: [:user, :repo, :label_name])

  delete_request("/repos/#{arguments.user}/#{arguments.repo}/labels/#{arguments.label_name}", arguments.params)
end
edit(*args)
Alias for: update
find(*args)
Alias for: get
get(*args) click to toggle source

Get a single label

@example

github = Github.new
github.issues.labels.find 'user-name', 'repo-name', 'label-name'

@example

github = Github.new user: 'user-name', repo: 'repo-name'
github.issues.labels.get label_name: 'bug'

@api public

# File lib/github_api/client/issues/labels.rb, line 56
def get(*args)
  arguments(args, required: [:user, :repo, :label_name])
  params = arguments.params

  get_request("/repos/#{arguments.user}/#{arguments.repo}/labels/#{arguments.label_name}", params)
end
Also aliased as: find
list(*args) { |el| ... } click to toggle source

List all labels for a repository

@example

github = Github.new user: 'user-name', repo: 'repo-name'
github.issues.labels.list
github.issues.labels.list { |label| ... }

Get labels for every issue in a milestone

@example

github = Github.new
github.issues.labels.list 'user-name', 'repo-name', milestone_id: 'milestone-id'

List labels on an issue

@example

github = Github.new
github.issues.labels.list 'user-name', 'repo-name', issue_id: 'issue-id'

@api public

# File lib/github_api/client/issues/labels.rb, line 27
def list(*args)
  arguments(args, required: [:user, :repo])
  params = arguments.params
  user = arguments.user
  repo = arguments.repo

  response = if (milestone_id = params.delete('milestone_id'))
    get_request("/repos/#{user}/#{repo}/milestones/#{milestone_id}/labels", params)
  elsif (issue_id = params.delete('issue_id'))
    get_request("/repos/#{user}/#{repo}/issues/#{issue_id}/labels", params)
  else
    get_request("/repos/#{user}/#{repo}/labels", params)
  end
  return response unless block_given?
  response.each { |el| yield el }
end
Also aliased as: all
remove(*args) click to toggle source

Remove a label from an issue

@example

github = Github.new
github.issues.labels.remove 'user-name', 'repo-name', 'issue-number',
  label_name: 'label-name'

Remove all labels from an issue

@example

github = Github.new
github.issues.labels.remove 'user-name', 'repo-name', 'issue-number'

@api public

# File lib/github_api/client/issues/labels.rb, line 154
def remove(*args)
  arguments(args, required: [:user, :repo, :number])
  params = arguments.params
  user   = arguments.user
  repo   = arguments.repo
  number = arguments.number

  if (label_name = params.delete('label_name'))
    delete_request("/repos/#{user}/#{repo}/issues/#{number}/labels/#{label_name}", params)
  else
    delete_request("/repos/#{user}/#{repo}/issues/#{number}/labels", params)
  end
end
replace(*args) click to toggle source

Replace all labels for an issue

Sending an empty array ([]) will remove all Labels from the Issue.

@example

github = Github.new
github.issues.labels.replace 'user-name', 'repo-name', 'issue-number',
  'label1', 'label2', ...

@api public

# File lib/github_api/client/issues/labels.rb, line 178
def replace(*args)
  arguments(args, required: [:user, :repo, :number])
  params = arguments.params
  params['data'] = arguments.remaining unless arguments.remaining.empty?

  put_request("/repos/#{arguments.user}/#{arguments.repo}/issues/#{arguments.number}/labels", params)
end
update(*args) click to toggle source

Update a label

@param [Hash] params @option params [String] :name

Required string

@option params [String] :color

Required string - 6 character hex code, without leading #

@example

github = Github.new
github.issues.labels.update 'user-name', 'repo-name', 'label-name',
  name: 'API', color: "FFFFFF"

@api public

# File lib/github_api/client/issues/labels.rb, line 100
def update(*args)
  arguments(args, required: [:user, :repo, :label_name]) do
    permit VALID_LABEL_INPUTS
    assert_required VALID_LABEL_INPUTS
  end

  patch_request("/repos/#{arguments.user}/#{arguments.repo}/labels/#{arguments.label_name}", arguments.params)
end
Also aliased as: edit