每次在我们的存储库上打开或更新 Pull Request 时,我们都会使用一个 linter(用于 Golang),它会在 Github Actions 工作流程中运行。
它最近开始返回以下错误:
File is not `gofmt`-ed with `-s` (gofmt)
在此文件的其他 PRpkg/api/api/go
中发生的事情之后。
(编辑:添加链接以评估并最终重现错误)
证据:
我想了解这个错误的根源是什么,以及如何解决它?
中的-s
标志gofmt
与格式无关。这是关于简化代码:
尝试简化代码(在应用重写规则后,如果有的话)。
您看到的警告来自 linter golangci-lint
。由于您声称已通过运行修复了错误gofmt -w
,因此提示“with -s
”的存在可能是由于此错误:https ://github.com/golangci/golangci-lint/issues/513 。
链接问题已于 2019 年修复,并随v1.17.0
. 您可能想检查您的管道是否使用旧版本。
假设您的文件pkg/api/api.go
仅因为未格式化而触发了警告,则gofmt -w
解决了该问题,因为-w
覆盖了文件:
如果文件的格式与 gofmt 不同,则用 gofmt 的版本覆盖它。