extensions:
  - addsTo:
      pack: codeql/go-all
      extensible: packageGrouping
    data:
      - ["beego", "github.com/astaxie/beego"]
      - ["beego", "github.com/beego/beego"]
      - ["beego", "github.com/beego/beego/server/web"]
  - addsTo:
      pack: codeql/go-all
      extensible: sinkModel
    data:
      # log-injection
      - ["group:beego", "", False, "Alert", "", "", "Argument[0..1]", "log-injection", "manual"]
      - ["group:beego", "", False, "Critical", "", "", "Argument[0..1]", "log-injection", "manual"]
      - ["group:beego", "", False, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"]
      - ["group:beego", "", False, "Emergency", "", "", "Argument[0..1]", "log-injection", "manual"]
      - ["group:beego", "", False, "Error", "", "", "Argument[0..1]", "log-injection", "manual"]
      - ["group:beego", "", False, "Info", "", "", "Argument[0..1]", "log-injection", "manual"]
      - ["group:beego", "", False, "Informational", "", "", "Argument[0..1]", "log-injection", "manual"]
      - ["group:beego", "", False, "Notice", "", "", "Argument[0..1]", "log-injection", "manual"]
      - ["group:beego", "", False, "Trace", "", "", "Argument[0..1]", "log-injection", "manual"]
      - ["group:beego", "", False, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"]
      - ["group:beego", "", False, "Warning", "", "", "Argument[0..1]", "log-injection", "manual"]
      # path-injection
      - ["group:beego", "", False, "Walk", "", "", "Argument[1]", "path-injection", "manual"]
      - ["group:beego", "Controller", True, "SaveToFile", "", "", "Argument[1]", "path-injection", "manual"]
      - ["group:beego", "Controller", True, "SaveToFileWithBuffer", "", "", "Argument[1]", "path-injection", "manual"] # only exists in v2
      - ["group:beego", "FileSystem", True, "Open", "", "", "Argument[0]", "path-injection", "manual"]
      # url-redirection
      - ["group:beego", "Controller", True, "Redirect", "", "", "Argument[0]", "url-redirection", "manual"]
  - addsTo:
      pack: codeql/go-all
      extensible: summaryModel
    data:
      - ["group:beego", "", False, "HTML2str", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
      - ["group:beego", "", False, "Htmlquote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
      - ["group:beego", "", False, "Htmlunquote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
      - ["group:beego", "", False, "MapGet", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
      - ["group:beego", "", False, "ParseForm", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
      - ["group:beego", "", False, "Str2html", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
      - ["group:beego", "", False, "Substr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
  - addsTo:
      pack: codeql/go-all
      extensible: sourceModel
    data:
      - ["group:beego", "Controller", True, "ParseForm", "", "", "Argument[0]", "remote", "manual"]
      - ["group:beego", "Controller", True, "GetFile", "", "", "ReturnValue[0..1]", "remote", "manual"]
      - ["group:beego", "Controller", True, "GetFiles", "", "", "ReturnValue[0]", "remote", "manual"]
      - ["group:beego", "Controller", True, "GetString", "", "", "ReturnValue[0]", "remote", "manual"]
      - ["group:beego", "Controller", True, "GetStrings", "", "", "ReturnValue[0]", "remote", "manual"]
      - ["group:beego", "Controller", True, "Input", "", "", "ReturnValue[0]", "remote", "manual"]
  - addsTo:
      pack: codeql/go-all
      extensible: barrierModel
    data:
      - ["group:beego", "", True, "Htmlquote", "", "", "ReturnValue", "html-injection", "manual"]
