superlint/docs/disabling-linters.md
Gabo e15a4dc174 Add check spelling workflow
test bucket variable

Add empty expect words

add procjet varaible

Add excludes file

add patters for urls

Add newline at eof

Changing lorem ipsum for proper words

Add admiralawkbar to expected words

Exclude lint templates files

Add api apk and ansible as expected words

add expected words for cleanup-docker.sh

add expected words for ghe-config-apply.sh

Fix add-ons spelling

Add a bunch new words

Simpler url pattern

Use common baz word

Fix coffeescript spelling

Add expected words for ghe-api-config-apply.yml

Add ecpected words for linter.sh

Fix Multi-line spelling

Add more linter.sh expected words

Add a whole lot of expected words

Add pattern for repeated single char

Add space

Add expected words for Dockerfile

Add more expected words for ghe-api-config-apply.yml

Add expected words for he-initial-configuration.yml

Add expected words for ghe-ldap-configuration.yml

Move spelling/expect -> spelling/allow

Set workflow name

Fix @admiralawkbar capitalization

Fix requirements spelling

Add last docker allow words

Add last ghe-config-apply allow words

Add last linter.sh allow words

add last general allow words

Add .gitignore allow words

Add main.yml allow words

Add settings.json.j2 allow words

Add empty expect words

Test gitignore.txt

Fix patter for repeated chars

Add some more allowed words

more words

Add disabling-linters.md allow words

commit
2020-06-23 16:42:22 -05:00

15 KiB

Disabling linters and Rules

If you find you need to ignore certain errors and warnings, you will need to know the format to disable the Super-Linter rules.
Below is examples and documentation for each language and the various methods to disable.

Table of Linters


Ruby

RuboCop Config file

  • .github/linters/.ruby-lint.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.ruby-lint.yml
  • Note: We use the Default GitHub Rule set from RuboCop-GitHub

RuboCop disable single line

method(argument) # rubocop:disable SomeRule, SomeOtherRule

RuboCop disable code block

# rubocop:disable
This is a long line
var="this is some other stuff"
# rubocop:enable

RuboCop disable entire file

If you need to ignore an entire file, you can update the .github/linters/.ruby-lint.yml to ignore certain files and locations

inherit_from:
  - .rubocop_todo.yml
  - .rubocop_app_overrides.yml

inherit_mode:
  merge:
    - Exclude

Rails:
  Enabled: true

AllCops:
  TargetRubyVersion: 2.5.1
  EnabledByDefault: true
  Exclude:
    - 'db/**/*'
    - 'config/**/*'
    - 'script/**/*'
    - 'bin/{rails,rake}'
    - !ruby/regexp /old_and_unused\.rb$/

Shell

Shellcheck Config file

  • There is no top level configuration file available at this time

Shellcheck disable single line

echo "Terrible stuff" # shellcheck disable=SC2059,SC2086

Shellcheck disable code block

# shellcheck disable=SC2059,SC2086
echo "some hot garbage"
echo "More garbage code"

Shellcheck disable entire file

  • Note: The disable must be on the second line of the code right after the shebang
#!/bin/sh
# shellcheck disable=SC2059,SC1084

echo "stuff"
moreThings()

Ansible

Ansible-lint Config file

  • .github/linters/.ansible-lint.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.ansible-lint.yml

Ansible-lint disable single line

- name: this would typically fire GitHasVersionRule 401 and BecomeUserWithoutBecomeRule 501
  become_user: alice  # noqa 401 501
  git: src=/path/to/git/repo dest=checkout

Ansible-lint disable code block

- name: this would typically fire GitHasVersionRule 401
  git: src=/path/to/git/repo dest=checkout
  tags:
  - skip_ansible_lint

Ansible-lint disable entire file

- name: this would typically fire GitHasVersionRule 401
  git: src=/path/to/git/repo dest=checkout
  tags:
  - skip_ansible_lint

YAML

Yamllint Config file

  • .github/linters/.yaml-lint.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.yaml-lint.yml

Yamllint disable single line

This line is waaaaaaaaaay too long  # yamllint disable-line

Yamllint disable code block

# yamllint disable rule:colons
- Key         : value
  dolor       : sit,
  foo         : bar
# yamllint enable

Yamllint disable entire file

If you need to ignore an entire file, you can update the .github/linters/.yaml-lint.yml to ignore certain files and locations

# For all rules
ignore: |
  *.dont-lint-me.yaml
  /bin/
  !/bin/*.lint-me-anyway.yaml  

rules:
  key-duplicates:
    ignore: |
      generated
      *.template.yaml      
  trailing-spaces:
    ignore: |
      *.ignore-trailing-spaces.yaml
      /ascii-art/*      

Python3

Pylint Config file

  • .github/linters/.python-lint
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.python-lint

Pylint disable single line

global VAR # pylint: disable=global-statement

Pylint disable code block

"""pylint option block-disable"""

__revision__ = None

class Foo(object):
    """block-disable test"""

    def __init__(self):
        pass

    def meth1(self, arg):
        """this issues a message"""
        print(self)

    def meth2(self, arg):
        """and this one not"""
        # pylint: disable=unused-argument
        print(self\
              + "foo")

    def meth3(self):
        """test one line disabling"""
        # no error
        print(self.baz) # pylint: disable=no-member
        # error
        print(self.baz)

Pylint disable entire file

#!/bin/python3
# pylint: skip-file

var = "terrible code down here..."

JSON

JsonLint Config file

  • There is no top level configuration file available at this time

JsonLint disable single line

  • There is currently No way to disable rules inline of the file(s)

JsonLint disable code block

  • There is currently No way to disable rules inline of the file(s)

JsonLint disable entire file

  • There is currently No way to disable rules inline of the file(s)

Markdown

markdownlint Config file

  • .github/linters/.markdown-lint.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.markdownlint.yml

markdownlint disable single line

## Here is some document
Here is some random data
<!-- markdownlint-disable -->
any violation you want
<!-- markdownlint-restore -->
Here is more data

markdownlint disable code block

## Here is some document
Here is some random data
<!-- markdownlint-disable -->
any violations you want
<!-- markdownlint-restore -->
Here is more data

markdownlint disable entire file

  • You can encapsulate the entire file with the code block format to disable an entire file from being parsed

Perl

Perl Config file

  • There is no top level configuration file available at this time

Perl disable single line

  • There is currently No way to disable rules inline of the file(s)

Perl disable code block

  • There is currently No way to disable rules inline of the file(s)

Perl disable entire file

  • There is currently No way to disable rules inline of the file(s)

XML

LibXML Config file

  • There is no top level configuration file available at this time

LibXML disable single line

  • There is currently No way to disable rules inline of the file(s)

LibXML disable code block

  • There is currently No way to disable rules inline of the file(s)

LibXML disable entire file

  • There is currently No way to disable rules inline of the file(s)

Coffeescript

coffeelint Config file

  • .github/linters/.coffee-lint.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.coffee.yml

coffeelint disable single line

# coffeelint: disable=max_line_length
foo = "some/huge/line/string/with/embed/#{values}.that/surpasses/the/max/column/width"
# coffeelint: enable=max_line_length

coffeelint disable code block

# coffeelint: disable
foo = "some/huge/line/string/with/embed/#{values}.that/surpasses/the/max/column/width"
bar = "some/huge/line/string/with/embed/#{values}.that/surpasses/the/max/column/width"
baz = "some/huge/line/string/with/embed/#{values}.that/surpasses/the/max/column/width"
taz = "some/huge/line/string/with/embed/#{values}.that/surpasses/the/max/column/width"
# coffeelint: enable

coffeelint disable entire file

  • You can encapsulate the entire file with the code block format to disable an entire file from being parsed

Javascript eslint

Javascript eslint Config file

  • .github/linters/.eslintrc.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.eslintrc.yml

Javascript eslint disable single line

var thing = new Thing(); // eslint-disable-line no-use-before-define
thing.sayHello();

function Thing() {

     this.sayHello = function() { console.log("hello"); };

}

Javascript eslint disable code block

/*eslint-disable */

//suppress all warnings between comments
alert('foo')

/*eslint-enable */

Javascript eslint disable entire file

  • Place at the top of the file:
/* eslint-disable */

Javascript standard

Javascript standard Config file

  • There is no top level configuration file available at this time

Javascript standard disable single line

  • There is currently No way to disable rules inline of the file(s)

Javascript standard disable code block

  • There is currently No way to disable rules inline of the file(s)

Javascript standard disable entire file

  • There is currently No way to disable rules inline of the file(s)

Typescript eslint

Typescript eslint Config file

  • .github/linters/.eslintrc.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.eslintrc.yml

Typescript eslint disable single line

var thing = new Thing(); // eslint-disable-line no-use-before-define
thing.sayHello();

function Thing() {

     this.sayHello = function() { console.log("hello"); };

}

Typescript eslint disable code block

/*eslint-disable */

//suppress all warnings between comments
alert('foo')

/*eslint-enable */

Typescript eslint disable entire file

/* eslint-disable */

Typescript standard

Typescript standard Config file

  • There is no top level configuration file available at this time

Typescript standard disable single line

  • There is currently No way to disable rules inline of the file(s)

Typescript standard disable code block

  • There is currently No way to disable rules inline of the file(s)

Typescript standard disable entire file

  • There is currently No way to disable rules inline of the file(s)

Golang

golangci-lint standard Config file

  • .github/linters/.golangci.yml
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.golangci.yml

golangci-lint disable single line

  • There is currently No way to disable rules inline of the file(s)

golangci-lint disable code block

  • There is currently No way to disable rules inline of the file(s)

golangci-lint disable entire file

  • There is currently No way to disable rules inline of the file(s)

Dockerfile

Dockerfilelint standard Config file

  • .github/linters/.dockerfilelintrc
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.dockerfilelintrc

Dockerfilelint disable single line

  • There is currently No way to disable rules inline of the file(s)

Dockerfilelint disable code block

  • There is currently No way to disable rules inline of the file(s)

Dockerfilelint disable entire file

  • There is currently No way to disable rules inline of the file(s)

Terraform

tflint standard Config file

  • .github/linters/.tflint.hcl
  • You can pass multiple rules and overwrite default rules
  • File should be located at: .github/linters/.tflint.hcl

tflint disable single line

  • There is currently No way to disable rules inline of the file(s)

tflint disable code block

  • There is currently No way to disable rules inline of the file(s)

tflint disable entire file

  • There is currently No way to disable rules inline of the file(s)

CSS

stylelint standard Config file

  • .github/linters/.stylelintrc.json

stylelint disable single line

#id {
  /* stylelint-disable-next-line declaration-no-important */
  color: pink !important;
}

stylelint disable code block

/* stylelint-disable */
a {}
/* stylelint-enable */

stylelint disable entire file

  • You can disable entire files with the ignoreFiles property in .stylelintrc.json
{
  "ignoreFiles": [
    "styles/ignored/wildcards/*.css",
    "styles/ignored/specific-file.css"
   ]
}

ENV

dotenv-linter Config file

  • There is no top level configuration file available at this time

dotenv-linter disable single line

# Comment line will be ignored

dotenv-linter disable code block

  • There is currently No way to disable rules inline of the file(s)

dotenv-linter disable entire file

  • There is currently No way to disable rules inline of the file(s)