From fa385b2e9e8b269ad2a1c4723da9aac6b4bd4866 Mon Sep 17 00:00:00 2001 From: alyssawilk Date: Tue, 5 Apr 2022 11:51:50 -0400 Subject: [PATCH] docs: updating Codeowners (#20512) Fixing the tooling to pull the current maintainers list Moving all extensions into CODEOWNERS.md and finding owners for all extensions. go, go Envoy community! Risk Level: n/a (docs / tooling) Testing: fix format checks Docs Changes: yes Release Notes: n/a Signed-off-by: Alyssa Wilk --- CODEOWNERS | 113 ++++++++++++++++++++++-------- tools/code_format/check_format.py | 83 ++++------------------ 2 files changed, 98 insertions(+), 98 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index 4125d9e2b6d2..79b33e1d198a 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -6,12 +6,8 @@ /api/ @envoyproxy/api-shepherds # access loggers /*/extensions/access_loggers/common @auni53 @zuercher -/*/extensions/access_loggers/filters/cel @dio @douglas-reid /*/extensions/access_loggers/open_telemetry @itamarkam @yanavlasov /*/extensions/access_loggers/stream @mattklein123 @davinci26 -# compression extensions -/*/extensions/compression/common/compressor @rojkov @junr03 -/*/extensions/compression/gzip/compressor @rojkov @junr03 # alternate protocols cache extensions /*/extensions/filters/http/alternate_protocols_cache @RyanTheOptimist @alyssawilk # csrf extension @@ -28,9 +24,6 @@ extensions/filters/common/original_src @snowp @klarose /*/extensions/filters/network/thrift_proxy @zuercher @rgs1 # cdn_loop extension /*/extensions/filters/http/cdn_loop @justin-mp @penguingao @alyssawilk -# compressor used by http compression filters -/*/extensions/filters/http/common/compressor @gsagula @rojkov @dio -/*/extensions/filters/http/compressor @rojkov @dio # external processing filter /*/extensions/filters/http/ext_proc @gbrail @snowp @pradeepcrao @chaoqin-li1123 /*/extensions/filters/common/mutation_rules @gbrail @snowp @pradeepcrao @chaoqin-li1123 @@ -63,7 +56,7 @@ extensions/filters/common/original_src @snowp @klarose # tracers.xray extension /*/extensions/tracers/xray @abaptiste @suniltheta @mattklein123 # tracers.skywalking extension -/*/extensions/tracers/skywalking @wbpcode @dio @lizan @Shikugawa +/*/extensions/tracers/skywalking @wbpcode @lizan @Shikugawa # quic extension /*/extensions/quic/ @alyssawilk @danzh2010 @mattklein123 @mpwarres @wu-bin @ggreenway # zookeeper_proxy extension @@ -71,6 +64,9 @@ extensions/filters/common/original_src @snowp @klarose # redis cluster extension /*/extensions/clusters/redis @msukalski @henryyyang @mattklein123 @weisisea /*/extensions/common/redis @msukalski @henryyyang @mattklein123 @weisisea +/*/extensions/health_checkers/redis @weisisea @mattklein123 +/*/extensions/filters/network/redis_proxy @weisisea @mattklein123 +/*/extensions/filters/network/common/redis @weisisea @mattklein123 # dynamic forward proxy /*/extensions/clusters/dynamic_forward_proxy @mattklein123 @alyssawilk /*/extensions/common/dynamic_forward_proxy @mattklein123 @alyssawilk @@ -78,6 +74,8 @@ extensions/filters/common/original_src @snowp @klarose /*/extensions/filters/http/composite @snowp @mattklein123 # omit_canary_hosts retry predicate /*/extensions/retry/host/omit_canary_hosts @sriduth @snowp +# previous hosts +/*/extensions/retry/host/previous_hosts @snowp @alyssawilk # HTTP caching extension /*/extensions/filters/http/cache @toddmgreer @jmarantz @penguingao @mpwarres @capoferro # aws_iam grpc credentials @@ -107,7 +105,6 @@ extensions/filters/common/original_src @snowp @klarose /*/extensions/common/matcher @mattklein123 @yangminzhu /*/extensions/common/proxy_protocol @alyssawilk @wez470 /*/extensions/filters/http/grpc_http1_bridge @snowp @jose -/*/extensions/filters/http/gzip @gsagula @dio /*/extensions/filters/http/fault @rshriram @alyssawilk /*/extensions/filters/common/fault @rshriram @alyssawilk /*/extensions/filters/http/grpc_json_transcoder @qiwzhang @lizan @@ -142,14 +139,11 @@ extensions/filters/common/original_src @snowp @klarose # support for on-demand VHDS requests /*/extensions/filters/http/on_demand @dmitri-d @htuch @lambdai /*/extensions/filters/network/connection_limit @mattklein123 @alyssawilk @rojkov @delong-coder -/*/extensions/filters/network/local_ratelimit @mattklein123 @junr03 /*/extensions/filters/http/aws_request_signing @rgs1 @derekargueta @mattklein123 @marcomagdy @tonya11en /*/extensions/filters/http/aws_lambda @mattklein123 @marcomagdy @lavignes @tonya11en +/*/extensions/filters/http/buffer @alyssawilk @mattklein123 +/*/extensions/transport_sockets/raw_buffer @alyssawilk @mattklein123 # Compression -/*/extensions/compression/common @junr03 @rojkov -/*/extensions/compression/gzip @junr03 @rojkov -/*/extensions/compression/brotli @junr03 @rojkov -/*/extensions/filters/http/decompressor @rojkov @dio # Watchdog Extensions /*/extensions/watchdog/profile_action @kbaichoo @antoniovicente # Core upstream code @@ -158,12 +152,10 @@ extensions/upstreams/tcp @alyssawilk @ggreenway @mattklein123 # OAuth2 extensions/filters/http/oauth2 @rgs1 @derekargueta @snowp # HTTP Local Rate Limit -/*/extensions/filters/http/local_ratelimit @rgs1 @mattklein123 -/*/extensions/filters/common/local_ratelimit @mattklein123 @rgs1 +/*/extensions/filters/http/local_ratelimit @rgs1 @mattklein123 @wbpcode +/*/extensions/filters/common/local_ratelimit @mattklein123 @rgs1 @wbpcode # HTTP Kill Request /*/extensions/filters/http/kill_request @qqustc @htuch -# HTTP Stateful Session -/*/extensions/filters/http/stateful_session @wbpcode @dio # Rate limit expression descriptor /*/extensions/rate_limit_descriptors/expr @kyessenov @lizan # hash input matcher @@ -181,10 +173,6 @@ extensions/filters/http/oauth2 @rgs1 @derekargueta @snowp /*/extensions/filters/common/ratelimit @esmet @mattklein123 /*/extensions/filters/http/ratelimit @esmet @mattklein123 /*/extensions/filters/network/ratelimit @esmet @mattklein123 -# External Authorization -/*/extensions/filters/common/ext_authz @esmet @gsagula @dio -/*/extensions/filters/http/ext_authz @esmet @gsagula @dio -/*/extensions/filters/network/ext_authz @esmet @gsagula @dio # HTTP Bandwidth Limit /*/extensions/filters/http/bandwidth_limit @nitgoy @mattklein123 @yanavlasov @tonya11en # Original IP detection @@ -194,18 +182,85 @@ extensions/filters/http/oauth2 @rgs1 @derekargueta @snowp /*/extensions/filters/http/set_metadata @aguinet @snowp # Formatters /*/extensions/formatter/metadata @cpakulski @lizan -/*/extensions/formatter/req_without_query @dio @tsaarni # IP address input matcher /*/extensions/matching/input_matchers/ip @aguinet @snowp # Key Value store /*/extensions/key_value @alyssawilk @ryantheoptimist -# Stateful session -/*/extensions/http/stateful_session/cookie @wbpcode @dio -# DNS Resolver -/*/extensions/network/dns_resolver/cares @junr03 @yanavlasov -/*/extensions/network/dns_resolver/apple @junr03 @yanavlasov # Config Validators /*/extensions/config/validators/minimum_clusters @adisuissa @htuch +# DNS resolution +/*/extensions/network/dns_resolver/cares @yanavlasov @mattklein123 +/*/extensions/network/dns_resolver/apple @yanavlasov @mattklein123 +# compression code +/*/extensions/filters/http/decompressor @rojkov @kbaichoo +/*/extensions/filters/http/gzip @gsagula @kbaichoo +/*/extensions/filters/http/common/compressor @gsagula @rojkov @kbaichoo +/*/extensions/filters/http/compressor @rojkov @kbaichoo +/*/extensions/compression/brotli @rojkov @kbaichoo +/*/extensions/compression/common @kbaichoo @rojkov +/*/extensions/compression/gzip/decompressor @rojkov @kbaichoo +/*/extensions/compression/gzip/compressor @rojkov @kbaichoo +/*/extensions/compression/gzip/common @rojkov @kbaichoo +# cel +/*/extensions/access_loggers/filters/cel @kyessenov @douglas-reid @adisuissa +# health cehck +/*/extensions/filters/http/health_check @mattklein123 @adisuissa +# lua +/*/extensions/filters/http/lua @mattklein123 @wbpcode +/*/extensions/filters/common/lua @mattklein123 @wbpcode +# rbac +/*/extensions/filters/network/rbac @yangminzhu @yanavlasov +/*/extensions/filters/http/rbac @yangminzhu @yanavlasov +/*/extensions/filters/common/rbac @yangminzhu @yanavlasov +# tap +/*/extensions/filters/http/tap @mattklein123 @daixiang0 +/*/extensions/common/tap @mattklein123 @daixiang0 +/*/extensions/transport_sockets/tap @mattklein123 @daixiang0 +# local rate limit +/*/extensions/filters/network/local_ratelimit @mattklein123 @wbpcode +# proxy protocol +/*/extensions/filters/listener/proxy_protocol @ggreenway @soulxu @rgs1 +# access loggers +/*/extensions/access_loggers/grpc @wbpcode @cpakulski @rgs1 @giantcroc @gyohuangxin +# stats +/*/extensions/stat_sinks/statsd @mattklein123 @suniltheta +/*/extensions/stat_sinks/common @mattklein123 @suniltheta +/*/extensions/stat_sinks/common/statsd @mattklein123 @suniltheta +# access loggers +/*/extensions/access_loggers/file @wbpcode @cpakulski @rgs1 @giantcroc +# Stateful session +/*/extensions/http/stateful_session/cookie @wbpcode @cpakulski +/*/extensions/filters/http/stateful_session @wbpcode @cpakulski +# tracers +/*/extensions/tracers/zipkin @wbpcode @Shikugawa @suniltheta +/*/extensions/tracers/dynamic_ot @wbpcode @Shikugawa +/*/extensions/tracers/opencensus @wbpcode @Shikugawa +/*/extensions/tracers/common @wbpcode @Shikugawa +/*/extensions/tracers/common/ot @wbpcode @Shikugawa +# ext_authz +/*/extensions/filters/common/ext_authz @esmet @gsagula @pradeepcrao @ggreenway +/*/extensions/filters/http/ext_authz @esmet @gsagula @pradeepcrao @ggreenway +/*/extensions/filters/network/ext_authz @esmet @gsagula @pradeepcrao @ggreenway +# original dst +/*/extensions/filters/listener/original_dst @kyessenov @lambdai @lizan +# mongo proxy +/*/extensions/filters/network/mongo_proxy @mythra @giantcroc @mattklein123 +# formatter +/*/extensions/formatter/req_without_query @alyssawilk @tsaarni @rgs1 @giantcroc +# IP tagging +/*/extensions/filters/http/ip_tagging @rgs1 @alyssawilk +# cors +/*/extensions/filters/http/cors @wbpcode @daixiang0 + +# Intentionally exempt (treated as core code) +/*/extensions/filters/common @UNOWNED @UNOWNED +/*/extensions/filters/http/common @UNOWNED @UNOWNED +/*/extensions/filters/network/common @UNOWNED @UNOWNED + +# To be moved to Contrib +/*/extensions/filters/http/dynamo @UNOWNED @UNOWNED +/*/extensions/tracers/lightstep @UNOWNED @UNOWNED +/*/extensions/filters/network/client_ssl_auth @UNOWNED @UNOWNED # Contrib /contrib/exe/ @mattklein123 @lizan @@ -218,5 +273,5 @@ extensions/filters/http/oauth2 @rgs1 @derekargueta @snowp /contrib/sxg/ @cpapazian @rgs1 @alyssawilk /contrib/sip_proxy/ @durd07 @nearbyfly @dorisd0102 /contrib/cryptomb/ @rojkov @ipuustin -/contrib/vcl/ @florincoras @rojkov +/contrib/vcl/ @florincoras @rojkov @KfreeZ /contrib/hyperscan/ @rojkov @zhxie diff --git a/tools/code_format/check_format.py b/tools/code_format/check_format.py index 6bbb204f0a37..dd76100151e1 100755 --- a/tools/code_format/check_format.py +++ b/tools/code_format/check_format.py @@ -206,53 +206,6 @@ ".Times(1).WillRepeatedly": ".WillOnce", } -UNOWNED_EXTENSIONS = { - "extensions/filters/http/buffer", - "extensions/filters/http/rbac", - "extensions/filters/http/ip_tagging", - "extensions/filters/http/tap", - "extensions/filters/http/health_check", - "extensions/filters/http/cors", - "extensions/filters/http/dynamo", - "extensions/filters/http/lua", - "extensions/filters/http/common", - "extensions/filters/common", - "extensions/filters/common/rbac", - "extensions/filters/common/lua", - "extensions/filters/listener/original_dst", - "extensions/filters/listener/proxy_protocol", - "extensions/stat_sinks/statsd", - "extensions/stat_sinks/common", - "extensions/stat_sinks/common/statsd", - "extensions/health_checkers/redis", - "extensions/access_loggers/grpc", - "extensions/access_loggers/file", - "extensions/common/tap", - "extensions/transport_sockets/raw_buffer", - "extensions/transport_sockets/tap", - "extensions/tracers/zipkin", - "extensions/tracers/dynamic_ot", - "extensions/tracers/opencensus", - "extensions/tracers/lightstep", - "extensions/tracers/common", - "extensions/tracers/common/ot", - "extensions/retry/host/previous_hosts", - "extensions/filters/network/client_ssl_auth", - "extensions/filters/network/rbac", - "extensions/filters/network/tcp_proxy", - "extensions/filters/network/echo", - "extensions/filters/network/redis_proxy", - "extensions/filters/network/kafka", - "extensions/filters/network/kafka/broker", - "extensions/filters/network/kafka/mesh", - "extensions/filters/network/kafka/mesh/command_handlers", - "extensions/filters/network/kafka/protocol", - "extensions/filters/network/kafka/serialization", - "extensions/filters/network/mongo_proxy", - "extensions/filters/network/common", - "extensions/filters/network/common/redis", -} - UNSORTED_FLAGS = { "envoy.reloadable_features.activate_timers_next_event_loop", "envoy.reloadable_features.grpc_json_transcoder_adhere_to_buffer_limits", @@ -1033,7 +986,7 @@ def check_owners(self, dir_name, owned_directories, error_messages): for owned in owned_directories: if owned.startswith(dir_name) or dir_name.startswith(owned): found = True - if not found and dir_name not in UNOWNED_EXTENSIONS: + if not found: error_messages.append( "New directory %s appears to not have owners in CODEOWNERS" % dir_name) @@ -1196,32 +1149,24 @@ def check_visibility(error_messages): if (e.returncode != 0 and e.returncode != 1): error_messages.append("Failed to check visibility with command %s" % command) + def get_owners(): + with open('./OWNERS.md') as f: + EXTENSIONS_CODEOWNERS_REGEX = re.compile(r'.*github.com.(.*)\)\)') + maintainers = ["@UNOWNED"] + for line in f: + if "Senior extension maintainers" in line: + return maintainers + m = EXTENSIONS_CODEOWNERS_REGEX.search(line) + if m is not None: + maintainers.append("@" + m.group(1).lower()) + # Returns the list of directories with owners listed in CODEOWNERS. May append errors to # error_messages. def owned_directories(error_messages): owned = [] - maintainers = [ - '@mattklein123', - '@htuch', - '@alyssawilk', - '@zuercher', - '@lizan', - '@snowp', - '@yanavlasov', - '@junr03', - '@dio', - '@jmarantz', - '@antoniovicente', - '@ggreenway', - '@phlax', - '@wrowe', - '@rojkov', - '@RyanTheOptimist', - '@adisuissa', - '@KBaichoo', - ] - try: + maintainers = get_owners() + with open('./CODEOWNERS') as f: for line in f: # If this line is of the form "extensions/... @owner1 @owner2" capture the directory