# 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 @ruthra-kumar
erpnext/assets/                 @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
erpnext/loan_management/        @nextchamp-saqib @deepeshgarg007
erpnext/regional                @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
erpnext/selling                 @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
erpnext/support/                @nextchamp-saqib @deepeshgarg007
pos*                            @nextchamp-saqib

erpnext/buying/                 @marination @rohitwaghchaure @s-aga-r
erpnext/e_commerce/             @marination
erpnext/maintenance/            @marination @rohitwaghchaure @s-aga-r
erpnext/manufacturing/          @marination @rohitwaghchaure @s-aga-r
erpnext/portal/                 @marination
erpnext/quality_management/     @marination @rohitwaghchaure @s-aga-r
erpnext/shopping_cart/          @marination
erpnext/stock/                  @marination @rohitwaghchaure @s-aga-r

erpnext/crm/                    @NagariaHussain 
erpnext/education/              @rutwikhdev 
erpnext/projects/               @ruchamahabal

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

.github/                        @ankush
pyproject.toml                  @gavindsouza @ankush
