# GitHub code owners
# See https://help.github.com/articles/about-codeowners/
#
# KEEP THIS FILE SORTED. Order is important. Last match takes precedence.

builder/**                              @tonistiigi
contrib/mkimage/**                      @tianon
daemon/graphdriver/devmapper/**         @rhvgoyal 
daemon/graphdriver/lcow/**              @johnstep @jhowardmsft
daemon/graphdriver/overlay/**           @dmcgowan
daemon/graphdriver/overlay2/**          @dmcgowan
daemon/graphdriver/windows/**           @johnstep @jhowardmsft
daemon/logger/awslogs/**                @samuelkarp  
hack/**                                 @tianon
hack/integration-cli-on-swarm/**        @AkihiroSuda
plugin/**                               @cpuguy83
project/**                              @thaJeztah
