File: milestones.rb

package info (click to toggle)
ruby-octokit 10.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,092 kB
  • sloc: ruby: 13,339; sh: 99; makefile: 7; javascript: 3
file content (87 lines) | stat: -rw-r--r-- 4,578 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# frozen_string_literal: true

module Octokit
  class Client
    # Methods for the Issues Milestones API
    #
    # @see https://developer.github.com/v3/issues/milestones/
    module Milestones
      # List milestones for a repository
      #
      # @param repository [Integer, String, Repository, Hash] A GitHub repository
      # @param options [Hash] A customizable set of options.
      # @option options [Integer] :milestone Milestone number.
      # @option options [String] :state (open) State: <tt>open</tt>, <tt>closed</tt>, or <tt>all</tt>.
      # @option options [String] :sort (created) Sort: <tt>created</tt>, <tt>updated</tt>, or <tt>comments</tt>.
      # @option options [String] :direction (desc) Direction: <tt>asc</tt> or <tt>desc</tt>.
      # @return [Array<Sawyer::Resource>] A list of milestones for a repository.
      # @see https://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository
      # @example List milestones for a repository
      #   Octokit.list_milestones("octokit/octokit.rb")
      def list_milestones(repository, options = {})
        paginate "#{Repository.path repository}/milestones", options
      end
      alias milestones list_milestones

      # Get a single milestone for a repository
      #
      # @param repository [Integer, String, Repository, Hash] A GitHub repository
      # @param options [Hash] A customizable set of options.
      # @option options [Integer] :milestone Milestone number.
      # @return [Sawyer::Resource] A single milestone from a repository.
      # @see https://developer.github.com/v3/issues/milestones/#get-a-single-milestone
      # @example Get a single milestone for a repository
      #   Octokit.milestone("octokit/octokit.rb", 1)
      def milestone(repository, number, options = {})
        get "#{Repository.path repository}/milestones/#{number}", options
      end

      # Create a milestone for a repository
      #
      # @param repository [Integer, String, Repository, Hash] A GitHub repository
      # @param title [String] A unique title.
      # @param options [Hash] A customizable set of options.
      # @option options [String] :state (open) State: <tt>open</tt> or <tt>closed</tt>.
      # @option options [String] :description A meaningful description
      # @option options [Time] :due_on Set if the milestone has a due date
      # @return [Sawyer::Resource] A single milestone object
      # @see https://developer.github.com/v3/issues/milestones/#create-a-milestone
      # @example Create a milestone for a repository
      #   Octokit.create_milestone("octokit/octokit.rb", "0.7.0", {:description => 'Add support for v3 of Github API'})
      def create_milestone(repository, title, options = {})
        post "#{Repository.path repository}/milestones", options.merge({ title: title })
      end

      # Update a milestone for a repository
      #
      # @param repository [Integer, String, Repository, Hash] A GitHub repository
      # @param number [String, Integer] ID of the milestone
      # @param options [Hash] A customizable set of options.
      # @option options [String] :title A unique title.
      # @option options [String] :state (open) State: <tt>open</tt> or <tt>closed</tt>.
      # @option options [String] :description A meaningful description
      # @option options [Time] :due_on Set if the milestone has a due date
      # @return [Sawyer::Resource] A single milestone object
      # @see https://developer.github.com/v3/issues/milestones/#update-a-milestone
      # @example Update a milestone for a repository
      #   Octokit.update_milestone("octokit/octokit.rb", 1, {:description => 'Add support for v3 of Github API'})
      def update_milestone(repository, number, options = {})
        patch "#{Repository.path repository}/milestones/#{number}", options
      end
      alias edit_milestone update_milestone

      # Delete a single milestone for a repository
      #
      # @param repository [Integer, String, Repository, Hash] A GitHub repository
      # @param options [Hash] A customizable set of options.
      # @option options [Integer] :milestone Milestone number.
      # @return [Boolean] Success
      # @see https://developer.github.com/v3/issues/milestones/#delete-a-milestone
      # @example Delete a single milestone from a repository
      #   Octokit.delete_milestone("octokit/octokit.rb", 1)
      def delete_milestone(repository, number, options = {})
        boolean_from_response :delete, "#{Repository.path repository}/milestones/#{number}", options
      end
    end
  end
end