Code Ownership

Ownership is measured by how many commits each author made to each file in the current tree. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated. The bus factor is the smallest number of people who are, between them, primary owner of more than half of the files.

Files Tracked
1,059
in the current tree
Bus Factor
1
Miek Gieben is primary owner of 538 of 1,059 files
Single-Owner Files
296
28.0% of tracked files
Contributors
489
authors who changed files

Bus factor risk — single-owner files

Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.

FileSole ownerCommits
plugin/pkg/fuzz/do.goMiek Gieben8
plugin/file/glue_test.goMiek Gieben6
notes/coredns-1.7.1.mdMiek Gieben5
plugin/file/ds_test.goMiek Gieben5
plugin/kubernetes/autopath_test.goVille Vesilehto4
plugin/pkg/rand/rand_test.goVille Vesilehto4
plugin/secondary/catalog_test.gohouyuwushang4
plugin/sign/resign_test.goMiek Gieben4
plugin/pkg/log/plugin_test.goMiek Gieben4
plugin/pprof/pprof_test.goVille Vesilehto3
Table: the 100 most-changed of 296 single-owner files
FileSole ownerCommits
plugin/pkg/fuzz/do.goMiek Gieben8
plugin/file/glue_test.goMiek Gieben6
notes/coredns-1.7.1.mdMiek Gieben5
plugin/file/ds_test.goMiek Gieben5
plugin/kubernetes/autopath_test.goVille Vesilehto4
plugin/pkg/rand/rand_test.goVille Vesilehto4
plugin/secondary/catalog_test.gohouyuwushang4
plugin/sign/resign_test.goMiek Gieben4
plugin/pkg/log/plugin_test.goMiek Gieben4
plugin/pprof/pprof_test.goVille Vesilehto3
notes/coredns-1.8.7.mdYong Tang3
notes/coredns-1.10.1.mdChris O'Haver3
notes/coredns-1.6.8.mdMiek Gieben3
notes/coredns-1.6.0.mdMiek Gieben3
plugin/pkg/nonwriter/nonwriter.goMiek Gieben3
.github/workflows/verify-make-gen.ymlVille Vesilehto2
man/coredns-multisocket.7Ville Vesilehto2
man/coredns-quic.7Ville Vesilehto2
plugin/etcd/ttl_test.goVille Vesilehto2
core/dnsserver/example_test.gohouyuwushang2
notes/coredns-1.14.4.mdYong Tang2
notes/coredns-1.14.1.mdYong Tang2
notes/coredns-1.13.2.mdYong Tang2
notes/coredns-1.12.3.mdYong Tang2
plugin/local/setup_test.goImmanuel Tikhonov2
plugin/geoip/asn.goEric Case2
plugin/nomad/README.mdOlli Janatuinen2
plugin/nomad/setup_test.goOlli Janatuinen2
.dreck.yamlMiek Gieben2
.github/ISSUE_TEMPLATE/question.mdMiek Gieben2
notes/coredns-1.8.2.mdMiek Gieben2
plugin/pkg/trace/trace.goMiek Gieben2
plugin/etcd/msg/type_test.goMiek Gieben2
plugin/register.goMiek Gieben2
notes/coredns-1.6.7.mdMiek Gieben2
notes/coredns-005.mdMiek Gieben2
plugin/file/tree/walk.goMiek Gieben2
notes/coredns-1.6.5.mdMiek Gieben2
test/doc.goMiek Gieben2
notes/coredns-1.6.3.mdMiek Gieben2
plugin/cancel/cancel_test.goMiek Gieben2
plugin/done.goMiek Gieben2
plugin/file/tree/all.goMiek Gieben2
plugin/file/dname.goMiek Gieben2
plugin/file/nsec3_test.goMiek Gieben2
plugin/pkg/rcode/rcode.goMiek Gieben2
plugin/pkg/up/up_test.goMiek Gieben2
plugin/dnssec/metrics.goZou Nengren2
plugin/kubernetes/object/endpoint_test.goVille Vesilehto1
plugin/pkg/upstream/upstream_test.goVille Vesilehto1
.gitattributesVille Vesilehto1
plugin/pkg/dnsutil/message.goVille Vesilehto1
plugin/pkg/dnsutil/message_test.goVille Vesilehto1
core/dnsserver/tsig_test.goVille Vesilehto1
man/coredns-grpc_server.7Ville Vesilehto1
man/coredns-header.7Ville Vesilehto1
man/coredns-minimal.7Ville Vesilehto1
plugin/grpc_server/setup.goVille Vesilehto1
test/https3_test.goVille Vesilehto1
plugin/file/tree/elem_test.goVille Vesilehto1
test/bind_test.goVille Vesilehto1
plugin/view/metadata_test.goVille Vesilehto1
plugin/view/view_test.goVille Vesilehto1
plugin/grpc/fuzz.goVille Vesilehto1
plugin/grpc/policy_test.goVille Vesilehto1
plugin/auto/xfr_test.goVille Vesilehto1
plugin/auto/zone_test.goVille Vesilehto1
plugin/metrics/vars/report_test.goVille Vesilehto1
plugin/forward/startup_health_test.gohouyuwushang1
core/dnsserver/udp.gohouyuwushang1
core/dnsserver/udp_other.gohouyuwushang1
core/dnsserver/udp_test.gohouyuwushang1
core/dnsserver/udp_unix.gohouyuwushang1
core/dnsserver/udp_windows.gohouyuwushang1
core/dnsserver/udp_windows_test.gohouyuwushang1
test/view_server_ip_test.gohouyuwushang1
plugin/reload/import_test.gohouyuwushang1
plugin/rewrite/name_metadata.gohouyuwushang1
plugin/rewrite/name_metadata_test.gohouyuwushang1
plugin/cache/non_query_test.gohouyuwushang1
plugin/dynupdate/benchmark_test.gohouyuwushang1
plugin/dynupdate/dynupdate.gohouyuwushang1
plugin/dynupdate/dynupdate_test.gohouyuwushang1
plugin/dynupdate/limits.gohouyuwushang1
plugin/dynupdate/setup.gohouyuwushang1
plugin/dynupdate/store.gohouyuwushang1
plugin/dynupdate/store_test.gohouyuwushang1
plugin/dynupdate/update.gohouyuwushang1
plugin/dynupdate/zone.gohouyuwushang1
test/dynupdate_kea_test.gohouyuwushang1
test/dynupdate_persistence_test.gohouyuwushang1
test/dynupdate_test.gohouyuwushang1
plugin/forward/dot_test.gohouyuwushang1
plugin/pkg/proxy/dial_context_test.gohouyuwushang1
plugin/log/json.gohouyuwushang1
plugin/log/json_test.gohouyuwushang1
plugin/pkg/log/json.gohouyuwushang1
plugin/pkg/log/json_test.gohouyuwushang1
test/json_log_test.gohouyuwushang1
test/kubernetes_autopath_cache_test.gohouyuwushang1

Ownership by author

Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.

AuthorFiles ownedSolely ownedFiles touched
Miek Gieben538115703
Ville Vesilehto13027424
Yong Tang7923386
houyuwushang6848179
Chris O'Haver458249
rpb-ant131142
Ben Kochie124115
myohannes12425
Zou Nengren113108
Olli Janatuinen8618
Peppi-Lotta8816
Michée lengronne7511
Ondřej Benkovský60157
Qasim Sarfraz6028
Syed Azeez5344
Rich5214
xuweiwei5013
Eric Case5210
Zhizhen He4027
Sven Nebel4219
ump45nose4012
Viktor3015
llucas309
Soumya Ghosh Dastidar339
JINMEI Tatuya338

Showing top 25 of 489 contributors.

Most shared files

Files touched by the most people — shared code where changes are most likely to need coordination.

FileContributorsPrimary ownerOwner share
README.md44Miek Gieben38.1%
go.mod39Yong Tang27.6%
go.sum39Yong Tang28.3%
plugin/forward/forward.go38Miek Gieben26.3%
plugin/kubernetes/kubernetes.go34Chris O'Haver33.7%
plugin/forward/README.md34Miek Gieben27.5%
plugin/kubernetes/README.md33Miek Gieben29.1%
plugin/forward/setup.go31Miek Gieben22.9%
core/dnsserver/zdirectives.go29Miek Gieben42.6%
plugin/cache/cache.go29Miek Gieben27.4%
plugin/kubernetes/setup.go27Miek Gieben27.5%
plugin.cfg27Miek Gieben35.9%
plugin/cache/handler.go26Miek Gieben26.4%
core/dnsserver/register.go25Miek Gieben43.3%
plugin/cache/cache_test.go25Miek Gieben30.2%
plugin/forward/setup_test.go25Miek Gieben18.2%
plugin/kubernetes/controller.go24Chris O'Haver27.9%
ADOPTERS.md24John Belamaric7.4%
core/plugin/zplugin.go23Miek Gieben40.8%
plugin/cache/README.md22Chris O'Haver29.2%