chore: enable forcetypeassert linter, fix issues (#38804)

Enable [`forcetypeassert`](https://github.com/gostaticanalysis/forcetypeassert)
linter to prevent unchecked type assertions. ~650 issues fixed, most
fixes were clean, some use `setting.PanicInDevOrTesting`.

The only behaviour changes are where code would previously send a 500 error
or panic, a 4xx error is now emitted.

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
silverwind
2026-08-09 12:25:06 +02:00
committed by GitHub
parent fac8bf2eca
commit 76a81b24f9
248 changed files with 1110 additions and 995 deletions
+6 -1
View File
@@ -78,7 +78,12 @@ func (a *Auth) Verify(req *http.Request, w http.ResponseWriter, store auth.DataS
return nil, err
}
if err := verifySignedHeaders(req, version, pub.(*rsa.PublicKey)); err != nil {
rsaPub, ok := pub.(*rsa.PublicKey)
if !ok {
return nil, errors.New("public key is not a RSA key")
}
if err := verifySignedHeaders(req, version, rsaPub); err != nil {
return nil, err
}
+4 -4
View File
@@ -71,7 +71,7 @@ func PackagesUniverse(ctx *context.Context) {
LocationType: "opscode",
LocationPath: baseURL,
DownloadURL: fmt.Sprintf("%s/cookbooks/%s/versions/%s/download", baseURL, url.PathEscape(pd.Package.Name), pd.Version.Version),
Dependencies: pd.Metadata.(*chef_module.Metadata).Dependencies,
Dependencies: packages_model.DescriptorMetadata[*chef_module.Metadata](pd).Dependencies,
}
}
@@ -128,7 +128,7 @@ func EnumeratePackages(ctx *context.Context) {
items := make([]*Item, 0, len(pds))
for _, pd := range pds {
metadata := pd.Metadata.(*chef_module.Metadata)
metadata := packages_model.DescriptorMetadata[*chef_module.Metadata](pd)
items = append(items, &Item{
CookbookName: pd.Package.Name,
@@ -193,7 +193,7 @@ func PackageMetadata(ctx *context.Context) {
latest := pds[len(pds)-1]
metadata := latest.Metadata.(*chef_module.Metadata)
metadata := packages_model.DescriptorMetadata[*chef_module.Metadata](latest)
ctx.JSON(http.StatusOK, &Result{
Name: latest.Package.Name,
@@ -241,7 +241,7 @@ func PackageVersionMetadata(ctx *context.Context) {
baseURL := fmt.Sprintf("%sapi/packages/%s/chef/api/v1/cookbooks/%s", setting.AppURL, ctx.Package.Owner.Name, url.PathEscape(pd.Package.Name))
metadata := pd.Metadata.(*chef_module.Metadata)
metadata := packages_model.DescriptorMetadata[*chef_module.Metadata](pd)
ctx.JSON(http.StatusOK, &Result{
Version: pd.Version.Version,