gitlab-triage 1.14.1 → 1.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitlab/merge_request_templates/Release.md +1 -1
- data/lib/gitlab/triage/api_query_builders/base_query_param_builder.rb +11 -2
- data/lib/gitlab/triage/api_query_builders/multi_query_param_builder.rb +10 -2
- data/lib/gitlab/triage/engine.rb +11 -1
- data/lib/gitlab/triage/validators/params_validator.rb +1 -1
- data/lib/gitlab/triage/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c40a53d7edad2e8472cb3a7a503af2d45d31dfb4b7192e12b170016cd47b0b23
         | 
| 4 | 
            +
              data.tar.gz: 35c4cfc534faee10e6d1d02b6108d3300ad4cee20883e6e1299d97c5315a0cde
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 27424e4cab78096d186c11b9508340b50f70b04fdf9ee942bc1063dd3e4a0b14e4f10ebe7651947f3e32bd891cff98eb33db2315cd021aaef86e1f38e3dc9552
         | 
| 7 | 
            +
              data.tar.gz: 3c4e60ac07b46c9c755d8b85c39fed6addc39370b268885090e7cf822456877e1f3bf241adf7288c5f5df6cda802284ca05cfa8c91d79d92dc04086c36d8a182
         | 
| @@ -32,4 +32,4 @@ with the latest commit from https://gitlab.com/gitlab-org/gitlab-triage/commits/ | |
| 32 32 | 
             
            - Checklist after merging:
         | 
| 33 33 | 
             
              - [ ] [Update the release notes for the newly created tag](docs/release_process.md#how-to).
         | 
| 34 34 |  | 
| 35 | 
            -
            /label ~"Engineering Productivity" ~"ep::triage" ~"tooling::workflow"
         | 
| 35 | 
            +
            /label ~"Engineering Productivity" ~"ep::triage" ~tooling ~"tooling::workflow"
         | 
| @@ -2,16 +2,25 @@ module Gitlab | |
| 2 2 | 
             
              module Triage
         | 
| 3 3 | 
             
                module APIQueryBuilders
         | 
| 4 4 | 
             
                  class BaseQueryParamBuilder
         | 
| 5 | 
            -
                    attr_reader :param_name, :param_contents
         | 
| 5 | 
            +
                    attr_reader :param_name, :param_contents, :allowed_values
         | 
| 6 6 |  | 
| 7 | 
            -
                    def initialize(param_name, param_contents)
         | 
| 7 | 
            +
                    def initialize(param_name, param_contents, allowed_values: nil)
         | 
| 8 8 | 
             
                      @param_name = param_name
         | 
| 9 9 | 
             
                      @param_contents = param_contents
         | 
| 10 | 
            +
                      @allowed_values = allowed_values
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                      validate_allowed_values! if allowed_values
         | 
| 10 13 | 
             
                    end
         | 
| 11 14 |  | 
| 12 15 | 
             
                    def build_param
         | 
| 13 16 | 
             
                      "&#{param_name}=#{param_content.strip}"
         | 
| 14 17 | 
             
                    end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                    private
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                    def validate_allowed_values!
         | 
| 22 | 
            +
                      ParamsValidator.new([{ name: param_name, type: String, values: allowed_values }], { param_name => param_contents }).validate!
         | 
| 23 | 
            +
                    end
         | 
| 15 24 | 
             
                  end
         | 
| 16 25 | 
             
                end
         | 
| 17 26 | 
             
              end
         | 
| @@ -6,14 +6,22 @@ module Gitlab | |
| 6 6 | 
             
                  class MultiQueryParamBuilder < BaseQueryParamBuilder
         | 
| 7 7 | 
             
                    attr_reader :separator
         | 
| 8 8 |  | 
| 9 | 
            -
                    def initialize(param_name, param_contents, separator)
         | 
| 9 | 
            +
                    def initialize(param_name, param_contents, separator, allowed_values: nil)
         | 
| 10 10 | 
             
                      @separator = separator
         | 
| 11 | 
            -
                      super(param_name, param_contents)
         | 
| 11 | 
            +
                      super(param_name, Array(param_contents), allowed_values: allowed_values)
         | 
| 12 12 | 
             
                    end
         | 
| 13 13 |  | 
| 14 14 | 
             
                    def param_content
         | 
| 15 15 | 
             
                      param_contents.map(&:strip).join(separator)
         | 
| 16 16 | 
             
                    end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                    private
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                    def validate_allowed_values!
         | 
| 21 | 
            +
                      param_contents.each do |param|
         | 
| 22 | 
            +
                        ParamsValidator.new([{ name: param_name, type: String, values: allowed_values }], { param_name => param }).validate!
         | 
| 23 | 
            +
                      end
         | 
| 24 | 
            +
                    end
         | 
| 17 25 | 
             
                  end
         | 
| 18 26 | 
             
                end
         | 
| 19 27 | 
             
              end
         | 
    
        data/lib/gitlab/triage/engine.rb
    CHANGED
    
    | @@ -33,6 +33,10 @@ module Gitlab | |
| 33 33 |  | 
| 34 34 | 
             
                  DEFAULT_NETWORK_ADAPTER = Gitlab::Triage::NetworkAdapters::HttpartyAdapter
         | 
| 35 35 | 
             
                  DEFAULT_GRAPHQL_ADAPTER = Gitlab::Triage::NetworkAdapters::GraphqlAdapter
         | 
| 36 | 
            +
                  ALLOWED_STATE_VALUES = {
         | 
| 37 | 
            +
                    issues: %w[opened closed],
         | 
| 38 | 
            +
                    merge_requests: %w[opened closed merged]
         | 
| 39 | 
            +
                  }.with_indifferent_access.freeze
         | 
| 36 40 |  | 
| 37 41 | 
             
                  def initialize(policies:, options:, network_adapter_class: DEFAULT_NETWORK_ADAPTER, graphql_network_adapter_class: DEFAULT_GRAPHQL_ADAPTER)
         | 
| 38 42 | 
             
                    options.host_url = policies.delete(:host_url) { options.host_url }
         | 
| @@ -276,7 +280,13 @@ module Gitlab | |
| 276 280 | 
             
                      condition_builders << APIQueryBuilders::MultiQueryParamBuilder.new('not[labels]', conditions[:forbidden_labels], ',')
         | 
| 277 281 | 
             
                    end
         | 
| 278 282 |  | 
| 279 | 
            -
                     | 
| 283 | 
            +
                    if conditions[:state]
         | 
| 284 | 
            +
                      condition_builders << APIQueryBuilders::SingleQueryParamBuilder.new(
         | 
| 285 | 
            +
                        'state',
         | 
| 286 | 
            +
                        conditions[:state],
         | 
| 287 | 
            +
                        allowed_values: ALLOWED_STATE_VALUES[resource_type])
         | 
| 288 | 
            +
                    end
         | 
| 289 | 
            +
             | 
| 280 290 | 
             
                    condition_builders << APIQueryBuilders::SingleQueryParamBuilder.new('milestone', Array(conditions[:milestone])[0]) if conditions[:milestone]
         | 
| 281 291 | 
             
                    condition_builders << APIQueryBuilders::SingleQueryParamBuilder.new('source_branch', conditions[:source_branch]) if conditions[:source_branch]
         | 
| 282 292 | 
             
                    condition_builders << APIQueryBuilders::SingleQueryParamBuilder.new('target_branch', conditions[:target_branch]) if conditions[:target_branch]
         | 
| @@ -34,7 +34,7 @@ module Gitlab | |
| 34 34 | 
             
                  def validate_parameter_content(value)
         | 
| 35 35 | 
             
                    @parameter_definitions.each do |param|
         | 
| 36 36 | 
             
                      if param[:values]
         | 
| 37 | 
            -
                        raise InvalidParameter, "#{param[:name]} must be  | 
| 37 | 
            +
                        raise InvalidParameter, "#{param[:name]} must be one of #{param[:values].join(',')}" unless param[:values].include?(value[param[:name]])
         | 
| 38 38 | 
             
                      end
         | 
| 39 39 | 
             
                    end
         | 
| 40 40 | 
             
                  end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: gitlab-triage
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.14. | 
| 4 | 
            +
              version: 1.14.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - GitLab
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020-10- | 
| 11 | 
            +
            date: 2020-10-29 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         |