module Github::Issues::Milestones

def create_milestone(user_name=nil, repo_name=nil, params={})


:due_on => "Time"
:description => "String",
:state => "open or closed",
@github.issues.create_milestone :title => 'hello-world',
@github = Github.new :user => 'user-name', :repo => 'repo-name'
= Examples

:due_on - Optional string - ISO 8601 time
:description - Optional string
:state - Optional string - open or closed
:title - Required string
= Inputs

Create a milestone
def create_milestone(user_name=nil, repo_name=nil, params={})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  _normalize_params_keys(params)
  _filter_params_keys(VALID_MILESTONE_INPUTS, params)
  _validate_inputs(%w[ title ], params)
  post("/repos/#{user}/#{repo}/milestones", params)
end

def delete_milestone(user_name, repo_name, milestone_id, params={})


@github.issues.delete_milestone 'user-name', 'repo-name', 'milestone-id'
@github = Github.new
= Examples

Delete a milestone
def delete_milestone(user_name, repo_name, milestone_id, params={})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  _validate_presence_of milestone_id
  _normalize_params_keys(params)
  delete("/repos/#{user}/#{repo}/milestones/#{milestone_id}", params)
end

def milestone(user_name, repo_name, milestone_id, params={})


@github.issues.milestone 'user-name', 'repo-name', 'milestone-id'
@github = Github.new
= Examples

Get a single milestone
def milestone(user_name, repo_name, milestone_id, params={})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  _validate_presence_of milestone_id
  _normalize_params_keys(params)
  get("/repos/#{user}/#{repo}/milestones/#{milestone_id}", params)
end

def milestones(user_name=nil, repo_name=nil, params={})


:direction => 'asc'
:sort => 'due_date',
@github.issues.milestones :state => 'open',

or

@github.issues.milestones
@github = Github.new :user => 'user-name', :repo => 'repo-name'
= Examples

:direction - asc, desc, default: desc
:sort - due_date, completeness, default: due_date
:state - open, closed, default: open
= Parameters

List milestones for a repository
def milestones(user_name=nil, repo_name=nil, params={})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  _normalize_params_keys(params)
  _filter_params_keys(VALID_MILESTONE_OPTIONS.keys, params)
  _validate_params_values(VALID_MILESTONE_OPTIONS, params)
  response = get("/repos/#{user}/#{repo}/milestones", params)
  return response unless block_given?
  response.each { |el| yield el }
end

def update_milestone(user_name, repo_name, milestone_id, params={})


:due_on => "Time"
:description => "String",
:state => "open or closed",
:title => 'hello-world',
@github.issues.update_milestone 'user-name', 'repo-name', 'milestone-id',
@github = Github.new
= Examples

:due_on - Optional string - ISO 8601 time
:description - Optional string
:state - Optional string - open or closed
:title - Required string
= Inputs

Update a milestone
def update_milestone(user_name, repo_name, milestone_id, params={})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  _validate_presence_of milestone_id
  _normalize_params_keys(params)
  _filter_params_keys(VALID_MILESTONE_INPUTS, params)
  _validate_inputs(%w[ title ], params)
  patch("/repos/#{user}/#{repo}/milestones/#{milestone_id}", params)
end