# 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/                 @anandbaburajan @deepeshgarg007
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/                 @rohitwaghchaure @s-aga-r
erpnext/maintenance/            @rohitwaghchaure @s-aga-r
erpnext/manufacturing/          @rohitwaghchaure @s-aga-r
erpnext/quality_management/     @rohitwaghchaure @s-aga-r
erpnext/stock/                  @rohitwaghchaure @s-aga-r
erpnext/subcontracting          @rohitwaghchaure @s-aga-r

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

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

.github/                        @ankush
pyproject.toml                  @ankush
