in sg/internal/policy/rule.go [38:62]
func loadRulesFromModule(module *ast.Module) []Rule {
var rv []Rule
moduleNamespace := strings.Replace(module.Package.Path.String(), "data.", "", 1)
for _, regoRule := range module.Rules {
ruleString := regoRule.Head.Name.String()
ps := queryRegex.FindAllStringSubmatch(ruleString, -1)
if len(ps) != 1 || len(ps[0]) != 3 {
continue
}
parsed := ps[0]
rule := Rule{
Kind: QueryKind(parsed[1]),
Name: strings.TrimPrefix(ruleString, parsed[1]+"_"),
Namespace: moduleNamespace,
SourceLocation: regoRule.Location,
}
rv = append(rv, rule)
}
return rv
}