No description
Find a file
Alexander Chuprov a2983f6cb8 [#10] linters: Add useStrconv linter
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2023-08-17 16:24:21 +03:00
.forgejo/workflows [#4] linters: add disable-packages option 2023-08-07 19:12:20 +03:00
internal/analyzers [#10] linters: Add useStrconv linter 2023-08-17 16:24:21 +03:00
pkg/ast-utils [#10] linters: Reorganize code for multiple linters integration 2023-08-16 17:45:32 +03:00
.gitattributes Initial commit 2023-07-17 10:51:48 +00:00
.gitignore Initial commit 2023-07-17 10:51:48 +00:00
.gitlint Initial commit 2023-07-17 10:51:48 +00:00
.golangci.yml Initial commit 2023-07-17 10:51:48 +00:00
.pre-commit-config.yaml Initial commit 2023-07-17 10:51:48 +00:00
go.mod [#7] Bump required go version to go1.20 2023-08-09 16:20:26 +03:00
go.sum [#8] Bump required go version to go1.20 2023-08-09 17:22:41 +03:00
main.go [#10] linters: Add useStrconv linter 2023-08-17 16:24:21 +03:00
Makefile [#5] linters: refactoring 2023-07-31 12:59:51 +03:00
README.md [#10] linters: Add useStrconv linter 2023-08-17 16:24:21 +03:00

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:
        truecloudlab-linters:
            path: <Path to the directory with libraries>
            original-url: git.frostfs.info/TrueCloudLab/linters


    linters:
        enable:
            truecloudlab-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.
useStrconv The useStrconv linter recommends the utilization of strconv over fmt when performing string conversions of primitive data types. Detailed guidelines can be found in the official Uber Go Style Guide.

Linters Configuration

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

noliteral

File Configuration
linters-settings:
    custom:
        truecloudlab-linters:
            path: .bin/external_linters.so
            original-url: git.frostfs.info/TrueCloudLab/linters.git
            settings:
                noliteral:
                    enable: true # optional
                    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

useStrconv

File Configuration
linters-settings:
    custom:
        truecloudlab-linters:
            path: .bin/external_linters.so
            original-url: git.frostfs.info/TrueCloudLab/linters.git
            settings:
                useStrconv: # optional
                    enable: true