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
544
in the current tree
Bus Factor
1
Igor Sysoev is primary owner of 321 of 544 files
Single-Owner Files
56
10.3% of tracked files
Contributors
142
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
.github/workflows/check-whitespace.yamlAndrew Clayton5
src/event/quic/ngx_event_quic_socket.hVladimir Homutov5
docs/xml/change_log_conf.xmlIgor Sysoev4
conf/koi-winIgor Sysoev4
src/http/v3/ngx_http_v3_table.hRoman Arutyunyan3
src/http/v3/ngx_http_v3_uni.hRoman Arutyunyan3
src/stream/ngx_stream_pass_module.cRoman Arutyunyan3
src/os/win32/nginx.icoIgor Sysoev3
src/event/modules/ngx_win32_poll_module.cMaxim Dounin2
src/core/ngx_sha1.cMaxim Dounin2
Table: all 56 single-owner files
FileSole ownerCommits
.github/workflows/check-whitespace.yamlAndrew Clayton5
src/event/quic/ngx_event_quic_socket.hVladimir Homutov5
docs/xml/change_log_conf.xmlIgor Sysoev4
conf/koi-winIgor Sysoev4
src/http/v3/ngx_http_v3_table.hRoman Arutyunyan3
src/http/v3/ngx_http_v3_uni.hRoman Arutyunyan3
src/stream/ngx_stream_pass_module.cRoman Arutyunyan3
src/os/win32/nginx.icoIgor Sysoev3
src/event/modules/ngx_win32_poll_module.cMaxim Dounin2
src/core/ngx_sha1.cMaxim Dounin2
.github/workflows/check-commit-message.yamlAndrew Clayton2
.github/workflows/check-version-bump.yamlAndrew Clayton2
src/http/modules/ngx_http_mirror_module.cRoman Arutyunyan2
src/core/ngx_rwlock.hRuslan Ermilov2
src/os/win32/nginx_icon16.xpmIgor Sysoev2
conf/koi-utfIgor Sysoev2
src/mail/ngx_mail_realip_module.cMaxim Dounin1
src/os/unix/ngx_dlopen.cMaxim Dounin1
src/os/unix/ngx_dlopen.hMaxim Dounin1
src/os/win32/ngx_dlopen.cMaxim Dounin1
src/os/win32/ngx_dlopen.hMaxim Dounin1
src/core/ngx_parse_time.hMaxim Dounin1
src/http/ngx_http_priority.hAndrew Clayton1
.github/scripts/commit-msg-check.plAndrew Clayton1
.github/workflows/new-issue-welcome.yamlAndrew Clayton1
src/os/unix/ngx_udp_send.cRoman Arutyunyan1
.github/workflows/windows-zip.ymlSai Krishna Kumar Reddy YADAMAKANTI1
src/event/quic/ngx_event_quic_bpf.hSai Krishna Kumar Reddy YADAMAKANTI1
src/core/ngx_siphash.cEugene Grebenschikov1
src/core/ngx_siphash.hEugene Grebenschikov1
src/core/ngx_data.cHenry Yuan1
src/core/ngx_data.hHenry Yuan1
src/core/ngx_json.hHenry Yuan1
src/stream/ngx_stream_set_module.cPavel Pautov1
src/event/quic/bpf/bpfgen.shVladimir Homutov1
src/core/ngx_bpf.hVladimir Homutov1
.github/DISCUSSION_TEMPLATE/general.ymlAlessandro Fael Garcia1
.github/DISCUSSION_TEMPLATE/ideas.ymlAlessandro Fael Garcia1
.github/DISCUSSION_TEMPLATE/q-a.ymlAlessandro Fael Garcia1
.github/ISSUE_TEMPLATE/config.ymlAlessandro Fael Garcia1
.github/ISSUE_TEMPLATE/feature_request.ymlAlessandro Fael Garcia1
SUPPORT.mdAlessandro Fael Garcia1
.gitignoreOrgad Shaneh1
CODE_OF_CONDUCT.mdMaryna Herasimovich1
src/core/ngx_thread_pool.hValentin Bartenev1
src/os/unix/ngx_thread_id.cValentin Bartenev1
src/os/win32/nginx_icon48.xpmIgor Sysoev1
src/os/win32/nginx_icon32.xpmIgor Sysoev1
contrib/unicode2nginx/koi-utfIgor Sysoev1
contrib/unicode2nginx/win-utfIgor Sysoev1
src/http/modules/perl/typemapIgor Sysoev1
contrib/geo2nginx.plIgor Sysoev1
docs/dtd/change_log_conf.dtdIgor Sysoev1
contrib/vim/ftplugin/nginx.vimArmin Grodon1
contrib/vim/ftdetect/nginx.vimEvan Miller1
contrib/vim/indent/nginx.vimEvan Miller1

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
Igor Sysoev32112360
Vladimir Homutov413153
Maxim Dounin388318
Roman Arutyunyan375193
Ruslan Ermilov201268
Sergey Kandaurov180232
Valentin Bartenev132166
Maxim Konovalov80330
Andrew Clayton7646
Alessandro Fael Garcia7611
Roman Semenov4012
Henry Yuan437
Sai Krishna Kumar Reddy YADAMAKANTI2218
Eugene Grebenschikov2210
Konstantin Pavlov207
Maryna Herasimovich214
Evan Miller223
Piotr Sikora1079
Vadim Zhestikov1060
Ava Hahn109
Zhidao HONG109
Pavel Pautov118
Orgad Shaneh116
Evgeny Shirykalov105
Gena Makhomed103

Showing top 25 of 142 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
src/http/ngx_http_upstream.c27Igor Sysoev43.2%
src/event/ngx_event_openssl.c24Maxim Dounin33.4%
src/http/modules/ngx_http_proxy_module.c22Igor Sysoev47.4%
src/http/modules/ngx_http_ssl_module.c18Igor Sysoev35.6%
src/http/modules/ngx_http_uwsgi_module.c18Maxim Dounin34.0%
src/http/ngx_http_core_module.c17Igor Sysoev70.9%
src/http/modules/ngx_http_fastcgi_module.c16Igor Sysoev58.8%
auto/options16Igor Sysoev60.6%
auto/modules15Igor Sysoev46.0%
src/core/ngx_resolver.c15Igor Sysoev33.3%
src/event/ngx_event_openssl.h15Igor Sysoev30.0%
src/http/ngx_http_upstream.h15Igor Sysoev42.7%
src/http/ngx_http_request.c14Igor Sysoev58.9%
src/http/ngx_http.c14Igor Sysoev75.4%
src/os/unix/ngx_process_cycle.c14Igor Sysoev67.9%
src/core/ngx_connection.c14Igor Sysoev52.9%
src/http/ngx_http_variables.c14Igor Sysoev59.2%
src/http/modules/ngx_http_ssi_filter_module.c14Igor Sysoev73.3%
src/http/modules/ngx_http_scgi_module.c14Maxim Dounin38.9%
src/http/modules/ngx_http_grpc_module.c14Maxim Dounin40.0%