# Each line is a file pattern followed by one or more owners.

# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,

erpnext/accounts/               @nextchamp-saqib @deepeshgarg007
erpnext/assets/                 @nextchamp-saqib @deepeshgarg007
erpnext/erpnext_integrations/   @nextchamp-saqib
erpnext/loan_management/        @nextchamp-saqib @deepeshgarg007
erpnext/regional                @nextchamp-saqib @deepeshgarg007
erpnext/selling                 @nextchamp-saqib @deepeshgarg007
erpnext/support/                @nextchamp-saqib @deepeshgarg007
pos*                            @nextchamp-saqib

erpnext/buying/                 @marination @rohitwaghchaure @ankush
erpnext/e_commerce/             @marination
erpnext/maintenance/            @marination @rohitwaghchaure
erpnext/manufacturing/          @marination @rohitwaghchaure @ankush
erpnext/portal/                 @marination
erpnext/quality_management/     @marination @rohitwaghchaure
erpnext/shopping_cart/          @marination
erpnext/stock/                  @marination @rohitwaghchaure @ankush

erpnext/crm/                    @ruchamahabal @pateljannat
erpnext/education/              @ruchamahabal @pateljannat
erpnext/healthcare/             @ruchamahabal @pateljannat @chillaranand
erpnext/hr/                     @ruchamahabal @pateljannat
erpnext/non_profit/             @ruchamahabal
erpnext/payroll                 @ruchamahabal @pateljannat
erpnext/projects/               @ruchamahabal @pateljannat

erpnext/controllers             @deepeshgarg007 @nextchamp-saqib @rohitwaghchaure @marination

.github/                        @surajshetty3416 @ankush
requirements.txt                @gavindsouza
