mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-26 08:01:03 -05:00
e15a4dc174
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
566 lines
15 KiB
Markdown
566 lines
15 KiB
Markdown
# 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](#ruby)
|
|
- [Shell](#shell)
|
|
- [Ansible](#ansible)
|
|
- [YAML](#yaml)
|
|
- [Python](#python3)
|
|
- [JSON](#json)
|
|
- [Markdown](#markdown)
|
|
- [Perl](#perl)
|
|
- [XML](#xml)
|
|
- [Coffeescript](#coffeescript)
|
|
- [Javascript Eslint](#javascript-eslint)
|
|
- [Javascript Standard](#javascript-standard)
|
|
- [Typescript Eslint](#typescript-eslint)
|
|
- [Typescript Standard](#typescript-standard)
|
|
- [Golang](#golang)
|
|
- [Dockerfile](#dockerfile)
|
|
- [Terraform](#terraform)
|
|
- [CSS](#stylelint)
|
|
- [ENV](#dotenv-linter)
|
|
|
|
<!-- toc -->
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
## Ruby
|
|
- [RuboCop](https://github.com/rubocop-hq/rubocop)
|
|
|
|
### 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](https://github.com/github/rubocop-github)
|
|
|
|
### RuboCop disable single line
|
|
```ruby
|
|
method(argument) # rubocop:disable SomeRule, SomeOtherRule
|
|
```
|
|
|
|
### RuboCop disable code block
|
|
```ruby
|
|
# 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
|
|
|
|
```yml
|
|
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](https://github.com/koalaman/shellcheck)
|
|
|
|
### Shellcheck Config file
|
|
- There is no top level *configuration file* available at this time
|
|
|
|
### Shellcheck disable single line
|
|
```bash
|
|
echo "Terrible stuff" # shellcheck disable=SC2059,SC2086
|
|
```
|
|
|
|
### Shellcheck disable code block
|
|
```bash
|
|
# 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
|
|
```bash
|
|
#!/bin/sh
|
|
# shellcheck disable=SC2059,SC1084
|
|
|
|
echo "stuff"
|
|
moreThings()
|
|
```
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
## Ansible
|
|
- [ansible-lint](https://github.com/ansible/ansible-lint)
|
|
|
|
### 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
|
|
```yml
|
|
- 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
|
|
```yml
|
|
- name: this would typically fire GitHasVersionRule 401
|
|
git: src=/path/to/git/repo dest=checkout
|
|
tags:
|
|
- skip_ansible_lint
|
|
```
|
|
|
|
### Ansible-lint disable entire file
|
|
```yml
|
|
- name: this would typically fire GitHasVersionRule 401
|
|
git: src=/path/to/git/repo dest=checkout
|
|
tags:
|
|
- skip_ansible_lint
|
|
```
|
|
--------------------------------------------------------------------------------
|
|
|
|
## YAML
|
|
- [YamlLint](https://github.com/adrienverge/yamllint)
|
|
|
|
### 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
|
|
```yml
|
|
This line is waaaaaaaaaay too long # yamllint disable-line
|
|
```
|
|
|
|
### Yamllint disable code block
|
|
```yml
|
|
# 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
|
|
```yml
|
|
# 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](https://www.pylint.org/)
|
|
|
|
### 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
|
|
```python
|
|
global VAR # pylint: disable=global-statement
|
|
```
|
|
|
|
### Pylint disable code block
|
|
```python
|
|
"""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
|
|
```python
|
|
#!/bin/python3
|
|
# pylint: skip-file
|
|
|
|
var = "terrible code down here..."
|
|
```
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
## JSON
|
|
- [jsonlint](https://github.com/zaach/jsonlint)
|
|
|
|
### 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-cli](https://github.com/igorshubovych/markdownlint-cli#readme)
|
|
- [markdownlint rule documentation](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md)
|
|
- [markdownlint inline comment syntax](https://github.com/DavidAnson/markdownlint#configuration)
|
|
|
|
### 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
|
|
```markdown
|
|
## 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
|
|
```markdown
|
|
## 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](https://pkgs.alpinelinux.org/package/edge/main/x86/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
|
|
- [XML](http://xmlsoft.org/)
|
|
|
|
### 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](https://coffeelint.github.io/)
|
|
|
|
### 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
|
|
```Coffeescript
|
|
# 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
|
|
```Coffeescript
|
|
# 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
|
|
- [eslint](https://eslint.org/)
|
|
|
|
### 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
|
|
```javascript
|
|
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
|
|
```javascript
|
|
/*eslint-disable */
|
|
|
|
//suppress all warnings between comments
|
|
alert('foo')
|
|
|
|
/*eslint-enable */
|
|
```
|
|
### Javascript eslint disable entire file
|
|
- Place at the top of the file:
|
|
```javascript
|
|
/* eslint-disable */
|
|
```
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
## Javascript standard
|
|
- [standard js](https://standardjs.com/)
|
|
|
|
### 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
|
|
- [eslint](https://eslint.org/)
|
|
|
|
### 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
|
|
```typescript
|
|
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
|
|
```typescript
|
|
/*eslint-disable */
|
|
|
|
//suppress all warnings between comments
|
|
alert('foo')
|
|
|
|
/*eslint-enable */
|
|
```
|
|
### Typescript eslint disable entire file
|
|
```typescript
|
|
/* eslint-disable */
|
|
```
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
## Typescript standard
|
|
- [standardjs](https://standardjs.com/)
|
|
|
|
### 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](https://github.com/golangci/golangci-lint)
|
|
|
|
### 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](https://github.com/replicatedhq/dockerfilelint.git)
|
|
|
|
### 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](https://github.com/terraform-linters/tflint)
|
|
|
|
### 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](https://stylelint.io/)
|
|
|
|
### stylelint standard Config file
|
|
- `.github/linters/.stylelintrc.json`
|
|
|
|
### stylelint disable single line
|
|
```css
|
|
#id {
|
|
/* stylelint-disable-next-line declaration-no-important */
|
|
color: pink !important;
|
|
}
|
|
```
|
|
|
|
### stylelint disable code block
|
|
```css
|
|
/* stylelint-disable */
|
|
a {}
|
|
/* stylelint-enable */
|
|
```
|
|
|
|
### stylelint disable entire file
|
|
- You can disable entire files with the `ignoreFiles` property in `.stylelintrc.json`
|
|
```json
|
|
{
|
|
"ignoreFiles": [
|
|
"styles/ignored/wildcards/*.css",
|
|
"styles/ignored/specific-file.css"
|
|
]
|
|
}
|
|
```
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
## ENV
|
|
- [dotenv-linter](https://github.com/dotenv-linter/dotenv-linter)
|
|
|
|
### dotenv-linter Config file
|
|
- There is no top level *configuration file* available at this time
|
|
|
|
### dotenv-linter disable single line
|
|
```env
|
|
# 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)
|