commit a026e68f5f50f28680da0ea27f585f13dc5e992a
Author: selfhoster1312 <selfhoster1312@kl.netlib.re>
Date: Mon Sep 08 18:53:14 2025 +0000
diff --git a/.github/workflows/development.yml b/.github/workflows/development.yml
index e5e3970..5dc8531 100644
--- a/.github/workflows/development.yml
+++ b/.github/workflows/development.yml
@@ -819 +825 @@ on:
+permissions:
+ contents: read
+ pull-requests: read
jobs:
lint:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v5
+ - uses: actions/setup-go@v6
- fetch-depth: 20
- - name: Run golangci-lint
- uses: golangci/golangci-lint-action@v3
+ go-version: stable
+ - name: golangci-lint
+ uses: golangci/golangci-lint-action@v8
- version: latest
- args: "-v --new-from-rev HEAD~5 --timeout=5m"
+ version: v2.1
+ # Only compare with previous commit when pushing,
+ # and with base branch when in PR.
+ only-new-issues: true
test-build-upload:
@@ -2912 +3511 @@ jobs:
- uses: actions/setup-go@v3
+ uses: actions/setup-go@v6
- stable: false
- uses: actions/checkout@v3
+ uses: actions/checkout@v5
@@ -4225 +4725 @@ jobs:
- VERSION=$(git describe --tags)
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o output/lin/matterbridge-$VERSION-linux-amd64
- CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o output/win/matterbridge-$VERSION-windows-amd64.exe
- CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o output/mac/matterbridge-$VERSION-darwin-amd64
+ VERSION=$(git describe --tags --always)
+ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o "output/lin/matterbridge-$VERSION-linux-amd64"
+ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o "output/win/matterbridge-$VERSION-windows-amd64.exe"
+ CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -X github.com/42wim/matterbridge/version.GitHash=$(git log --pretty=format:'%h' -n 1)" -o "output/mac/matterbridge-$VERSION-darwin-amd64"
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
diff --git a/.golangci.yaml b/.golangci.yaml
index 745df2d..692a59a 100644
--- a/.golangci.yaml
+++ b/.golangci.yaml
@@ -1191 +141 @@
# For full documentation of the configuration options please
-# see: https://github.com/golangci/golangci-lint#config-file.
+# see: https://golangci-lint.run/docs/configuration/file/
+version: "2"
# options for analysis running
run:
- # default concurrency is the available CPU number
- # concurrency: 4
-
- # timeout for analysis, e.g. 30s, 5m, default is 1m
- deadline: 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:
+ go: "1.22"
# which dirs to skip: they won't be analyzed;
# can use regexp here: generated.*, regexp is applied on full path;
# default value is empty list, but next dirs are always skipped independently
# from this option's value:
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
- skip-dirs: gateway/bridgemap$
-
- # 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.
- skip-files:
-
+ # skip-dirs: gateway/bridgemap$
# output configuration options
output:
# colored-line-number|line-number|json|tab|checkstyle, 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
-
-
-# all available settings of specific linters, we can set an option for
-# a given linter even if we deactivate that same linter at runtime
-linters-settings:
- errcheck:
- # report about not checking of errors in type assertions: `a := b.(MyStruct)`;
- # default is false: such cases aren't reported by default.
- check-type-assertions: false
-
- # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
- # default is false: such cases aren't reported by default.
- check-blank: false
- govet:
- # report about shadowed variables
- check-shadowing: true
- golint:
- # minimal confidence for issues, default is 0.8
- min-confidence: 0.8
- gofmt:
- # simplify code: gofmt with `-s` option, true by default
- simplify: true
- goimports:
- # put imports beginning with prefix after 3rd-party packages;
- # it's a comma-separated list of prefixes
- local-prefixes: github.com
- gocyclo:
- # minimal code complexity to report, 30 by default (but we recommend 10-20)
- min-complexity: 15
- maligned:
- # print struct with more effective memory layout or not, false by default
- suggest-new: true
- dupl:
- # tokens count to trigger issue, 150 by default
- threshold: 150
- goconst:
- # minimal length of string constant, 3 by default
- min-len: 3
- # minimal occurrences count to trigger, 3 by default
- min-occurrences: 3
- depguard:
- list-type: blacklist
- include-go-root: false
- packages:
- # List of packages that we would want to blacklist for... reasons.
- misspell:
- # Correct spellings using locale preferences for US or UK.
- # Default is to use a neutral variety of English.
- # Setting locale to US will correct the British spelling of 'colour' to 'color'.
- lll:
- # max line length, lines longer will be reported. Default is 120.
- # '\t' is counted as 1 character by default, and can be changed with the tab-width option
- line-length: 150
- # tab width in spaces. Default to 1.
- tab-width: 1
- unused:
- # treat code as a program (not a library) and report unused exported identifiers; default is false.
- # XXX: if you enable this setting, unused will report a lot of false-positives in text editors:
- # if it's called for subdir of a project it can't find funcs usages. All text editor integrations
- # with golangci-lint call it on a directory with the changed file.
- check-exported: false
- unparam:
- # Inspect exported functions, default is false. Set to true if no external program/library imports your code.
- # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors:
- # if it's called for subdir of a project it can't find external interfaces. All text editor integrations
- # with golangci-lint call it on a directory with the changed file.
- check-exported: false
- nakedret:
- # make an issue if func has more lines of code than this setting and it has naked returns; default is 30
- max-func-lines: 0 # Warn on all naked returns.
- prealloc:
- # XXX: we don't recommend using this linter before doing performance profiling.
- # For most programs usage of prealloc will be a premature optimization.
-
- # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them.
- # True by default.
- simple: true
- range-loops: true # Report preallocation suggestions on range loops, true by default
- for-loops: false # Report preallocation suggestions on for loops, false by default
- gocritic:
- # which checks should be enabled; can't be combined with 'disabled-checks';
- # default are: [appendAssign assignOp caseOrder dupArg dupBranchBody dupCase flagDeref
- # ifElseChain regexpMust singleCaseSwitch sloppyLen switchTrue typeSwitchVar underef
- # unlambda unslice rangeValCopy defaultCaseOrder];
- # all checks list: https://github.com/go-critic/checkers
- # disabled for now - hugeParam
- enabled-checks:
- - appendAssign
- - assignOp
- - boolExprSimplify
- - builtinShadow
- - captLocal
- - caseOrder
- - commentedOutImport
- - defaultCaseOrder
- - dupArg
- - dupBranchBody
- - dupCase
- - dupSubExpr
- - elseif
- - emptyFallthrough
- - ifElseChain
- - importShadow
- - indexAlloc
- - methodExprCall
- - nestingReduce
- - offBy1
- - ptrToRefParam
- - regexpMust
- - singleCaseSwitch
- - sloppyLen
- - switchTrue
- - typeSwitchVar
- - typeUnparen
- - underef
- - unlambda
- - unnecessaryBlock
- - unslice
- - valSwap
- - wrapperFunc
- - yodaStyleExpr
-
+ formats:
+ text:
+ path: stdout
+ colors: true
# linters that we should / shouldn't run
linters:
- enable-all: true
+ default: all
disable:
- - maligned
- - gomnd
- - goerr113
- - interfacer
- - gci
- - exhaustivestruct
@@ -20338 +5394 @@ linters:
- - typecheck
- - execinquery
- - nosnakecase
+ # all available settings of specific linters, we can set an option for
+ # a given linter even if we deactivate that same linter at runtime
+ settings:
+ errcheck:
+ # report about not checking of errors in type assertions: `a := b.(MyStruct)`;
+ # default is false: such cases aren't reported by default.
+ check-type-assertions: false
+
+ # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
+ # default is false: such cases aren't reported by default.
+ check-blank: false
+ govet:
+ # report about shadowed variables
+ enable:
+ - shadow
+ gocyclo:
+ # minimal code complexity to report, 30 by default (but we recommend 10-20)
+ min-complexity: 15
+ dupl:
+ # tokens count to trigger issue, 150 by default
+ threshold: 150
+ goconst:
+ # minimal length of string constant, 3 by default
+ min-len: 3
+ # minimal occurrences count to trigger, 3 by default
+ min-occurrences: 3
+ depguard: {}
+ misspell: {}
+ # Correct spellings using locale preferences for US or UK.
+ # Default is to use a neutral variety of English.
+ # Setting locale to US will correct the British spelling of 'colour' to 'color'.
+ lll:
+ # max line length, lines longer will be reported. Default is 120.
+ # '\t' is counted as 1 character by default, and can be changed with the tab-width option
+ line-length: 150
+ # tab width in spaces. Default to 1.
+ tab-width: 1
+ unused: {}
+ unparam:
+ # Inspect exported functions, default is false. Set to true if no external program/library imports your code.
+ # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors:
+ # if it's called for subdir of a project it can't find external interfaces. All text editor integrations
+ # with golangci-lint call it on a directory with the changed file.
+ check-exported: false
+ nakedret:
+ # make an issue if func has more lines of code than this setting and it has naked returns; default is 30
+ max-func-lines: 0 # Warn on all naked returns.
+ prealloc:
+ # XXX: we don't recommend using this linter before doing performance profiling.
+ # For most programs usage of prealloc will be a premature optimization.
+
+ # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them.
+ # True by default.
+ simple: true
+ range-loops: true # Report preallocation suggestions on range loops, true by default
+ for-loops: false # Report preallocation suggestions on for loops, false by default
+ gocritic:
+ # which checks should be enabled; can't be combined with 'disabled-checks';
+ # default are: [appendAssign assignOp caseOrder dupArg dupBranchBody dupCase flagDeref
+ # ifElseChain regexpMust singleCaseSwitch sloppyLen switchTrue typeSwitchVar underef
+ # unlambda unslice rangeValCopy defaultCaseOrder];
+ # all checks list: https://github.com/go-critic/checkers
+ # disabled for now - hugeParam
+ enabled-checks:
+ - boolExprSimplify
+ - builtinShadow
+ - commentedOutImport
+ - emptyFallthrough
+ - importShadow
+ - indexAlloc
+ - methodExprCall
+ - nestingReduce
+ - ptrToRefParam
+ - typeUnparen
+ - unnecessaryBlock
+ - yodaStyleExpr
+
# rules to deal with reported isues
issues:
- # List of regexps of issue texts to exclude, empty list by default.
- # But independently from 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:
-
- # Independently from 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: true
-
- # Maximum issues count per one linter. Set to 0 to disable. Default is 50.
- max-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: if there are unstaged changes or untracked files,
# only those changes are analyzed, else only changes in HEAD~ are analyzed.
# It's a super-useful option for integration of golangci-lint into existing
@@ -2453 +15112 @@ issues:
# Show only new issues created after git revision `REV`
new-from-rev: "HEAD~1"
+
+formatters:
+ settings:
+ gofmt:
+ # simplify code: gofmt with `-s` option, true by default
+ simplify: true
+ goimports:
+ # put imports beginning with prefix after 3rd-party packages;
+ local-prefixes: [ "github.com" ]
\ No newline at end of file