18F/domain-scan

View on GitHub

Showing 57 of 65 total issues

Function init_domain has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
Open

def init_domain(domain, environment, options):
    cache_dir = options.get("_", {}).get("cache_dir", "./cache")
    # If we have data from pshtt, skip if it's not a live domain.
    if utils.domain_not_live(domain):
        logging.debug("\tSkipping, domain not reachable during inspection.")
Severity: Minor
Found in scanners/uswds.py - About 45 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

Avoid deeply nested control flow statements.
Open

                            if prefix.endswith('measurementType.ifOther') or prefix.endswith('measurementtype.ifOther'):
                                results[page]['codegov_measurementtype'] = ' '.join([value, results[page]['codegov_measurementtype']])

Severity: Major
Found in scanners/pagedata.py - About 45 mins to fix

    Function scan has 6 arguments (exceeds 4 allowed). Consider refactoring.
    Open

    var scan = async function (domain, environment, options, getBrowser, scanner, callback) {
    Severity: Minor
    Found in scanners/headless/base.js - About 45 mins to fix

      Avoid deeply nested control flow statements.
      Open

                                  if prefix.endswith('.measurementType') or prefix.endswith('.measurementtype'):
                                      results[page]['codegov_measurementtype'] = ' '.join([value, results[page]['codegov_measurementtype']])
                                  if prefix.endswith('measurementType.method') or prefix.endswith('measurementtype.method'):
      Severity: Major
      Found in scanners/pagedata.py - About 45 mins to fix

        Avoid deeply nested control flow statements.
        Open

                                    if prefix.endswith('measurementType.method') or prefix.endswith('measurementtype.method'):
                                        results[page]['codegov_measurementtype'] = ' '.join([value, results[page]['codegov_measurementtype']])
                                    if prefix.endswith('measurementType.ifOther') or prefix.endswith('measurementtype.ifOther'):
        Severity: Major
        Found in scanners/pagedata.py - About 45 mins to fix

          Consider simplifying this complex logical expression.
          Open

              if sslv2 and sslv3 and tlsv1 and tlsv1_1 and tlsv1_2 and tlsv1_3:
                  analyze_protocols_and_ciphers(data, sslv2, sslv3, tlsv1, tlsv1_1, tlsv1_2, tlsv1_3)
          
          
          Severity: Major
          Found in scanners/sslyze.py - About 40 mins to fix

            Function init_sslyze has 5 arguments (exceeds 4 allowed). Consider refactoring.
            Open

            def init_sslyze(hostname, port, starttls_smtp, options, sync=False):
            Severity: Minor
            Found in scanners/sslyze.py - About 35 mins to fix

              Function gather has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
              Open

                  def gather(self):
                      # Defaults to --url, but can be overridden.
                      name = self.extra.get("name", "url")
                      url = self.options.get(name)
              
              
              Severity: Minor
              Found in gatherers/url.py - 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

              Function callback has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
              Open

                var callback = function(err, data) {
                  console.log("Done:\n");
              
                  if (err) {
                    console.log("Error:")
              Severity: Minor
              Found in lambda/headless/lambda_handler.js - 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

              Function configure_logging has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
              Open

              def configure_logging(options=None):
                  options = {} if not options else options
                  if options.get('debug', False):
                      log_level = "debug"
                  else:
              Severity: Minor
              Found in utils/utils.py - 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

              Avoid too many return statements within this function.
              Open

                              return False
              Severity: Major
              Found in scanners/a11y.py - About 30 mins to fix

                Avoid too many return statements within this function.
                Open

                    return True
                Severity: Major
                Found in scanners/a11y.py - About 30 mins to fix

                  Function data_for has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                  Open

                  def data_for(domain, operation, cache_dir="./cache"):
                      path = cache_path(domain, operation, cache_dir=cache_dir)
                      if os.path.exists(path):
                          raw = read(path)
                          data = json.loads(raw)
                  Severity: Minor
                  Found in utils/utils.py - About 25 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

                  Function _get_action_from_name has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                  Open

                      def _get_action_from_name(self, name):
                          """Given a name, get the Action instance registered with this parser.
                          If only it were made available in the ArgumentError object. It is
                          passed as its first arg...
                          """
                  Severity: Minor
                  Found in utils/scan_utils.py - About 25 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

                  Function _get_action_from_name has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                  Open

                      def _get_action_from_name(self, name):
                          """Given a name, get the Action instance registered with this parser.
                          If only it were made available in the ArgumentError object. It is
                          passed as its first arg...
                          """
                  Severity: Minor
                  Found in utils/utils.py - About 25 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

                  Function data_for has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                  Open

                  def data_for(domain, operation, cache_dir="./cache"):
                      path = cache_path(domain, operation, cache_dir=cache_dir)
                      if os.path.exists(path):
                          raw = read(path)
                          data = json.loads(raw)
                  Severity: Minor
                  Found in utils/scan_utils.py - About 25 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

                  Function init_sslyze has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                  Open

                  def init_sslyze(hostname, port, starttls_smtp, options, sync=False):
                      global network_timeout, CA_FILE
                  
                      network_timeout = int(options.get("network_timeout", network_timeout))
                      if options.get('ca_file'):
                  Severity: Minor
                  Found in scanners/sslyze.py - About 25 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

                  Severity
                  Category
                  Status
                  Source
                  Language