# Important!
# Before adding yourself please make sure that your userid is listed at:
# https://github.com/orgs/apache/teams/hive-committers/members
# non-members can't be assigned for reviews - and the plugin will stop with an error!
---
# thrift changes
'**/*.thrift':
  - kgyrtkirk
  - klcopp
# parser changes
'**/*.g':
  - kgyrtkirk
# metastore database changes
'**/package.jdo':
  - kgyrtkirk
# these will match on various scheduled query
'**/schq/**':
  - kgyrtkirk
'**/*Scheduled*':
  - kgyrtkirk
# these will match sketches related stuff
'**/*[sS]ketches*':
  - kgyrtkirk
# Build system
'Jenkinsfile':
  - kgyrtkirk
'.github/**':
  - kgyrtkirk
# ddl changes
'**/ddl/**':
  - miklosgergely
# driver related changes
'**/ql/*@(Driver|Compiler|Executor)*.java':
  - miklosgergely
# schematool changes
'**/schematool/**':
  - miklosgergely
# metatool changes
'**/metatool/**':
  - miklosgergely
'**/tez/**/*.java':
  - abstractdog
'**/*Tez*java':
  - abstractdog
'**/*TopNKey*java':
  - kasakrisz
'**/*CardinalityPreserving*java':
  - kasakrisz
# llap stuff
'**/*Llap*java':
  - pgaref

