Skip to content

Commit

Permalink
docs: updating Codeowners (#20512)
Browse files Browse the repository at this point in the history
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 <alyssar@chromium.org>
  • Loading branch information
alyssawilk committed Apr 5, 2022
1 parent adc7c80 commit fa385b2
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 98 deletions.
113 changes: 84 additions & 29 deletions CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -63,21 +56,26 @@ 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
/*/extensions/filters/network/zookeeper_proxy @rgs1 @snowp
# 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
/*/extensions/filters/http/dynamic_forward_proxy @mattklein123 @alyssawilk
/*/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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
83 changes: 14 additions & 69 deletions tools/code_format/check_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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)

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit fa385b2

Please sign in to comment.