Ownership is measured by how many commits each author made to each file. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated.
Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.
| File | Sole owner | Commits |
|---|---|---|
| src/http/modules/proxy/ngx_http_proxy_handler.c | Igor Sysoev | 93 |
| src/http/ngx_http_write_filter.c | Igor Sysoev | 73 |
| src/http/ngx_http_header_filter.c | Igor Sysoev | 67 |
| src/http/ngx_http_event.c | Igor Sysoev | 66 |
| src/http/modules/ngx_http_index_handler.c | Igor Sysoev | 62 |
| src/http/modules/ngx_http_static_handler.c | Igor Sysoev | 61 |
| src/http/modules/ngx_http_gzip_filter.c | Igor Sysoev | 61 |
| src/http/modules/proxy/ngx_http_proxy_upstream.c | Igor Sysoev | 58 |
| src/http/modules/proxy/ngx_http_proxy_handler.h | Igor Sysoev | 54 |
| src/http/ngx_http_output_filter.c | Igor Sysoev | 54 |
| src/imap/ngx_imap_handler.c | Igor Sysoev | 39 |
| src/http/modules/ngx_http_range_filter.c | Igor Sysoev | 34 |
| src/core/ngx_hunk.h | Igor Sysoev | 34 |
| src/http/ngx_http_log_handler.c | Igor Sysoev | 32 |
| auto/cc | Igor Sysoev | 31 |
| src/http/ngx_http_cache.c | Igor Sysoev | 30 |
| src/core/ngx_modules.c | Igor Sysoev | 27 |
| src/core/ngx_hunk.c | Igor Sysoev | 27 |
| src/imap/ngx_imap_auth_http_module.c | Igor Sysoev | 25 |
| src/imap/ngx_imap.h | Igor Sysoev | 24 |
| src/http/modules/ngx_http_charset_filter.c | Igor Sysoev | 23 |
| auto/os/features | Igor Sysoev | 22 |
| src/http/modules/ngx_http_ssi_filter.c | Igor Sysoev | 22 |
| src/http/modules/ngx_http_chunked_filter.c | Igor Sysoev | 22 |
| src/os/win32/ngx_types.h | Igor Sysoev | 21 |
| src/http/modules/proxy/ngx_http_proxy_cache.c | Igor Sysoev | 20 |
| src/event/ngx_event_proxy.c | Igor Sysoev | 19 |
| src/core/ngx_alloc.c | Igor Sysoev | 18 |
| src/imap/ngx_imap_core_module.c | Igor Sysoev | 17 |
| src/imap/ngx_imap_proxy_module.c | Igor Sysoev | 16 |
| src/http/modules/proxy/ngx_http_proxy_header.c | Igor Sysoev | 16 |
| src/core/ngx_garbage_collector.c | Igor Sysoev | 15 |
| src/imap/ngx_imap_parse.c | Igor Sysoev | 15 |
| src/http/modules/ngx_http_rewrite_handler.c | Igor Sysoev | 15 |
| src/http/modules/proxy/ngx_http_event_proxy_handler.c | Igor Sysoev | 15 |
| src/http/modules/ngx_http_event_proxy_handler.c | Igor Sysoev | 15 |
| src/http/modules/ngx_http_userid_filter.c | Igor Sysoev | 14 |
| src/core/ngx_atomic.h | Igor Sysoev | 14 |
| src/event/modules/ngx_kqueue_module.h | Igor Sysoev | 13 |
| src/os/unix/ngx_types.h | Igor Sysoev | 13 |
| src/http/ngx_http_core.c | Igor Sysoev | 13 |
| src/imap/ngx_imap_proxy.c | Igor Sysoev | 12 |
| src/http/modules/ngx_http_headers_filter.c | Igor Sysoev | 12 |
| auto/func | Igor Sysoev | 12 |
| src/http/modules/ngx_http_not_modified_filter.c | Igor Sysoev | 12 |
| src/http/ngx_http_headers.c | Igor Sysoev | 12 |
| src/http/modules/ngx_http_log_handler.c | Igor Sysoev | 12 |
| src/event/ngx_event_proxy.h | Igor Sysoev | 12 |
| src/http/ngx_http_config.c | Igor Sysoev | 11 |
| auto/fmt/fmt | Igor Sysoev | 11 |
Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.
| Author | Files owned | Solely owned | Files touched |
|---|---|---|---|
| Igor Sysoev | 542 | 194 | 593 |
| Vladimir Homutov | 47 | 4 | 164 |
| Roman Arutyunyan | 45 | 6 | 212 |
| Maxim Dounin | 38 | 8 | 336 |
| Ruslan Ermilov | 37 | 6 | 309 |
| Valentin Bartenev | 20 | 5 | 179 |
| Sergey Kandaurov | 17 | 0 | 250 |
| Maxim Konovalov | 9 | 0 | 366 |
| Andrew Clayton | 8 | 7 | 37 |
| Alessandro Fael Garcia | 7 | 6 | 13 |
| Roman Semenov | 5 | 5 | 12 |
| Henry Yuan | 4 | 4 | 7 |
| Maryna Herasimovich | 4 | 1 | 6 |
| Piotr Sikora | 2 | 0 | 84 |
| Eugene Grebenschikov | 2 | 2 | 9 |
| Konstantin Pavlov | 2 | 0 | 7 |
| Evan Miller | 2 | 2 | 3 |
| Zhidao HONG | 1 | 0 | 9 |
| Pavel Pautov | 1 | 1 | 8 |
| Orgad Shaneh | 1 | 1 | 6 |
| Gena Makhomed | 1 | 0 | 3 |
| Michael Vernik | 1 | 0 | 3 |
| jzebor-at-f5 | 1 | 0 | 1 |
| xuruidong | 1 | 0 | 1 |
| tzssangglass | 1 | 0 | 1 |
Files touched by the most people — shared code where changes are most likely to need coordination.
| File | Contributors | Primary owner | Owner share |
|---|---|---|---|
| src/http/ngx_http_upstream.c | 25 | Igor Sysoev | 43.6% |
| src/event/ngx_event_openssl.c | 22 | Maxim Dounin | 33.4% |
| src/http/modules/ngx_http_proxy_module.c | 21 | Igor Sysoev | 47.8% |
| src/http/modules/ngx_http_ssl_module.c | 17 | Igor Sysoev | 36.1% |
| src/http/modules/ngx_http_uwsgi_module.c | 17 | Maxim Dounin | 34.3% |
| src/http/ngx_http_core_module.c | 16 | Igor Sysoev | 71.5% |
| src/http/modules/ngx_http_fastcgi_module.c | 15 | Igor Sysoev | 59.1% |
| src/http/ngx_http_upstream.h | 15 | Igor Sysoev | 42.7% |
| src/event/ngx_event_openssl.h | 15 | Igor Sysoev | 30.0% |
| src/http/ngx_http_variables.c | 14 | Igor Sysoev | 59.2% |
| src/core/ngx_resolver.c | 14 | Igor Sysoev | 33.6% |
| src/http/modules/ngx_http_ssi_filter_module.c | 14 | Igor Sysoev | 73.3% |
| src/http/ngx_http_request.c | 13 | Igor Sysoev | 59.0% |
| src/http/ngx_http.c | 13 | Igor Sysoev | 75.8% |
| auto/options | 13 | Igor Sysoev | 61.7% |
| src/http/modules/ngx_http_scgi_module.c | 13 | Maxim Dounin | 39.3% |
| src/mail/ngx_mail_ssl_module.c | 13 | Maxim Dounin | 30.9% |
| src/http/modules/ngx_http_grpc_module.c | 13 | Maxim Dounin | 40.7% |
| src/core/nginx.h | 12 | Igor Sysoev | 66.4% |
| auto/modules | 12 | Igor Sysoev | 46.8% |