Sha256: 7063bba0ae6090602c183c4ac08f1cc1c3230399f8c665cbbc2e5cdfecf74952

Contents?: true

Size: 1.07 KB

Versions: 24

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

require 'date'

module Geet
  module Gitlab
    class Milestone
      attr_reader :number, :title, :due_on

      def initialize(number, title, due_on, api_interface)
        @number = number
        @title = title
        @due_on = due_on

        @api_interface = api_interface
      end

      # See https://docs.gitlab.com/ee/api/milestones.html#list-project-milestones
      #
      def self.list(api_interface, **)
        api_path = "projects/#{api_interface.path_with_namespace(encoded: true)}/milestones"

        response = api_interface.send_request(api_path, multipage: true)

        response.map do |milestone_data|
          number = milestone_data.fetch('iid')
          title = milestone_data.fetch('title')
          due_on = parse_due_date(milestone_data.fetch('due_date'))

          new(number, title, due_on, api_interface)
        end
      end

      class << self
        private

        def parse_due_date(raw_due_date)
          Date.parse(raw_due_date) if raw_due_date
        end
      end
    end # Milestone
  end # Gitlab
end # Geet

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
geet-0.22.0 lib/geet/gitlab/milestone.rb
geet-0.21.0 lib/geet/gitlab/milestone.rb
geet-0.19.0 lib/geet/gitlab/milestone.rb
geet-0.18.0 lib/geet/gitlab/milestone.rb
geet-0.17.0 lib/geet/gitlab/milestone.rb
geet-0.16.0 lib/geet/gitlab/milestone.rb
geet-0.15.0 lib/geet/gitlab/milestone.rb
geet-0.14.0 lib/geet/gitlab/milestone.rb
geet-0.13.0 lib/geet/gitlab/milestone.rb
geet-0.12.0 lib/geet/gitlab/milestone.rb
geet-0.11.0 lib/geet/gitlab/milestone.rb
geet-0.10.0 lib/geet/gitlab/milestone.rb
geet-0.9.0 lib/geet/gitlab/milestone.rb
geet-0.8.0 lib/geet/gitlab/milestone.rb
geet-0.7.0 lib/geet/gitlab/milestone.rb
geet-0.6.0 lib/geet/gitlab/milestone.rb
geet-0.5.0 lib/geet/gitlab/milestone.rb
geet-0.4.4 lib/geet/gitlab/milestone.rb
geet-0.4.3 lib/geet/gitlab/milestone.rb
geet-0.4.2 lib/geet/gitlab/milestone.rb