mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-25 15:55:18 +00:00
chore(linter): update Golang linter configuration (#1977)
* update golinter + add go sec * add golangci.yml Co-authored-by: @faddat jacobgadikian@gmail.com * update * update * fix release version * remove sec, update from pr comments, cleanup golangci.yml to not break on master * remove @faddat, not valid codeowner * remove unnecessary make command * remove incorrectly named golangci.yml file * add --new-from-rev * use master instead of main * remove extra echo * set the exports properly * add setup go to work with act * add some docs to golangci linter * test new-from-rev * enable more linters, but app.go back * verify issues-exit-code being gone * put it back * enable more linters * remove exclusions
This commit is contained in:
parent
a8df31b31a
commit
b0d737d354
3
.github/CODEOWNERS
vendored
Normal file
3
.github/CODEOWNERS
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
|
||||||
|
# Global rule:
|
||||||
|
* @rhuairahrighairidh @karzak @pirtleshell @drklee3 @nddeluca @DracoLi @evgeniy-scherbina @sesheffield
|
26
.github/workflows/ci-lint.yml
vendored
26
.github/workflows/ci-lint.yml
vendored
@ -7,11 +7,25 @@ jobs:
|
|||||||
uses: ./.github/workflows/proto.yml
|
uses: ./.github/workflows/proto.yml
|
||||||
golangci-lint:
|
golangci-lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
checks: write # allow write access to checks to allow the action to annotate code in the PR.
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- name: Checkout code
|
||||||
- name: golangci-lint
|
uses: actions/checkout@v4
|
||||||
uses: reviewdog/action-golangci-lint@v2
|
with: { fetch-depth: 0 }
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.github_token }}
|
go-version-file: go.mod
|
||||||
reporter: github-pr-review
|
- name: Load Version
|
||||||
golangci_lint_flags: --timeout 10m
|
id: load-version
|
||||||
|
run: |
|
||||||
|
GOLANGCI_VERSION=$(cat .golangci-version)
|
||||||
|
REV=$(git merge-base origin/master HEAD)
|
||||||
|
echo "GOLANGCI_VERSION=$GOLANGCI_VERSION" >> $GITHUB_ENV
|
||||||
|
echo "REV=$REV" >> $GITHUB_ENV
|
||||||
|
- name: golangci-lint
|
||||||
|
uses: golangci/golangci-lint-action@v6
|
||||||
|
with:
|
||||||
|
version: ${{ env.GOLANGCI_VERSION }}
|
||||||
|
args: -v -c .golangci.yml --new-from-rev ${{ env.REV }}
|
||||||
|
1
.golangci-version
Normal file
1
.golangci-version
Normal file
@ -0,0 +1 @@
|
|||||||
|
v1.59
|
120
.golangci.yml
Normal file
120
.golangci.yml
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
run:
|
||||||
|
timeout: 20m # set maximum time allowed for the linter to run. If the linting process exceeds this duration, it will be terminated
|
||||||
|
modules-download-mode: readonly # Ensures that modules are not modified during the linting process
|
||||||
|
allow-parallel-runners: true # enables parallel execution of linters to speed up linting process
|
||||||
|
|
||||||
|
linters:
|
||||||
|
disable-all: true
|
||||||
|
enable:
|
||||||
|
- asasalint
|
||||||
|
- asciicheck
|
||||||
|
- bidichk
|
||||||
|
- bodyclose
|
||||||
|
- containedctx
|
||||||
|
- contextcheck
|
||||||
|
- decorder
|
||||||
|
- dogsled
|
||||||
|
# - dupl
|
||||||
|
# - dupword
|
||||||
|
- durationcheck
|
||||||
|
- errcheck
|
||||||
|
- errchkjson
|
||||||
|
- errname
|
||||||
|
- errorlint
|
||||||
|
# - exhaustive
|
||||||
|
- exportloopref
|
||||||
|
- funlen
|
||||||
|
- gci
|
||||||
|
- ginkgolinter
|
||||||
|
- gocheckcompilerdirectives
|
||||||
|
# - gochecknoglobals
|
||||||
|
# - gochecknoinits
|
||||||
|
- goconst
|
||||||
|
- gocritic
|
||||||
|
- godox
|
||||||
|
- gofmt
|
||||||
|
# - gofumpt
|
||||||
|
- goheader
|
||||||
|
- goimports
|
||||||
|
- mnd
|
||||||
|
# - gomodguard
|
||||||
|
- goprintffuncname
|
||||||
|
# - gosec
|
||||||
|
- gosimple
|
||||||
|
- govet
|
||||||
|
- grouper
|
||||||
|
- importas
|
||||||
|
- ineffassign
|
||||||
|
# - interfacebloat
|
||||||
|
- lll
|
||||||
|
- loggercheck
|
||||||
|
- makezero
|
||||||
|
- mirror
|
||||||
|
- misspell
|
||||||
|
- musttag
|
||||||
|
# - nakedret
|
||||||
|
# - nestif
|
||||||
|
- nilerr
|
||||||
|
# - nilnil
|
||||||
|
# - noctx
|
||||||
|
- nolintlint
|
||||||
|
# - nonamedreturns
|
||||||
|
- nosprintfhostport
|
||||||
|
- prealloc
|
||||||
|
- predeclared
|
||||||
|
- promlinter
|
||||||
|
# - reassign
|
||||||
|
- revive
|
||||||
|
- rowserrcheck
|
||||||
|
- staticcheck
|
||||||
|
# - stylecheck
|
||||||
|
- tagalign
|
||||||
|
# - testpackage
|
||||||
|
# - thelper
|
||||||
|
# - tparallel
|
||||||
|
- typecheck
|
||||||
|
# - unconvert
|
||||||
|
- unparam
|
||||||
|
- unused
|
||||||
|
# - usestdlibvars
|
||||||
|
- wastedassign
|
||||||
|
# - whitespace
|
||||||
|
- wrapcheck
|
||||||
|
|
||||||
|
|
||||||
|
linters-settings:
|
||||||
|
errcheck:
|
||||||
|
check-blank: true # check for assignments to the blank identifier '_' when errors are returned
|
||||||
|
check-type-assertions: false # check type assertion
|
||||||
|
errorlint:
|
||||||
|
check-generated: false # disabled linting of generated files
|
||||||
|
default-signifies-exhaustive: false # exhaustive handling of error types
|
||||||
|
exhaustive:
|
||||||
|
default-signifies-exhaustive: false # exhaustive handling of error types
|
||||||
|
gci:
|
||||||
|
sections: # defines the order of import sections
|
||||||
|
- standard
|
||||||
|
- default
|
||||||
|
goconst:
|
||||||
|
min-len: 3 # min length for string constants to be checked
|
||||||
|
min-occurrences: 3 # min occurrences of the same constant before it's flagged
|
||||||
|
godox:
|
||||||
|
keywords: # specific keywords to flag for further action
|
||||||
|
- BUG
|
||||||
|
- FIXME
|
||||||
|
- HACK
|
||||||
|
lll:
|
||||||
|
line-length: 120
|
||||||
|
nolintlint:
|
||||||
|
allow-leading-space: false
|
||||||
|
require-explanation: true
|
||||||
|
require-specific: true
|
||||||
|
unparam:
|
||||||
|
check-exported: true # checks exported functions and methods for unused params
|
||||||
|
misspell:
|
||||||
|
locale: US
|
||||||
|
ignore-words: expect
|
||||||
|
prealloc:
|
||||||
|
simple: true # enables simple preallocation checks
|
||||||
|
range-loops: true # enabled preallocation checks in range loops
|
||||||
|
for-loops: false # disables preallocation checks in for loops
|
52
golangci.yml
52
golangci.yml
@ -1,52 +0,0 @@
|
|||||||
run:
|
|
||||||
tests: false
|
|
||||||
# # timeout for analysis, e.g. 30s, 5m, default is 1m
|
|
||||||
# timeout: 5m
|
|
||||||
|
|
||||||
linters:
|
|
||||||
disable-all: true
|
|
||||||
enable:
|
|
||||||
- bodyclose
|
|
||||||
- deadcode
|
|
||||||
- depguard
|
|
||||||
- dogsled
|
|
||||||
# - errcheck
|
|
||||||
- goconst
|
|
||||||
- gocritic
|
|
||||||
- gofmt
|
|
||||||
- goimports
|
|
||||||
- golint
|
|
||||||
- gosec
|
|
||||||
- gosimple
|
|
||||||
- govet
|
|
||||||
- ineffassign
|
|
||||||
- interfacer
|
|
||||||
- maligned
|
|
||||||
- misspell
|
|
||||||
- nakedret
|
|
||||||
- prealloc
|
|
||||||
- scopelint
|
|
||||||
- staticcheck
|
|
||||||
- structcheck
|
|
||||||
- stylecheck
|
|
||||||
- typecheck
|
|
||||||
- unconvert
|
|
||||||
- unused
|
|
||||||
- misspell
|
|
||||||
- wsl
|
|
||||||
|
|
||||||
issues:
|
|
||||||
exclude-rules:
|
|
||||||
- text: "Use of weak random number generator"
|
|
||||||
linters:
|
|
||||||
- gosec
|
|
||||||
- text: "comment on exported var"
|
|
||||||
linters:
|
|
||||||
- golint
|
|
||||||
|
|
||||||
linters-settings:
|
|
||||||
dogsled:
|
|
||||||
max-blank-identifiers: 3
|
|
||||||
maligned:
|
|
||||||
# print struct with more effective memory layout or not, false by default
|
|
||||||
suggest-new: true
|
|
Loading…
Reference in New Issue
Block a user