Sha256: faf28ed698bd05d5e8862f8b391b9daa40b703ced57b9eb00a55232e36047b5e

Contents?: true

Size: 1.22 KB

Versions: 32

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true

require 'json'

module Gitlab
  module QA
    module Report
      module FindSetDri
        def set_dri_via_group(product_group, test)
          parse_json_with_sets
          fetch_stage_sets(test)

          return @sets.sample['username'] if @stage_sets.empty?

          fetch_group_sets(product_group)

          if @group_sets.empty?
            @stage_sets.sample['username']
          else
            @group_sets.sample['username']
          end
        end

        private

        def parse_json_with_sets
          response = Support::HttpRequest.make_http_request(
            url: 'https://gitlab-org.gitlab.io/gitlab-roulette/roulette.json'
          )
          @sets = JSON.parse(response.body).select { |user| user['role'].include?('software-engineer-in-test') }
        end

        def fetch_stage_sets(test)
          @stage_sets = @sets.select { |user| user['role'].include?(test.stage.split("_").map(&:capitalize).join(" ")) }
        end

        def fetch_group_sets(product_group)
          @group_sets = @stage_sets.select { |user| user['role'].include?(product_group.split("_").map { |word| word == 'and' ? word : word.capitalize }.join(" ")) }
        end
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
gitlab-qa-10.3.0.1 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-10.6.0 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-10.5.0 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-10.4.1 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-10.4.0 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-10.3.0 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-10.2.2 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-10.2.1 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-10.2.0 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-10.1.0 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-10.0.0 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-9.1.2 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-9.1.1 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-9.1.0 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-9.0.0 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-8.15.3 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-8.15.2 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-8.15.1 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-8.15.0 lib/gitlab/qa/report/find_set_dri.rb
gitlab-qa-8.14.1 lib/gitlab/qa/report/find_set_dri.rb