Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(bux-246): Added linters #500

Merged
merged 34 commits into from
Apr 12, 2024
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
9ace3ed
feat(bux-246): Added linters
Nazarii-4chain Mar 12, 2024
42f46de
feat(bux-246): Changed path
Nazarii-4chain Mar 12, 2024
54e3487
feat(bux-246): Changed path
Nazarii-4chain Mar 12, 2024
d9cadb3
feat(bux-246): Changed path
Nazarii-4chain Mar 12, 2024
ac96787
Merge branch 'master' into BUX-246/Linters
arkadiuszos4chain Mar 13, 2024
6821845
feat(bux-246): Added linter settings
Nazarii-4chain Mar 14, 2024
e25f065
Merge branch 'master' of https://github.com/bitcoin-sv/spv-wallet int…
Nazarii-4chain Mar 14, 2024
9571594
Merge branch 'BUX-246/Linters' of https://github.com/bitcoin-sv/spv-w…
Nazarii-4chain Mar 14, 2024
aeedfcb
Merge branch 'master' into BUX-246/Linters
Nazarii-4chain Mar 29, 2024
01dab20
Merge branch 'master' of https://github.com/bitcoin-sv/spv-wallet int…
Nazarii-4chain Apr 4, 2024
014777e
feat(bux-246): Changed linters list
Nazarii-4chain Apr 4, 2024
602c830
feat(bux-246): Changed jobs names
Nazarii-4chain Apr 4, 2024
a40ff87
feat(bux-246): Changed presets
Nazarii-4chain Apr 4, 2024
08a7111
feat(bux-246): Changed presets
Nazarii-4chain Apr 4, 2024
6cead18
Merge branch 'master' of https://github.com/bitcoin-sv/spv-wallet int…
Nazarii-4chain Apr 4, 2024
879aadc
feat(bux-246): go vet fixes
Nazarii-4chain Apr 4, 2024
ada8b82
feat(bux-246): go vet fixes
Nazarii-4chain Apr 4, 2024
1573c35
feat(bux-246): go vet fixes
Nazarii-4chain Apr 4, 2024
a338b4b
feat(bux-246): go vet fixes
Nazarii-4chain Apr 4, 2024
60f49e1
feat(bux-246): optimize structs
Nazarii-4chain Apr 4, 2024
66ac26e
feat(bux-246): optimize structs
Nazarii-4chain Apr 5, 2024
d804335
Merge branch 'master' of https://github.com/bitcoin-sv/spv-wallet int…
Nazarii-4chain Apr 5, 2024
beb472a
Merge branch 'master' of https://github.com/bitcoin-sv/spv-wallet int…
Nazarii-4chain Apr 5, 2024
d30afa4
Merge branch 'master' into BUX-246/Linters
Nazarii-4chain Apr 8, 2024
82b3bcf
feat(bux-685): Changed workflows, changed makefile
Nazarii-4chain Apr 9, 2024
b434f03
feat(bux-685): Removed unused files
Nazarii-4chain Apr 9, 2024
766f7cb
Merge branch 'master' into BUX-246/Linters
Nazarii-4chain Apr 9, 2024
5a4b881
feat(bux-246): removed deprecated options
Nazarii-4chain Apr 10, 2024
ea6e0aa
Merge branch 'master' of https://github.com/bitcoin-sv/spv-wallet int…
Nazarii-4chain Apr 10, 2024
749e3c3
feat(bux-246): changed prefix
Nazarii-4chain Apr 10, 2024
f797559
feat(bux-246): yamllint fixes
Nazarii-4chain Apr 10, 2024
f928afb
feat(bux-246): merge main, updated links
Nazarii-4chain Apr 11, 2024
29dd5dd
feat(bux-246): changed yamllint config
Nazarii-4chain Apr 12, 2024
5cc309f
Merge branch 'main' into BUX-246/Linters
Nazarii-4chain Apr 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .github/workflows/code-style-linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: code-style-linter
on:
push:
branches:
- master
- main
pull_request:

permissions:
contents: read
# Optional: allow read access to pull request. Use with `only-new-issues` option.
# pull-requests: read

jobs:
golangci:
name: style-lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.21'
cache: false
- name: golangci-style-lint
uses: golangci/golangci-lint-action@v4
with:
# Require: The version of golangci-lint to use.
# When `install-mode` is `binary` (default) the value can be v1.2 or v1.2.3 or `latest` to use the latest version.
# When `install-mode` is `goinstall` the value can be v1.2.3, `latest`, or the hash of a commit.
version: latest

# Optional: working directory, useful for monorepos
# working-directory: somedir

# Optional: golangci-lint command line arguments.
#
# Note: By default, the `.golangci.yml` file should be at the root of the repository.
# The location of the configuration file can be changed by using `--config=`
args: --config=./.golangci-style.yml

# Optional: show only new issues if it's a pull request. The default value is `false`.
# only-new-issues: true

# Optional: if set to true, then all caching functionality will be completely disabled,
# takes precedence over all other caching options.
# skip-cache: true

# Optional: if set to true, then the action won't cache or restore ~/go/pkg.
# skip-pkg-cache: true

# Optional: if set to true, then the action won't cache or restore ~/.cache/go-build.
# skip-build-cache: true

# Optional: The mode to install golangci-lint. It can be 'binary' or 'goinstall'.
# install-mode: "goinstall"
55 changes: 55 additions & 0 deletions .github/workflows/error-linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: code-error-linter
on:
push:
branches:
- master
- main
pull_request:

permissions:
contents: read
# Optional: allow read access to pull request. Use with `only-new-issues` option.
# pull-requests: read

jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.21'
cache: false
- name: golangci-lint
uses: golangci/golangci-lint-action@v4
with:
# Require: The version of golangci-lint to use.
# When `install-mode` is `binary` (default) the value can be v1.2 or v1.2.3 or `latest` to use the latest version.
# When `install-mode` is `goinstall` the value can be v1.2.3, `latest`, or the hash of a commit.
version: latest

# Optional: working directory, useful for monorepos
# working-directory: somedir

# Optional: golangci-lint command line arguments.
#
# Note: By default, the `.golangci.yml` file should be at the root of the repository.
# The location of the configuration file can be changed by using `--config=`
args: --config=./.golangci-lint.yml

# Optional: show only new issues if it's a pull request. The default value is `false`.
# only-new-issues: true

# Optional: if set to true, then all caching functionality will be completely disabled,
# takes precedence over all other caching options.
# skip-cache: true

# Optional: if set to true, then the action won't cache or restore ~/go/pkg.
# skip-pkg-cache: true

# Optional: if set to true, then the action won't cache or restore ~/.cache/go-build.
# skip-build-cache: true

# Optional: The mode to install golangci-lint. It can be 'binary' or 'goinstall'.
# install-mode: "goinstall"
181 changes: 181 additions & 0 deletions .golangci-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
# This file contains all available configuration options
# with their default values.

# options for analysis running
run:
# default concurrency is an available CPU number
concurrency: 4

# timeout for analysis, e.g. 30s, 5m, default is 1m
timeout: 5m

# exit code when at least one issue was found, default is 1
issues-exit-code: 1

# include test files or not, default is true
tests: true

# list of build tags, all linters use it. Default is empty list.
build-tags:
- mytag

# which dirs to skip: issues from them won't be reported;
# can use regexp here: generated.*, regexp is applied on full path;
# default value is empty list, but default dirs are skipped independently
# of this option's value (see skip-dirs-use-default).
# "/" will be replaced by current OS file path separator to properly work
# on Windows.
skip-dirs:
- .github
- .make
- dist

# default is true. Enables skipping of directories:
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
skip-dirs-use-default: true

# which files to skip: they will be analyzed, but issues from them
# won't be reported. Default value is empty list, but there is
# no need to include all autogenerated files, we confidently recognize
# autogenerated files. If it's not please let us know.
# "/" will be replaced by current OS file path separator to properly work
# on Windows.
skip-files:
- ".*\\.my\\.go$"
- lib/bad.go

# by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules":
# If invoked with -mod=readonly, the go command is disallowed from the implicit
# automatic updating of go.mod described above. Instead, it fails when any changes
# to go.mod are needed. This setting is most useful to check that go.mod does
# not need updates, such as in a continuous integration and testing system.
# If invoked with -mod=vendor, the go command assumes that the vendor
# directory holds the correct copies of dependencies and ignores
# the dependency descriptions in go.mod.
#modules-download-mode: readonly|release|vendor

# Allow multiple parallel golangci-lint instances running.
# If false (default) - golangci-lint acquires file lock on start.
allow-parallel-runners: false


# output configuration options
output:
# colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number"
format: colored-line-number

# print lines of code with issue, default is true
print-issued-lines: true

# print linter name in the end of issue text, default is true
print-linter-name: true

# make issues output unique by line, default is true
uniq-by-line: true

# add a prefix to the output file references; default is no prefix
path-prefix: ""

linters:
# Disable all linters.
# Default: false
disable-all: true
# Enable specific linter
# https://golangci-lint.run/usage/linters/#enabled-by-default
enable:
- bodyclose
- exhaustive
- gosec
- prealloc
- govet
- revive
- unconvert
- ineffassign
- dogsled
- exportloopref
- sqlclosecheck
- nolintlint
- errcheck
- gosimple
- staticcheck
- unused

linters-settings:
govet:
enable:
- fieldalignment

issues:
# List of regexps of issue texts to exclude, empty list by default.
# But independently of this option we use default exclude patterns,
# it can be disabled by `exclude-use-default: false`. To list all
# excluded by default patterns execute `golangci-lint run --help`
exclude:
- Using the variable on range scope .* in function literal
- should have a package comment

# Excluding configuration per-path, per-linter, per-text and per-source
exclude-rules:
# Exclude some linters from running on tests files.
- path: _test\.go
linters:
- gocyclo
- errcheck
- gosec

# Exclude known linters from partially "hard-vendored" code,
# which is impossible to exclude via "nolint" comments.
- path: internal/hmac/
text: "weak cryptographic primitive"
linters:
- gosec

# Exclude some "staticcheck" messages
- linters:
- staticcheck
text: "SA1019:"

# Exclude lll issues for long lines with go:generate
- linters:
- lll
source: "^//go:generate "

# Independently of option `exclude` we use default exclude patterns,
# it can be disabled by this option. To list all
# excluded by default patterns execute `golangci-lint run --help`.
# Default value for this option is true.
exclude-use-default: false

# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
max-issues-per-linter: 0

# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
max-same-issues: 0

# Show only new issues created after git revision `REV`
new-from-rev: ""

severity:
# Default value is empty string.
# Set the default severity for issues. If severity rules are defined and the issues
# do not match or no severity is provided to the rule this will be the default
# severity applied. Severities should match the supported severity names of the
# selected out format.
# - Code climate: https://docs.codeclimate.com/docs/issues#issue-severity
# - Checkstyle: https://checkstyle.sourceforge.io/property_types.html#severity
# - Github: https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-error-message
default-severity: error

# The default value is false.
# If set to true severity-rules regular expressions become case-sensitive.
case-sensitive: false

# Default value is empty list.
# When a list of severity rules are provided, severity information will be added to lint
# issues. Severity rules have the same filtering capability as exclude rules except you
# are allowed to specify one matcher per severity rule.
# Only affects out formats that support setting severity information.
rules:
- linters:
- dupl
severity: info
Loading
Loading