MCPcopy Create free account
hub / github.com/bytebase/bytebase / getVariableAndValueFromExpr

Function getVariableAndValueFromExpr

backend/api/v1/database_service.go:134–161  ·  view source on GitHub ↗
(expr celast.Expr)

Source from the content-addressed store, hash-verified

132}
133
134func getVariableAndValueFromExpr(expr celast.Expr) (string, any) {
135 var variable string
136 var value any
137 for _, arg := range expr.AsCall().Args() {
138 switch arg.Kind() {
139 case celast.IdentKind:
140 variable = arg.AsIdent()
141 case celast.SelectKind:
142 // Handle member selection like "labels.environment"
143 sel := arg.AsSelect()
144 if sel.Operand().Kind() == celast.IdentKind {
145 variable = fmt.Sprintf("%s.%s", sel.Operand().AsIdent(), sel.FieldName())
146 }
147 case celast.LiteralKind:
148 value = arg.AsLiteral().Value()
149 case celast.ListKind:
150 list := []any{}
151 for _, e := range arg.AsList().Elements() {
152 if e.Kind() == celast.LiteralKind {
153 list = append(list, e.AsLiteral().Value())
154 }
155 }
156 value = list
157 default:
158 }
159 }
160 return variable, value
161}
162
163func getSubConditionFromExpr(expr celast.Expr, getFilter func(expr celast.Expr) (string, error), join string) (string, error) {
164 var args []string

Callers 4

parseChangelogFilterFunction · 0.70
extractCategoryFromExprFunction · 0.70
getIssueFindMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected