mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2026-01-11 20:56:29 +00:00
feat: teach lint-locale-usage about ObjectVerification.Reason (#10755)
Add special parsing to handle the keys found in the `Reason` field of `ObjectVerification` structs. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10755 Reviewed-by: Gusted <gusted@noreply.codeberg.org> Co-authored-by: Έλλεν Εμίλια Άννα Zscheile <fogti+devel@ytrizja.de> Co-committed-by: Έλλεν Εμίλια Άννα Zscheile <fogti+devel@ytrizja.de>
This commit is contained in:
parent
fdb1d9d762
commit
4fd275116d
3 changed files with 36 additions and 7 deletions
|
|
@ -6,13 +6,6 @@ translation_meta.test
|
|||
# this also gets instantiated as a Messenger once
|
||||
repo.migrate.migrating_failed.error
|
||||
|
||||
# models/asymkey/gpg_key_object_verification.go: $ObjectVerification.Reason
|
||||
# unfortunately, it is non-trivial to parse all the occurences
|
||||
gpg.error.extract_sign
|
||||
gpg.error.failed_retrieval_gpg_keys
|
||||
gpg.error.generate_hash
|
||||
gpg.error.no_committer_account
|
||||
|
||||
# models/system/notice.go: func (n *Notice) TrStr() string
|
||||
admin.notices.type_1
|
||||
admin.notices.type_2
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import (
|
|||
"strings"
|
||||
|
||||
llu "forgejo.org/build/lint-locale-usage"
|
||||
lluAsymKey "forgejo.org/models/asymkey/lint-locale-usage"
|
||||
lluUnit "forgejo.org/models/unit/lint-locale-usage"
|
||||
lluMigrate "forgejo.org/services/migrations/lint-locale-usage"
|
||||
)
|
||||
|
|
@ -71,6 +72,8 @@ func HandleGoFile(handler llu.Handler, fname string, src any) error {
|
|||
case *ast.CompositeLit:
|
||||
if strings.HasSuffix(fname, "models/unit/unit.go") {
|
||||
lluUnit.HandleCompositeUnit(handler, fset, n2)
|
||||
} else if strings.Contains(fname, "models/asymkey/") {
|
||||
lluAsymKey.HandleCompositeErrorReason(handler, fset, n2)
|
||||
}
|
||||
|
||||
case *ast.FuncDecl:
|
||||
|
|
|
|||
33
models/asymkey/lint-locale-usage/llu.go
Normal file
33
models/asymkey/lint-locale-usage/llu.go
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
// Copyright 2026 The Forgejo Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package lintLocaleUsage
|
||||
|
||||
import (
|
||||
"go/ast"
|
||||
"go/token"
|
||||
|
||||
llu "forgejo.org/build/lint-locale-usage"
|
||||
)
|
||||
|
||||
// special case: models/asymkey/*.go,
|
||||
//
|
||||
// handle &ObjectVerification{...}
|
||||
func HandleCompositeErrorReason(handler llu.Handler, fset *token.FileSet, n *ast.CompositeLit) {
|
||||
ident, ok := n.Type.(*ast.Ident)
|
||||
if !ok || ident.Name != "ObjectVerification" {
|
||||
return
|
||||
}
|
||||
|
||||
// fields are normally named
|
||||
for _, i := range n.Elts {
|
||||
if kve, ok := i.(*ast.KeyValueExpr); ok {
|
||||
ident, ok = kve.Key.(*ast.Ident)
|
||||
if ok && ident.Name == "Reason" {
|
||||
handler.HandleGoTrArgument(fset, kve.Value, "")
|
||||
}
|
||||
} else {
|
||||
handler.OnWarning(fset, i.Pos(), "unable to parse ObjectVerification field assignment")
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue