# encoding: utf-8moduleGithubclassClient::Issues::Milestones<APIVALID_MILESTONE_OPTIONS={'state'=>%w[ open closed all ],'sort'=>%w[ due_date completeness ],'direction'=>%w[ desc asc ]}.freeze# :nodoc:VALID_MILESTONE_INPUTS=%w[
title
state
description
due_on
].freeze# :nodoc:# List milestones for a repository## @param [Hash] params# @option params [String] :state# The state of the milestone. Either open, closed, or all. Default: open# @option params [String] :sort# What to sort results by. Either due_date or completeness.# Default: due_date# @option params [String] :direction# The directoin of the sort. Either asc or desc. Default: desc## @example# github = Github.new user: 'user-name', repo: 'repo-name'# github.issues.milestones.list## @example# github.issues.milestones.list state: 'open', sort: 'due_date',# direction: 'asc'## @api publicdeflist(*args)arguments(args,required: [:user,:repo])dopermitVALID_MILESTONE_OPTIONS.keysassert_valuesVALID_MILESTONE_OPTIONSendresponse=get_request("/repos/#{arguments.user}/#{arguments.repo}/milestones",arguments.params)returnresponseunlessblock_given?response.each{|el|yieldel}endalias:all:list# Get a single milestone## @example# github = Github.new# github.issues.milestones.get 'user-name', 'repo-name', 'milestone-number'## @example# github.issues.milestones.get# user: 'user-name',# repo: 'repo-name',# number: 'milestone-number'## @api publicdefget(*args)arguments(args,required: [:user,:repo,:number])get_request("/repos/#{arguments.user}/#{arguments.repo}/milestones/#{arguments.number}",arguments.params)endalias:find:get# Create a milestone## @param [Hash] params# @option params [String] :title# Required string. The title of the milestone# @option params [String] :state# The state of the milestone. Either open or closed. Default: open.# @option params [String] :description# A description of the milestone# @option params [String] :due_on# The milestone due date. This is a timestamp in ISO 8601 format:# YYYY-MM-DDTHH:MM:SSZ.## @example# github = Github.new user: 'user-name', repo: 'repo-name'# github.issues.milestones.create title: 'hello-world',# state: "open or closed",# description: "String",# due_on: "Time"## @api publicdefcreate(*args)arguments(args,required: [:user,:repo])dopermitVALID_MILESTONE_INPUTSassert_required%w[ title ]endpost_request("/repos/#{arguments.user}/#{arguments.repo}/milestones",arguments.params)end# Update a milestone## @param [Hash] params# @option params [String] :title# Required string. The title of the milestone# @option params [String] :state# The state of the milestone. Either open or closed. Default: open.# @option params [String] :description# A description of the milestone# @option params [String] :due_on# The milestone due date. This is a timestamp in ISO 8601 format:# YYYY-MM-DDTHH:MM:SSZ.## @example# github = Github.new# github.issues.milestones.update 'user-name', 'repo-name', 'number',# :title => 'hello-world',# :state => "open or closed",# :description => "String",# :due_on => "Time"## @api publicdefupdate(*args)arguments(args,required: [:user,:repo,:number])dopermitVALID_MILESTONE_INPUTSendpatch_request("/repos/#{arguments.user}/#{arguments.repo}/milestones/#{arguments.number}",arguments.params)end# Delete a milestone## @example# github = Github.new# github.issues.milestones.delete 'user-name', 'repo-name', 'number'## @api publicdefdelete(*args)arguments(args,required: [:user,:repo,:number])delete_request("/repos/#{arguments.user}/#{arguments.repo}/milestones/#{arguments.number}",arguments.params)endend# Issues::Milestonesend# Github