Currently, when verifying our pullapprove configuration, we don't respect modifications to the set of files in a condition. e.g. It's not possible to do the following: ``` contains_any_globs(files.exclude(...), [ ``` This prevents us from having codeowner groups which match a directory, but want to filter out specific sub directories. For example, `fw-core` matches all files in the core package. We want to exclude the schematics from that glob. Usually we do this by another exclude condition. This has a *significant* downside though. It means that fw-core will not be requested if a PR changes schematic code, _and_ actual fw-core code. To support these conditions, the pullapprove verification tool is refactored, so that it no longer uses Regular expressions for parsing, but rather evaluates the code through a dynamic function. This is possible since the conditions are written in simple Python that can be run in NodeJS too (with small modifications/transformations). PR Close #36661
29 lines
697 B
Python
29 lines
697 B
Python
load("@npm_bazel_typescript//:index.bzl", "ts_library")
|
|
|
|
ts_library(
|
|
name = "pullapprove",
|
|
srcs = [
|
|
"cli.ts",
|
|
"condition_evaluator.ts",
|
|
"group.ts",
|
|
"logging.ts",
|
|
"parse-yaml.ts",
|
|
"verify.ts",
|
|
],
|
|
module_name = "@angular/dev-infra-private/pullapprove",
|
|
visibility = ["//dev-infra:__subpackages__"],
|
|
deps = [
|
|
"//dev-infra/utils:config",
|
|
"@npm//@types/minimatch",
|
|
"@npm//@types/node",
|
|
"@npm//@types/shelljs",
|
|
"@npm//@types/yaml",
|
|
"@npm//@types/yargs",
|
|
"@npm//minimatch",
|
|
"@npm//shelljs",
|
|
"@npm//tslib",
|
|
"@npm//yaml",
|
|
"@npm//yargs",
|
|
],
|
|
)
|