linters/README.md
Alexander Chuprov 7ceda9eddf
Some checks failed
Tests and linters / Lint (pull_request) Failing after 4s
Tests and linters / Tests (pull_request) Failing after 4s
Tests and linters / Build lib (pull_request) Successful in 2m46s
Tests and linters / Staticcheck (pull_request) Successful in 3m39s
[#4] linters: add disable-packages option
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2023-08-07 19:12:20 +03:00

2.3 KiB

linters

Overview

linters is a project that enables the integration of custom linting rules into the golangci-lint framework.

Usage

Add to .golangci.yml


    linters-settings:
    custom:
        custom-linters:
            path: <Path to the directory with libraries>
            original-url: git.frostfs.info/TrueCloudLab/linters


    linters:
        enable:
            custom-linters

Installation

    git clone git.frostfs.info/TrueCloudLab/linters
    cd linters
    make lib OUT_DIR=<Path to the directory with libraries>

Available linters

Name Description
noliteral The tool prohibits the use of literal string arguments in logging functions

Linters Configuration

Settings via a configuration file are available if golangci-lint >= 1.5.4 is used

noliteral

File Configuration
linters-settings:
    custom:
        noliteral:
            path: .bin/external_linters.so
            original-url: git.frostfs.info/TrueCloudLab/linters.git 
            settings:
                target-methods: ["reportFlushError", "reportError"] # optional. Enabled by default "Debug", "Info", "Warn", "Error"
                disable-packages: ["pkg1", "pkg2"] # List of packages for which the check should be disabled.
                constants-package: "git.frostfs.info/rep/logs" # if not set, then the check is disabled

ENV Configuration
Variable Description
NOLITERAL_TARGET_METHODS List of methods to analyze
NOLITERAL_DISABLE_PACKAGES List of packages for which the check should be disabled
NOLITERAL_CONSTANTS_PACKAGE Path to the package with constants

Note: You may need to clear the golangci-lint cache when configuring through ENV. More details can be found here.