Sha256: fb72da00c6144bd7cc313a285baf982037c39b76e1b15e1da29303e3744f8680

Contents?: true

Size: 979 Bytes

Versions: 34

Compression:

Stored size: 979 Bytes

Contents

# frozen_string_literal: true

module Geet
  module Gitlab
    class Issue
      attr_reader :number, :title, :link

      def initialize(number, title, link)
        @number = number
        @title = title
        @link = link
      end

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

        request_params = {}
        request_params[:assignee_id] = assignee.id if assignee
        request_params[:milestone] = milestone.title if milestone

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

        response.map do |issue_data, result|
          number = issue_data.fetch('iid')
          title = issue_data.fetch('title')
          link = issue_data.fetch('web_url')

          new(number, title, link)
        end
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

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