mirror of https://github.com/go-gitea/gitea
Add `lint-go-gopls` (#30729)
Uses `gopls check <files>` as a linter. Tested locally and brings up 149 errors currently for me. I don't think I want to fix them in this PR, but I would like at least to get this analysis running on CI. List of errors: ``` modules/indexer/code/indexer.go:181:11: impossible condition: nil != nil routers/private/hook_post_receive.go:120:15: tautological condition: nil == nil services/auth/source/oauth2/providers.go:185:9: tautological condition: nil == nil services/convert/issue.go:216:11: tautological condition: non-nil != nil tests/integration/git_test.go:332:9: impossible condition: nil != nil services/migrations/migrate.go:179:24-43: unused parameter: ctx services/repository/transfer.go:288:48-69: unused parameter: doer tests/integration/api_repo_tags_test.go:75:41-61: unused parameter: session tests/integration/git_test.go:696:64-74: unused parameter: baseBranch tests/integration/gpg_git_test.go:265:27-39: unused parameter: t tests/integration/gpg_git_test.go:284:23-29: unused parameter: tmpDir tests/integration/gpg_git_test.go:284:31-35: unused parameter: name tests/integration/gpg_git_test.go:284:37-42: unused parameter: email ```pull/31258/head
parent
bd80225ec3
commit
816222243a
@ -0,0 +1,23 @@ |
||||
#!/bin/bash |
||||
set -uo pipefail |
||||
|
||||
cd "$(dirname -- "${BASH_SOURCE[0]}")" && cd .. |
||||
|
||||
IGNORE_PATTERNS=( |
||||
"is deprecated" # TODO: fix these |
||||
) |
||||
|
||||
# lint all go files with 'gopls check' and look for lines starting with the |
||||
# current absolute path, indicating a error was found. This is neccessary |
||||
# because the tool does not set non-zero exit code when errors are found. |
||||
# ref: https://github.com/golang/go/issues/67078 |
||||
ERROR_LINES=$("$GO" run "$GOPLS_PACKAGE" check "$@" 2>/dev/null | grep -E "^$PWD" | grep -vFf <(printf '%s\n' "${IGNORE_PATTERNS[@]}")); |
||||
NUM_ERRORS=$(echo -n "$ERROR_LINES" | wc -l) |
||||
|
||||
if [ "$NUM_ERRORS" -eq "0" ]; then |
||||
exit 0; |
||||
else |
||||
echo "$ERROR_LINES" |
||||
echo "Found $NUM_ERRORS 'gopls check' errors" |
||||
exit 1; |
||||
fi |
Loading…
Reference in new issue