github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/rego/runtime.go (about) 1 package rego 2 3 import ( 4 "os" 5 "strings" 6 7 "github.com/open-policy-agent/opa/ast" 8 "github.com/open-policy-agent/opa/version" 9 ) 10 11 func addRuntimeValues() *ast.Term { 12 env := ast.NewObject() 13 for _, pair := range os.Environ() { 14 parts := strings.SplitN(pair, "=", 2) 15 if len(parts) == 1 { 16 env.Insert(ast.StringTerm(parts[0]), ast.NullTerm()) 17 } else if len(parts) > 1 { 18 env.Insert(ast.StringTerm(parts[0]), ast.StringTerm(parts[1])) 19 } 20 } 21 22 obj := ast.NewObject() 23 obj.Insert(ast.StringTerm("env"), ast.NewTerm(env)) 24 obj.Insert(ast.StringTerm("version"), ast.StringTerm(version.Version)) 25 obj.Insert(ast.StringTerm("commit"), ast.StringTerm(version.Vcs)) 26 27 return ast.NewTerm(obj) 28 }