Cimpress-MCP/zanzibar

View on GitHub

Showing 16 of 16 total issues

Assignment Branch Condition size for construct_options is too high. [21.77/15]
Open

      def construct_options
        @zanzibar_options[:wsdl] = construct_wsdl
        @zanzibar_options[:globals] = { ssl_verify_mode: :none } if options['ignoressl']
        @zanzibar_options[:domain] = options['domain']
        @zanzibar_options[:username] = options['username'] unless options['username'].nil?
Severity: Minor
Found in lib/zanzibar/actions/get.rb by rubocop

This cop checks that the ABC size of methods is not higher than the configured maximum. The ABC size is based on assignments, branches (method calls), and conditions. See http://c2.com/cgi/wiki?AbcMetric

Assignment Branch Condition size for download_secret_file is too high. [15.26/15]
Open

    def download_secret_file(args = {})
      response = @client.download_file_attachment_by_item_id(args[:scrt_id], args[:scrt_item_id], args[:type])
      raise "There was an error getting the #{args[:type]} for secret #{args[:scrt_id]}: #{response[:errors][:string]}" if response[:errors]
      return write_secret_to_file(args[:path], response)
    rescue Savon::Error => err
Severity: Minor
Found in lib/zanzibar.rb by rubocop

This cop checks that the ABC size of methods is not higher than the configured maximum. The ABC size is based on assignments, branches (method calls), and conditions. See http://c2.com/cgi/wiki?AbcMetric

Method initialize has 5 arguments (exceeds 4 allowed). Consider refactoring.
Open

    def initialize(username, password, domain, wsdl, globals = {})
Severity: Minor
Found in lib/zanzibar/client.rb - About 35 mins to fix

    Method download_one_secret has 5 arguments (exceeds 4 allowed). Consider refactoring.
    Open

          def download_one_secret(scrt_id, label, path, args, name = nil)
    Severity: Minor
    Found in lib/zanzibar/actions/bundle.rb - About 35 mins to fix

      Method construct_options has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
      Open

            def construct_options
              @zanzibar_options[:wsdl] = construct_wsdl
              @zanzibar_options[:globals] = { ssl_verify_mode: :none } if options['ignoressl']
              @zanzibar_options[:domain] = options['domain']
              @zanzibar_options[:username] = options['username'] unless options['username'].nil?
      Severity: Minor
      Found in lib/zanzibar/actions/get.rb - About 35 mins to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Extra empty line detected after the rescue.
      Open

      
              raise "Unknown type, #{type}. #{e}"
      Severity: Minor
      Found in lib/zanzibar/client.rb by rubocop

      This cops checks if empty lines exist around the bodies of begin sections. This cop doesn't check empty lines at begin body beginning/end and around method definition body. Style/EmptyLinesAroundBeginBody or Style/EmptyLinesAroundMethodBody can be used for this purpose.

      Example:

      # good
      
      begin
        do_something
      rescue
        do_something2
      else
        do_something3
      ensure
        do_something4
      end
      
      # good
      
      def foo
        do_something
      rescue
        do_something2
      end
      
      # bad
      
      begin
        do_something
      
      rescue
      
        do_something2
      
      else
      
        do_something3
      
      ensure
      
        do_something4
      end
      
      # bad
      
      def foo
        do_something
      
      rescue
      
        do_something2
      end

      Avoid rescuing without specifying an error class.
      Open

            rescue => e
      Severity: Minor
      Found in lib/zanzibar/client.rb by rubocop

      This cop checks for rescuing StandardError. There are two supported styles implicit and explicit. This cop will not register an offense if any error other than StandardError is specified.

      Example: EnforcedStyle: implicit

      # `implicit` will enforce using `rescue` instead of
      # `rescue StandardError`.
      
      # bad
      begin
        foo
      rescue StandardError
        bar
      end
      
      # good
      begin
        foo
      rescue
        bar
      end
      
      # good
      begin
        foo
      rescue OtherError
        bar
      end
      
      # good
      begin
        foo
      rescue StandardError, SecurityError
        bar
      end

      Example: EnforcedStyle: explicit (default)

      # `explicit` will enforce using `rescue StandardError`
      # instead of `rescue`.
      
      # bad
      begin
        foo
      rescue
        bar
      end
      
      # good
      begin
        foo
      rescue StandardError
        bar
      end
      
      # good
      begin
        foo
      rescue OtherError
        bar
      end
      
      # good
      begin
        foo
      rescue StandardError, SecurityError
        bar
      end

      Method Zanzibar::Actions::Bundle#zanzibar is defined at both lib/zanzibar/actions/bundle.rb:27 and lib/zanzibar/actions/bundle.rb:147.
      Open

            def zanzibar(args)
      Severity: Minor
      Found in lib/zanzibar/actions/bundle.rb by rubocop

      This cop checks for duplicated instance (or singleton) method definitions.

      Example:

      # bad
      
      def duplicated
        1
      end
      
      def duplicated
        2
      end

      Example:

      # bad
      
      def duplicated
        1
      end
      
      alias duplicated other_duplicated

      Example:

      # good
      
      def duplicated
        1
      end
      
      def other_duplicated
        2
      end

      Dependencies should be sorted in an alphabetical order within their section of the gemspec. Dependency codeclimate-test-reporter should appear before webmock.
      Open

        spec.add_development_dependency 'codeclimate-test-reporter'
      Severity: Minor
      Found in zanzibar.gemspec by rubocop

      Dependencies in the gemspec should be alphabetically sorted.

      Example:

      # bad
      spec.add_dependency 'rubocop'
      spec.add_dependency 'rspec'
      
      # good
      spec.add_dependency 'rspec'
      spec.add_dependency 'rubocop'
      
      # good
      spec.add_dependency 'rubocop'
      
      spec.add_dependency 'rspec'
      
      # bad
      spec.add_development_dependency 'rubocop'
      spec.add_development_dependency 'rspec'
      
      # good
      spec.add_development_dependency 'rspec'
      spec.add_development_dependency 'rubocop'
      
      # good
      spec.add_development_dependency 'rubocop'
      
      spec.add_development_dependency 'rspec'
      
      # bad
      spec.add_runtime_dependency 'rubocop'
      spec.add_runtime_dependency 'rspec'
      
      # good
      spec.add_runtime_dependency 'rspec'
      spec.add_runtime_dependency 'rubocop'
      
      # good
      spec.add_runtime_dependency 'rubocop'
      
      spec.add_runtime_dependency 'rspec'
      
      # good only if TreatCommentsAsGroupSeparators is true
      # For code quality
      spec.add_dependency 'rubocop'
      # For tests
      spec.add_dependency 'rspec'

      Add an empty line after magic comments.
      Open

      lib = File.expand_path('../lib', __FILE__)
      Severity: Minor
      Found in zanzibar.gemspec by rubocop

      Checks for a newline after the final magic comment.

      Example:

      # good
      # frozen_string_literal: true
      
      # Some documentation for Person
      class Person
        # Some code
      end
      
      # bad
      # frozen_string_literal: true
      # Some documentation for Person
      class Person
        # Some code
      end

      Dependencies should be sorted in an alphabetical order within their section of the gemspec. Dependency rspec should appear before savon_spec.
      Open

        spec.add_development_dependency 'rspec', '~> 3.1.0'
      Severity: Minor
      Found in zanzibar.gemspec by rubocop

      Dependencies in the gemspec should be alphabetically sorted.

      Example:

      # bad
      spec.add_dependency 'rubocop'
      spec.add_dependency 'rspec'
      
      # good
      spec.add_dependency 'rspec'
      spec.add_dependency 'rubocop'
      
      # good
      spec.add_dependency 'rubocop'
      
      spec.add_dependency 'rspec'
      
      # bad
      spec.add_development_dependency 'rubocop'
      spec.add_development_dependency 'rspec'
      
      # good
      spec.add_development_dependency 'rspec'
      spec.add_development_dependency 'rubocop'
      
      # good
      spec.add_development_dependency 'rubocop'
      
      spec.add_development_dependency 'rspec'
      
      # bad
      spec.add_runtime_dependency 'rubocop'
      spec.add_runtime_dependency 'rspec'
      
      # good
      spec.add_runtime_dependency 'rspec'
      spec.add_runtime_dependency 'rubocop'
      
      # good
      spec.add_runtime_dependency 'rubocop'
      
      spec.add_runtime_dependency 'rspec'
      
      # good only if TreatCommentsAsGroupSeparators is true
      # For code quality
      spec.add_dependency 'rubocop'
      # For tests
      spec.add_dependency 'rspec'

      Use the return of the conditional for variable assignment and comparison.
      Open

              if label == 'Password'
                path = zanzibar(args).get_username_and_password_and_save(scrt_id, path, name)
              else
                path = zanzibar(args).download_secret_file(scrt_id: scrt_id,
                                                           type: label,
      Severity: Minor
      Found in lib/zanzibar/actions/bundle.rb by rubocop

      Dependencies should be sorted in an alphabetical order within their section of the gemspec. Dependency rubyntlm should appear before savon.
      Open

        spec.add_runtime_dependency 'rubyntlm', '~> 0.6.0'
      Severity: Minor
      Found in zanzibar.gemspec by rubocop

      Dependencies in the gemspec should be alphabetically sorted.

      Example:

      # bad
      spec.add_dependency 'rubocop'
      spec.add_dependency 'rspec'
      
      # good
      spec.add_dependency 'rspec'
      spec.add_dependency 'rubocop'
      
      # good
      spec.add_dependency 'rubocop'
      
      spec.add_dependency 'rspec'
      
      # bad
      spec.add_development_dependency 'rubocop'
      spec.add_development_dependency 'rspec'
      
      # good
      spec.add_development_dependency 'rspec'
      spec.add_development_dependency 'rubocop'
      
      # good
      spec.add_development_dependency 'rubocop'
      
      spec.add_development_dependency 'rspec'
      
      # bad
      spec.add_runtime_dependency 'rubocop'
      spec.add_runtime_dependency 'rspec'
      
      # good
      spec.add_runtime_dependency 'rspec'
      spec.add_runtime_dependency 'rubocop'
      
      # good
      spec.add_runtime_dependency 'rubocop'
      
      spec.add_runtime_dependency 'rspec'
      
      # good only if TreatCommentsAsGroupSeparators is true
      # For code quality
      spec.add_dependency 'rubocop'
      # For tests
      spec.add_dependency 'rspec'

      Use the double pipe equals operator ||= instead.
      Open

            token = generate_token unless token
      Severity: Minor
      Found in lib/zanzibar/client.rb by rubocop

      This cop checks for potential usage of the ||= operator.

      Example:

      # bad
      name = name ? name : 'Bozhidar'
      
      # bad
      name = if name
               name
             else
               'Bozhidar'
             end
      
      # bad
      unless name
        name = 'Bozhidar'
      end
      
      # bad
      name = 'Bozhidar' unless name
      
      # good - set name to 'Bozhidar', only if it's nil or false
      name ||= 'Bozhidar'

      Unnecessary utf-8 encoding comment.
      Open

      # coding: utf-8
      Severity: Minor
      Found in zanzibar.gemspec by rubocop

      Use a guard clause instead of wrapping the code inside a conditional expression.
      Open

              if @settings['secret_dir']
      Severity: Minor
      Found in lib/zanzibar/actions/bundle.rb by rubocop

      Use a guard clause instead of wrapping the code inside a conditional expression

      Example:

      # bad
      def test
        if something
          work
        end
      end
      
      # good
      def test
        return unless something
        work
      end
      
      # also good
      def test
        work if something
      end
      
      # bad
      if something
        raise 'exception'
      else
        ok
      end
      
      # good
      raise 'exception' if something
      ok
      Severity
      Category
      Status
      Source
      Language