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 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 |
|---|---|---|
| controller/api/destination/watcher/prometheus.go | Alex Leong | 7 |
| .github/workflows/markdown.yml | Oliver Gould | 6 |
| cli/cmd/policy.go | Alex Leong | 4 |
| cli/cmd/authz.go | Alex Leong | 4 |
| multicluster/charts/linkerd-multicluster/templates/controller/rbac.yaml | Alejandro Pedraza | 4 |
| cli/cmd/testdata/inject_emojivoto_deployment_udp.report | Andrew Seigner | 4 |
| cli/cmd/testdata/inject-filepath/expected/injected_nginx.stderr | Andrew Seigner | 4 |
| cli/cmd/testdata/inject-filepath/expected/injected_nginx_redis.stderr | Andrew Seigner | 4 |
| cli/cmd/testdata/inject-filepath/expected/injected_redis.stderr | Andrew Seigner | 4 |
| cli/cmd/testdata/inject_gettest_deployment.good.golden.stderr | Andrew Seigner | 4 |
| File | Sole owner | Commits |
|---|---|---|
| controller/api/destination/watcher/prometheus.go | Alex Leong | 7 |
| .github/workflows/markdown.yml | Oliver Gould | 6 |
| cli/cmd/policy.go | Alex Leong | 4 |
| cli/cmd/authz.go | Alex Leong | 4 |
| multicluster/charts/linkerd-multicluster/templates/controller/rbac.yaml | Alejandro Pedraza | 4 |
| cli/cmd/testdata/inject_emojivoto_deployment_udp.report | Andrew Seigner | 4 |
| cli/cmd/testdata/inject-filepath/expected/injected_nginx.stderr | Andrew Seigner | 4 |
| cli/cmd/testdata/inject-filepath/expected/injected_nginx_redis.stderr | Andrew Seigner | 4 |
| cli/cmd/testdata/inject-filepath/expected/injected_redis.stderr | Andrew Seigner | 4 |
| cli/cmd/testdata/inject_gettest_deployment.good.golden.stderr | Andrew Seigner | 4 |
| policy-controller/k8s/api/src/external_workload.rs | Matei David | 4 |
| web/app/js/components/ResourceList.test.jsx | Risha Mars | 4 |
| charts/templates.go | Alex Leong | 3 |
| multicluster/charts/templates.go | Alex Leong | 3 |
| viz/charts/templates.go | Alex Leong | 3 |
| controller/gen/client/clientset/versioned/typed/policy/v1alpha1/httproute.go | Alex Leong | 3 |
| controller/gen/client/listers/policy/v1alpha1/httproute.go | Alex Leong | 3 |
| cli/cmd/prune.go | Alex Leong | 3 |
| controller/gen/client/informers/externalversions/serviceprofile/interface.go | Alex Leong | 3 |
| multicluster/charts/linkerd-multicluster/templates/controller-clusterrole.yaml | Alejandro Pedraza | 3 |
| charts/linkerd-crds/templates/policy/http-local-ratelimit-policy.yaml | Alejandro Pedraza | 3 |
| grafana/values.yaml | Alejandro Pedraza | 3 |
| policy-controller/core/src/identity_match.rs | Oliver Gould | 3 |
| policy-controller/k8s/api/src/policy/server_authorization.rs | Oliver Gould | 3 |
| policy-controller/grpc/src/outbound/tcp.rs | Zahari Dichev | 3 |
| cli/cmd/testdata/inject_emojivoto_deployment.report | Andrew Seigner | 3 |
| cli/cmd/testdata/inject_emojivoto_deployment_controller_name.report | Andrew Seigner | 3 |
| cli/cmd/testdata/inject_emojivoto_deployment_hostNetwork_false.report | Andrew Seigner | 3 |
| cli/cmd/testdata/inject_emojivoto_pod.report | Andrew Seigner | 3 |
| cli/cmd/testdata/inject_emojivoto_statefulset.report | Andrew Seigner | 3 |
| controller/api/destination/watcher/port_publisher.go | Alex Leong | 2 |
| controller/gen/apis/link/v1alpha3/types.go | Alex Leong | 2 |
| controller/gen/apis/link/v1alpha3/zz_generated.deepcopy.go | Alex Leong | 2 |
| controller/gen/client/clientset/versioned/typed/link/v1alpha2/fake/fake_link.go | Alex Leong | 2 |
| controller/gen/client/clientset/versioned/typed/link/v1alpha2/fake/fake_link_client.go | Alex Leong | 2 |
| controller/gen/client/clientset/versioned/typed/link/v1alpha2/link.go | Alex Leong | 2 |
| controller/gen/client/clientset/versioned/typed/link/v1alpha2/link_client.go | Alex Leong | 2 |
| controller/gen/client/clientset/versioned/typed/serviceprofile/v1alpha2/fake/fake_serviceprofile_client.go | Alex Leong | 2 |
| controller/gen/client/informers/externalversions/link/v1alpha2/link.go | Alex Leong | 2 |
| controller/gen/client/informers/externalversions/policy/v1alpha1/httproute.go | Alex Leong | 2 |
| controller/gen/client/listers/link/v1alpha2/link.go | Alex Leong | 2 |
| viz/metrics-api/authz.go | Alex Leong | 2 |
| viz/cmd/prune.go | Alex Leong | 2 |
| controller/gen/client/informers/externalversions/internalinterfaces/factory_interfaces.go | Alex Leong | 2 |
| controller/proxy-injector/fake/data/pod.nativesidecar.patch.json | Alejandro Pedraza | 2 |
| multicluster/charts/linkerd-multicluster/templates/controller/pdb.yaml | Alejandro Pedraza | 2 |
| multicluster/charts/linkerd-multicluster/templates/controller/probe-svc.yaml | Alejandro Pedraza | 2 |
| test/integration/deep/dualstack/testdata/ipfamilies-policy.yml | Alejandro Pedraza | 2 |
| charts/linkerd-control-plane/templates/namespace.yaml | Alejandro Pedraza | 2 |
| charts/artifacthub-repo-stable.yml | Alejandro Pedraza | 2 |
| charts/patch/requirements.lock | Alejandro Pedraza | 2 |
| policy-test/src/admission.rs | Oliver Gould | 2 |
| policy-controller/k8s/api/src/policy/meshtls_authentication.rs | Oliver Gould | 2 |
| policy-controller/k8s/api/src/policy/network_authentication.rs | Oliver Gould | 2 |
| policy-controller/k8s/api/src/policy/authorization_policy.rs | Oliver Gould | 2 |
| policy-test/tests/admit_server_authorization.rs | Oliver Gould | 2 |
| policy-controller/core/src/network_match.rs | Oliver Gould | 2 |
| .github/dco.yml | Oliver Gould | 2 |
| test/integration/tracing/testdata/tracing-values.yaml | Scott Fleener | 2 |
| test/integration/deep/appprotocol/appprotocol_test.go | Scott Fleener | 2 |
| test/integration/deep/appprotocol/assertions.go | Scott Fleener | 2 |
| test/integration/deep/appprotocol/testdata/appprotocol_application.yaml | Scott Fleener | 2 |
| test/integration/deep/appprotocol/testdata/appprotocol_client.yaml | Scott Fleener | 2 |
| proxy-identity/run_proxy_unix.go | Zahari Dichev | 2 |
| policy-test/tests/outbound_api_egress_network.rs | Zahari Dichev | 2 |
| policy-controller/grpc/src/outbound/tls.rs | Zahari Dichev | 2 |
| controller/api/destination/external-workload/queue_metrics.go | Zahari Dichev | 2 |
| controller/api/destination/external-workload/controller_util.go | Matei David | 2 |
| controller/gen/client/informers/externalversions/externalworkload/interface.go | Matei David | 2 |
| test/integration/deep/serviceaccounts/serviceaccounts_test.go | Matei David | 2 |
| test/integration/viz/routes/routes_test.go | Matei David | 2 |
| viz/tap/injector/main.go | Kevin Leimkuhler | 2 |
| viz/tap/api/client.go | Kevin Leimkuhler | 2 |
| viz/tap/pkg/reader.go | Kevin Leimkuhler | 2 |
| viz/cmd/profile_test.go | Kevin Leimkuhler | 2 |
| web/app/css/svg-wrappers.css | Risha Mars | 2 |
| web/app/js/components/NetworkGraph.test.jsx | Risha Mars | 2 |
| viz/cmd/testdata/stat_all_output_json.golden | Tarun Pothulapati | 2 |
| viz/cmd/testdata/stat_one_output_json.golden | Tarun Pothulapati | 2 |
| cli/cmd/testdata/inject_emojivoto_pod_ingress.report.verbose | Tarun Pothulapati | 2 |
| cli/cmd/testdata/addon_config_overwrite.yaml | Tarun Pothulapati | 2 |
| cli/cmd/testdata/inject_emojivoto_namespace_good.golden.yml | Mayank Shah | 2 |
| cli/cmd/testdata/inject_emojivoto_namespace_uninjected_good.golden.yml | Mayank Shah | 2 |
| policy-controller/k8s/index/src/inbound/tests/meshtls_authentication.rs | Raymond Kroeker | 1 |
| policy-controller/k8s/index/src/inbound/tests/network_authentication.rs | Raymond Kroeker | 1 |
| AMBASSADORS.md | Flynn | 1 |
| test/integration/deep/portenforcement/port_enforcement_test.go | Alex Leong | 1 |
| test/integration/deep/portenforcement/testdata/port_enforcement.yaml | Alex Leong | 1 |
| controller/api/destination/watcher/address.go | Alex Leong | 1 |
| controller/api/destination/watcher/filtered_listener_group.go | Alex Leong | 1 |
| controller/api/destination/watcher/filtered_listener_group_test.go | Alex Leong | 1 |
| controller/api/destination/watcher/service_publisher.go | Alex Leong | 1 |
| multicluster/static/generated_multicluster_templates.gogen.go | Alex Leong | 1 |
| proxy-runtime.yml | Alex Leong | 1 |
| controller/gen/apis/link/v1alpha3/doc.go | Alex Leong | 1 |
| controller/gen/apis/link/v1alpha3/register.go | Alex Leong | 1 |
| controller/gen/client/clientset/versioned/typed/link/v1alpha3/doc.go | Alex Leong | 1 |
| controller/gen/client/clientset/versioned/typed/link/v1alpha3/fake/doc.go | Alex Leong | 1 |
| controller/gen/client/clientset/versioned/typed/link/v1alpha3/fake/fake_link.go | Alex Leong | 1 |
| controller/gen/client/clientset/versioned/typed/link/v1alpha3/fake/fake_link_client.go | Alex Leong | 1 |
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 |
|---|---|---|---|
| Alex Leong | 293 | 84 | 714 |
| Alejandro Pedraza | 273 | 57 | 780 |
| Oliver Gould | 203 | 29 | 624 |
| Tarun Pothulapati | 96 | 31 | 346 |
| Zahari Dichev | 87 | 32 | 333 |
| Matei David | 77 | 45 | 325 |
| Risha Mars | 72 | 6 | 127 |
| Andrew Seigner | 62 | 11 | 294 |
| Kevin Leimkuhler | 60 | 28 | 389 |
| Kevin Lingerfelt | 24 | 7 | 220 |
| Scott Fleener | 22 | 15 | 146 |
| Joakim Roubert | 22 | 0 | 47 |
| Mayank Shah | 18 | 10 | 139 |
| Dennis Adjei-Baah | 12 | 3 | 200 |
| Kevin Ingelman | 12 | 7 | 74 |
| Cynthia S. Garcia | 9 | 1 | 45 |
| William Morgan | 9 | 4 | 13 |
| Carol A. Scott | 8 | 1 | 75 |
| Dani Baeyens | 8 | 7 | 27 |
| Ahmed Al-Hulaibi | 8 | 8 | 14 |
| Ivan Sim | 7 | 5 | 109 |
| Paul Balogh | 7 | 2 | 74 |
| Krzysztof Dryś | 7 | 3 | 59 |
| Phil Calçado | 5 | 2 | 19 |
| Eliza Weisman | 4 | 1 | 162 |
Files touched by the most people — shared code where changes are most likely to need coordination.
| File | Contributors | Primary owner | Owner share |
|---|---|---|---|
| ADOPTERS.md | 94 | William Morgan | 2.0% |
| cli/cmd/testdata/install_default.golden | 69 | Alejandro Pedraza | 16.5% |
| cli/cmd/testdata/install_ha_output.golden | 67 | Alejandro Pedraza | 18.1% |
| cli/cmd/testdata/install_ha_with_overrides_output.golden | 67 | Alejandro Pedraza | 18.1% |
| cli/cmd/testdata/install_output.golden | 66 | Alejandro Pedraza | 14.8% |
| cli/cmd/testdata/install_no_init_container.golden | 61 | Alejandro Pedraza | 19.7% |
| cli/cmd/testdata/install_proxy_ignores.golden | 52 | Alejandro Pedraza | 19.9% |
| cli/cmd/testdata/install_controlplane_tracing_output.golden | 51 | Alejandro Pedraza | 19.9% |
| cli/cmd/testdata/install_custom_registry.golden | 51 | Alejandro Pedraza | 20.2% |
| cli/cmd/testdata/install_heartbeat_disabled_output.golden | 51 | Alejandro Pedraza | 19.9% |
| cli/cmd/testdata/install_default_override_dst_get_nets.golden | 48 | Alejandro Pedraza | 20.5% |
| cli/cmd/testdata/install_helm_output_ha_labels.golden | 48 | Oliver Gould | 17.9% |
| cli/cmd/testdata/install_helm_output_ha_namespace_selector.golden | 48 | Alejandro Pedraza | 18.8% |
| pkg/healthcheck/healthcheck.go | 45 | Andrew Seigner | 14.3% |
| cli/cmd/testdata/install_custom_domain.golden | 44 | Alejandro Pedraza | 21.6% |
| cli/cmd/testdata/install_values_file.golden | 44 | Alejandro Pedraza | 21.6% |
| cli/cmd/install.go | 42 | Andrew Seigner | 14.3% |
| cli/cmd/install_test.go | 41 | Oliver Gould | 13.2% |
| cli/cmd/root.go | 40 | Kevin Lingerfelt | 11.5% |
| pkg/charts/linkerd2/values.go | 40 | Tarun Pothulapati | 14.9% |
How Linkerd compares with other CNCF graduated projects →
How Linkerd ranks among CNCF graduated projects by AI-assisted commits →
Generate this report for your own repository with gitstats-action · All Gallery reports
Publishes the report to GitHub Pages on every push to main: turn on Pages for the gh-pages branch.
# .github/workflows/gitstats.yml
name: GitStats Report
on:
push:
branches: [main]
permissions:
contents: write
jobs:
gitstats:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: shenxianpeng/gitstats-action@v1
with:
deploy-to-pages: true