release-engineering/ubi-config

View on GitHub

Showing 76 of 76 total issues

Function load_all has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
Open

    def load_all(self):
        ubi_configs = []
        for f in self._files_branch_map:
            for branch_sha1 in self._files_branch_map[f]:
                LOG.debug("Now loading %s from branch %s", f, branch_sha1[0])
Severity: Minor
Found in ubiconfig/_impl/loaders/gitlab.py - About 55 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 load_all has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
Open

    def load_all(self):
        """Load all config file from a local directory and all its subdirectories"""

        ubi_configs = []
        self._isroot = True
Severity: Minor
Found in ubiconfig/_impl/loaders/local.py - About 55 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 _pre_load has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
Open

    def _pre_load(self):
        """Iterate all branches to get a mapping of {file_path: (branch, sha1)...}"""
        files_branch_map = {}

        LOG.debug("Loading config files from all branches")
Severity: Minor
Found in ubiconfig/_impl/loaders/gitlab.py - About 55 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__ has 6 arguments (exceeds 4 allowed). Consider refactoring.
Open

    def __init__(self, cs, pkgs, mds, file_name, version, flags):
Severity: Minor
Found in ubiconfig/config_types/__init__.py - About 45 mins to fix

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

        def load(self, file_name, version=None):
            """Load file from remote repository.
            :param file_name: filename that is on remote repository in any branch
            :param version: name of remote branch
            """
    Severity: Minor
    Found in ubiconfig/_impl/loaders/gitlab.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

    Multiple headers with the same content
    Open

    ### Added
    Severity: Info
    Found in CHANGELOG.md by markdownlint

    MD024 - Multiple headers with the same content

    Tags: headers

    Aliases: no-duplicate-header

    Parameters: allowdifferentnesting (boolean; default false)

    This rule is triggered if there are multiple headers in the document that have the same text:

    # Some text
    
    ## Some text

    To fix this, ensure that the content of each header is different:

    # Some text
    
    ## Some more text

    Rationale: Some markdown parses generate anchors for headers based on the header name, and having headers with the same content can cause problems with this.

    If the parameter allow_different_nesting is set to true, header duplication under different nesting is allowed, like it usually happens in change logs:

    # Change log
    
    ## 2.0.0
    
    ### Bug fixes
    
    ### Features
    
    ## 1.0.0
    
    ### Bug fixes

    Lists should be surrounded by blank lines
    Open

    - Fix LocalLoader couldn't get right version if the argument version of load() is None.
    Severity: Info
    Found in CHANGELOG.md by markdownlint

    MD032 - Lists should be surrounded by blank lines

    Tags: bullet, ul, ol, blank_lines

    Aliases: blanks-around-lists

    This rule is triggered when lists (of any kind) are either not preceded or not followed by a blank line:

    Some text
    * Some
    * List
    
    1. Some
    2. List
    Some text

    To fix this, ensure that all lists have a blank line both before and after (except where the block is at the beginning or end of the document):

    Some text
    
    * Some
    * List
    
    1. Some
    2. List
    
    Some text

    Rationale: Aside from aesthetic reasons, some parsers, including kramdown, will not parse lists that don't have blank lines before and after them.

    Note: List items without hanging indents are a violation of this rule; list items with hanging indents are okay:

    * This is
    not okay
    
    * This is
      okay

    First header should be a top level header
    Open

    #### Summary

    MD002 - First header should be a top level header

    Tags: headers

    Aliases: first-header-h1

    Parameters: level (number; default 1)

    This rule is triggered when the first header in the document isn't a h1 header:

    ## This isn't a H1 header
    
    ### Another header

    The first header in the document should be a h1 header:

    # Start with a H1 header
    
    ## Then use a H2 for subsections

    Line length
    Open

    <!--- Include any relevant information that could help to answer your question, e.g. OS version, logs, etc. -->

    MD013 - Line length

    Tags: line_length

    Aliases: line-length Parameters: linelength, codeblocks, tables (number; default 80, boolean; default true)

    This rule is triggered when there are lines that are longer than the configured line length (default: 80 characters). To fix this, split the line up into multiple lines.

    This rule has an exception where there is no whitespace beyond the configured line length. This allows you to still include items such as long URLs without being forced to break them in the middle.

    You also have the option to exclude this rule for code blocks and tables. To do this, set the code_blocks and/or tables parameters to false.

    Code blocks are included in this rule by default since it is often a requirement for document readability, and tentatively compatible with code rules. Still, some languages do not lend themselves to short lines.

    Line length
    Open

    - Fix remote loader couldn't load all config files with same name from different branches.
    Severity: Info
    Found in CHANGELOG.md by markdownlint

    MD013 - Line length

    Tags: line_length

    Aliases: line-length Parameters: linelength, codeblocks, tables (number; default 80, boolean; default true)

    This rule is triggered when there are lines that are longer than the configured line length (default: 80 characters). To fix this, split the line up into multiple lines.

    This rule has an exception where there is no whitespace beyond the configured line length. This allows you to still include items such as long URLs without being forced to break them in the middle.

    You also have the option to exclude this rule for code blocks and tables. To do this, set the code_blocks and/or tables parameters to false.

    Code blocks are included in this rule by default since it is often a requirement for document readability, and tentatively compatible with code rules. Still, some languages do not lend themselves to short lines.

    Headers should be surrounded by blank lines
    Open

    ### Changed
    Severity: Info
    Found in CHANGELOG.md by markdownlint

    MD022 - Headers should be surrounded by blank lines

    Tags: headers, blank_lines

    Aliases: blanks-around-headers

    This rule is triggered when headers (any style) are either not preceded or not followed by a blank line:

    # Header 1
    Some text
    
    Some more text
    ## Header 2

    To fix this, ensure that all headers have a blank line both before and after (except where the header is at the beginning or end of the document):

    # Header 1
    
    Some text
    
    Some more text
    
    ## Header 2

    Rationale: Aside from aesthetic reasons, some parsers, including kramdown, will not parse headers that don't have a blank line before, and will parse them as regular text.

    Headers should be surrounded by blank lines
    Open

    ### Changed
    Severity: Info
    Found in CHANGELOG.md by markdownlint

    MD022 - Headers should be surrounded by blank lines

    Tags: headers, blank_lines

    Aliases: blanks-around-headers

    This rule is triggered when headers (any style) are either not preceded or not followed by a blank line:

    # Header 1
    Some text
    
    Some more text
    ## Header 2

    To fix this, ensure that all headers have a blank line both before and after (except where the header is at the beginning or end of the document):

    # Header 1
    
    Some text
    
    Some more text
    
    ## Header 2

    Rationale: Aside from aesthetic reasons, some parsers, including kramdown, will not parse headers that don't have a blank line before, and will parse them as regular text.

    Lists should be surrounded by blank lines
    Open

    - Feature Request

    MD032 - Lists should be surrounded by blank lines

    Tags: bullet, ul, ol, blank_lines

    Aliases: blanks-around-lists

    This rule is triggered when lists (of any kind) are either not preceded or not followed by a blank line:

    Some text
    * Some
    * List
    
    1. Some
    2. List
    Some text

    To fix this, ensure that all lists have a blank line both before and after (except where the block is at the beginning or end of the document):

    Some text
    
    * Some
    * List
    
    1. Some
    2. List
    
    Some text

    Rationale: Aside from aesthetic reasons, some parsers, including kramdown, will not parse lists that don't have blank lines before and after them.

    Note: List items without hanging indents are a violation of this rule; list items with hanging indents are okay:

    * This is
    not okay
    
    * This is
      okay

    Multiple headers with the same content
    Open

    ### Added
    Severity: Info
    Found in CHANGELOG.md by markdownlint

    MD024 - Multiple headers with the same content

    Tags: headers

    Aliases: no-duplicate-header

    Parameters: allowdifferentnesting (boolean; default false)

    This rule is triggered if there are multiple headers in the document that have the same text:

    # Some text
    
    ## Some text

    To fix this, ensure that the content of each header is different:

    # Some text
    
    ## Some more text

    Rationale: Some markdown parses generate anchors for headers based on the header name, and having headers with the same content can cause problems with this.

    If the parameter allow_different_nesting is set to true, header duplication under different nesting is allowed, like it usually happens in change logs:

    # Change log
    
    ## 2.0.0
    
    ### Bug fixes
    
    ### Features
    
    ## 1.0.0
    
    ### Bug fixes

    Lists should be surrounded by blank lines
    Open

    - Bug Report

    MD032 - Lists should be surrounded by blank lines

    Tags: bullet, ul, ol, blank_lines

    Aliases: blanks-around-lists

    This rule is triggered when lists (of any kind) are either not preceded or not followed by a blank line:

    Some text
    * Some
    * List
    
    1. Some
    2. List
    Some text

    To fix this, ensure that all lists have a blank line both before and after (except where the block is at the beginning or end of the document):

    Some text
    
    * Some
    * List
    
    1. Some
    2. List
    
    Some text

    Rationale: Aside from aesthetic reasons, some parsers, including kramdown, will not parse lists that don't have blank lines before and after them.

    Note: List items without hanging indents are a violation of this rule; list items with hanging indents are okay:

    * This is
    not okay
    
    * This is
      okay

    Multiple headers with the same content
    Open

    ### Fixed
    Severity: Info
    Found in CHANGELOG.md by markdownlint

    MD024 - Multiple headers with the same content

    Tags: headers

    Aliases: no-duplicate-header

    Parameters: allowdifferentnesting (boolean; default false)

    This rule is triggered if there are multiple headers in the document that have the same text:

    # Some text
    
    ## Some text

    To fix this, ensure that the content of each header is different:

    # Some text
    
    ## Some more text

    Rationale: Some markdown parses generate anchors for headers based on the header name, and having headers with the same content can cause problems with this.

    If the parameter allow_different_nesting is set to true, header duplication under different nesting is allowed, like it usually happens in change logs:

    # Change log
    
    ## 2.0.0
    
    ### Bug fixes
    
    ### Features
    
    ## 1.0.0
    
    ### Bug fixes

    Lists should be surrounded by blank lines
    Open

    - Question / Support

    MD032 - Lists should be surrounded by blank lines

    Tags: bullet, ul, ol, blank_lines

    Aliases: blanks-around-lists

    This rule is triggered when lists (of any kind) are either not preceded or not followed by a blank line:

    Some text
    * Some
    * List
    
    1. Some
    2. List
    Some text

    To fix this, ensure that all lists have a blank line both before and after (except where the block is at the beginning or end of the document):

    Some text
    
    * Some
    * List
    
    1. Some
    2. List
    
    Some text

    Rationale: Aside from aesthetic reasons, some parsers, including kramdown, will not parse lists that don't have blank lines before and after them.

    Note: List items without hanging indents are a violation of this rule; list items with hanging indents are okay:

    * This is
    not okay
    
    * This is
      okay

    Line length
    Open

    <!--- Include any relevant information that does not fit in other items, e.g. logs, code samples, etc. -->

    MD013 - Line length

    Tags: line_length

    Aliases: line-length Parameters: linelength, codeblocks, tables (number; default 80, boolean; default true)

    This rule is triggered when there are lines that are longer than the configured line length (default: 80 characters). To fix this, split the line up into multiple lines.

    This rule has an exception where there is no whitespace beyond the configured line length. This allows you to still include items such as long URLs without being forced to break them in the middle.

    You also have the option to exclude this rule for code blocks and tables. To do this, set the code_blocks and/or tables parameters to false.

    Code blocks are included in this rule by default since it is often a requirement for document readability, and tentatively compatible with code rules. Still, some languages do not lend themselves to short lines.

    First header should be a top level header
    Open

    #### Summary

    MD002 - First header should be a top level header

    Tags: headers

    Aliases: first-header-h1

    Parameters: level (number; default 1)

    This rule is triggered when the first header in the document isn't a h1 header:

    ## This isn't a H1 header
    
    ### Another header

    The first header in the document should be a h1 header:

    # Start with a H1 header
    
    ## Then use a H2 for subsections

    Multiple consecutive blank lines
    Open

    
    

    MD012 - Multiple consecutive blank lines

    Tags: whitespace, blank_lines

    Aliases: no-multiple-blanks

    This rule is triggered when there are multiple consecutive blank lines in the document:

    Some text here
    
    
    Some more text here

    To fix this, delete the offending lines:

    Some text here
    
    Some more text here

    Note: this rule will not be triggered if there are multiple consecutive blank lines inside code blocks.

    Severity
    Category
    Status
    Source
    Language