Sha256: ad56590099520c999e68305785ecc8bcf122b70c6ae807cbaffa29714f315084

Contents?: true

Size: 834 Bytes

Versions: 1

Compression:

Stored size: 834 Bytes

Contents

module Danger
  module AssignStrategies
    class Strategy
      attr_accessor :mr_iid
      attr_accessor :project_id
      attr_accessor :group_name
      attr_accessor :client

      def initialize(client:, project:, mr:, group:)
        @client = client
        @project_id = project
        @mr_iid = mr
        @group_name = group
      end

      def assign!(amount)
        to_be_assigned = assignees(amount)
        response = client.assign_mr_to_users(project_id, mr_iid, to_be_assigned)
        return to_be_assigned.map(&:username)
      end

      def assignees(amount)
        raise "To be implemented in the subclasses"
      end

      def author
        client.fetch_author_for_mr(@project_id, @mr_iid)
      end

      def users_in_group
        client.fetch_users_for_group(group_name)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
danger-gitlab_reviewbot-1.0.0 lib/gitlab_reviewbot/strategies/strategy.rb