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 |
|---|---|---|
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/ScalableCheckpointConsumer.java | Matteo Merli | 13 |
| pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryAttributes.java | Dragos Misca | 13 |
| pulsar-client-admin-api/src/main/java/org/apache/pulsar/client/admin/ScalableTopics.java | Matteo Merli | 11 |
| tests/performance/AGENTS.md | Lari Hotari | 11 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/MultiTopicStreamConsumer.java | Matteo Merli | 10 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/StreamConsumerBuilderV5.java | Matteo Merli | 10 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/metadata/TxnMetadataStore.java | Matteo Merli | 10 |
| tests/performance/scenarios/docs/iot-telemetry.md | Lari Hotari | 10 |
| tests/performance/launcher/src/main/java/org/apache/pulsar/tests/performance/launcher/PerformanceLauncher.java | Lari Hotari | 10 |
| tests/performance/tools/src/main/java/org/apache/pulsar/tests/performance/tools/IotScenario.java | Lari Hotari | 10 |
| File | Sole owner | Commits |
|---|---|---|
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/ScalableCheckpointConsumer.java | Matteo Merli | 13 |
| pulsar-opentelemetry/src/main/java/org/apache/pulsar/opentelemetry/OpenTelemetryAttributes.java | Dragos Misca | 13 |
| pulsar-client-admin-api/src/main/java/org/apache/pulsar/client/admin/ScalableTopics.java | Matteo Merli | 11 |
| tests/performance/AGENTS.md | Lari Hotari | 11 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/MultiTopicStreamConsumer.java | Matteo Merli | 10 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/StreamConsumerBuilderV5.java | Matteo Merli | 10 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/metadata/TxnMetadataStore.java | Matteo Merli | 10 |
| tests/performance/scenarios/docs/iot-telemetry.md | Lari Hotari | 10 |
| tests/performance/launcher/src/main/java/org/apache/pulsar/tests/performance/launcher/PerformanceLauncher.java | Lari Hotari | 10 |
| tests/performance/tools/src/main/java/org/apache/pulsar/tests/performance/tools/IotScenario.java | Lari Hotari | 10 |
| tests/performance/tools/src/main/java/org/apache/pulsar/tests/performance/tools/TelemetryConsumer.java | Lari Hotari | 10 |
| tests/performance/tools/src/main/java/org/apache/pulsar/tests/performance/tools/TelemetryProducer.java | Lari Hotari | 10 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/MultiTopicQueueConsumer.java | Matteo Merli | 9 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/QueueConsumerBuilderV5.java | Matteo Merli | 9 |
| tests/performance/scenarios/README.md | Lari Hotari | 9 |
| tests/performance/docs/run-reports.md | Lari Hotari | 9 |
| tests/integration/src/test/java/org/apache/pulsar/tests/integration/profiling/AbstractPulsarProfilingTest.java | Lari Hotari | 9 |
| pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/buffer/impl/MetadataTransactionBufferTest.java | Matteo Merli | 8 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/metadata/TxnPaths.java | Matteo Merli | 8 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/service/scalable/SegmentLayout.java | Matteo Merli | 8 |
| tests/performance/launcher/build.gradle.kts | Lari Hotari | 8 |
| tests/performance/report-tool/src/main/java/org/apache/pulsar/tests/performance/report/RunReport.java | Lari Hotari | 8 |
| tests/performance/tools/src/test/java/org/apache/pulsar/tests/performance/tools/IotScenarioTest.java | Lari Hotari | 8 |
| pulsar-broker/src/test/java/org/apache/pulsar/broker/service/scalable/SegmentLayoutTest.java | Matteo Merli | 7 |
| tests/performance/report-tool/src/test/java/org/apache/pulsar/tests/performance/report/RunReportTest.java | Lari Hotari | 7 |
| tests/performance/docs/running-scenarios.md | Lari Hotari | 7 |
| build-logic/conventions/src/main/kotlin/pulsar.publish-conventions.gradle.kts | Lari Hotari | 7 |
| pip/pip-478.md | Lari Hotari | 7 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/filter/BrokerFilter.java | Kai Wang | 7 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/CheckpointConsumerBuilderV5.java | Matteo Merli | 6 |
| pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/metadata/TxnMetadataStoreTest.java | Matteo Merli | 6 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/ClientSegmentLayout.java | Matteo Merli | 6 |
| pulsar-client-api-v5/src/main/java/org/apache/pulsar/client/api/v5/QueueConsumerBuilder.java | Matteo Merli | 6 |
| tests/performance/launcher/src/main/java/org/apache/pulsar/tests/performance/launcher/TopicStatsSampler.java | Lari Hotari | 6 |
| tests/integration/src/test/java/org/apache/pulsar/tests/integration/profiling/PulsarProfilingConfig.java | Lari Hotari | 6 |
| .github/actions/upload-coverage/action.yml | Lari Hotari | 6 |
| bin/pulsar-shell | Nicolò Boschi | 6 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/ScalableTopicsWatcher.java | Matteo Merli | 5 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/service/scalable/ConsumerSession.java | Matteo Merli | 5 |
| pulsar-client-api-v5/src/main/java/org/apache/pulsar/client/api/v5/CheckpointConsumerBuilder.java | Matteo Merli | 5 |
| pulsar-client-api-v5/src/main/java/org/apache/pulsar/client/api/v5/StreamConsumerBuilder.java | Matteo Merli | 5 |
| pulsar-broker/src/test/java/org/apache/pulsar/client/api/v5/V5EntryBucketDispatchTest.java | Matteo Merli | 5 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/SegmentRouter.java | Matteo Merli | 5 |
| managed-ledger/src/test/java/org/apache/bookkeeper/mledger/impl/cache/RangeCacheTest.java | Lari Hotari | 5 |
| tests/performance/launcher/src/test/java/org/apache/pulsar/tests/performance/launcher/ScenarioFilesTest.java | Lari Hotari | 5 |
| tests/performance/scenarios/docs/scenario-format.md | Lari Hotari | 5 |
| tests/performance/tools/src/main/java/org/apache/pulsar/tests/performance/tools/DeviceSequenceTracker.java | Lari Hotari | 5 |
| tests/performance/docs/analyzing-profiles.md | Lari Hotari | 5 |
| build-logic/conventions/src/main/kotlin/pulsar.nar-conventions.gradle.kts | Lari Hotari | 5 |
| .github/actions/ssh-access/action.yml | Lari Hotari | 5 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/channel/ServiceUnitState.java | Heesung Sohn | 5 |
| pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/extensions/channel/ServiceUnitStateTest.java | Heesung Sohn | 5 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/PulsarBrokerOpenTelemetry.java | Dragos Misca | 5 |
| pulsar-broker/src/test/java/org/apache/pulsar/client/api/v5/V5TransactionTest.java | Matteo Merli | 4 |
| pulsar-client-v5/src/test/java/org/apache/pulsar/client/impl/v5/DagWatchClientTest.java | Matteo Merli | 4 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/transaction/pendingack/impl/MetadataPendingAckStore.java | Matteo Merli | 4 |
| pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/ScalableTopicMetadata.java | Matteo Merli | 4 |
| pulsar-client-admin-api/src/test/java/org/apache/pulsar/common/policies/data/ScalableTopicMetadataTest.java | Matteo Merli | 4 |
| pulsar-common/src/test/java/org/apache/pulsar/common/protocol/CommandsScalableTopicTest.java | Matteo Merli | 4 |
| pulsar-client-v5/src/test/java/org/apache/pulsar/client/impl/v5/SegmentRouterTest.java | Matteo Merli | 4 |
| pulsar-common/src/main/java/org/apache/pulsar/common/scalable/SegmentInfo.java | Matteo Merli | 4 |
| pulsar-metadata/src/test/java/org/apache/pulsar/metadata/MigrationCoordinatorTest.java | Matteo Merli | 4 |
| pulsar-broker/src/test/java/org/apache/pulsar/broker/service/SharedPulsarBaseTest.java | Matteo Merli | 4 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/delayed/bucket/BucketSnapshotStorage.java | Cong Zhao | 4 |
| tests/performance/launcher/src/main/java/org/apache/pulsar/tests/performance/launcher/ClusterSettings.java | Lari Hotari | 4 |
| tests/performance/launcher/src/test/java/org/apache/pulsar/tests/performance/launcher/ClusterSettingsTest.java | Lari Hotari | 4 |
| tests/performance/launcher/src/test/java/org/apache/pulsar/tests/performance/launcher/RemoteApplicationsTest.java | Lari Hotari | 4 |
| tests/performance/environment/README.md | Lari Hotari | 4 |
| tests/performance/launcher/src/main/java/org/apache/pulsar/tests/performance/launcher/ProgressMonitor.java | Lari Hotari | 4 |
| tests/performance/launcher/src/test/java/org/apache/pulsar/tests/performance/launcher/ProgressMonitorTest.java | Lari Hotari | 4 |
| tests/performance/report-tool/src/main/java/org/apache/pulsar/tests/performance/report/ComparisonCharts.java | Lari Hotari | 4 |
| tests/performance/tools/src/test/java/org/apache/pulsar/tests/performance/tools/DeviceSequenceTrackerTest.java | Lari Hotari | 4 |
| pip/pip-31.md | Lari Hotari | 4 |
| pip/pip-39.md | Lari Hotari | 4 |
| pip/pip-40.md | Lari Hotari | 4 |
| tests/performance/docs/comparing-revisions.md | Lari Hotari | 4 |
| tests/performance/tools/src/main/java/org/apache/pulsar/tests/performance/tools/PerformanceTool.java | Lari Hotari | 4 |
| tests/performance/report-tool/build.gradle.kts | Lari Hotari | 4 |
| tests/integration/src/test/java/org/apache/pulsar/tests/integration/profiling/PulsarProfilingConfigTest.java | Lari Hotari | 4 |
| tests/integration/src/test/java/org/apache/pulsar/tests/integration/profiling/PulsarProfilingV4Test.java | Lari Hotari | 4 |
| build-logic/conventions/src/main/kotlin/pulsar.public-java-library-conventions.gradle.kts | Lari Hotari | 4 |
| pulsar-broker/src/test/java/org/apache/pulsar/PrometheusMetricsTestUtil.java | Lari Hotari | 4 |
| pulsar-client/src/main/java/org/apache/pulsar/client/impl/auth/v5/V5AuthContexts.java | Lari Hotari | 4 |
| pulsar-broker-common/src/main/java/org/apache/pulsar/broker/tls/TlsFactorySupport.java | Lari Hotari | 4 |
| src/update_python_protobuf_stubs_with_docker.sh | Lari Hotari | 4 |
| .github/actions/clean-disk/action.yml | Lari Hotari | 4 |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/filter/BrokerLoadManagerClassFilter.java | Kai Wang | 4 |
| tests/integration/src/test/resources/pulsar-plugin.xml | Andras Beni | 4 |
| pulsar-broker/src/test/java/org/apache/pulsar/client/api/v5/V5ScalableTopicAutoCreateTest.java | Matteo Merli | 3 |
| pulsar-broker/src/test/java/org/apache/pulsar/broker/resources/ScalableTopicPropertyIndexTest.java | Matteo Merli | 3 |
| pulsar-metadata/src/main/java/org/apache/pulsar/metadata/api/ScanConsumer.java | Matteo Merli | 3 |
| pulsar-metadata/src/test/java/org/apache/pulsar/metadata/OxiaPartitionKeyTest.java | Matteo Merli | 3 |
| pulsar-metadata/src/test/java/org/apache/pulsar/metadata/MetadataStoreSecondaryIndexTest.java | Matteo Merli | 3 |
| pulsar-broker/src/test/java/org/apache/pulsar/broker/transaction/pendingack/impl/MetadataPendingAckStoreTest.java | Matteo Merli | 3 |
| pulsar-broker-common/src/main/java/org/apache/pulsar/broker/resources/ScalableTopicMetadata.java | Matteo Merli | 3 |
| pulsar-broker/src/test/java/org/apache/pulsar/broker/service/scalable/ConsumerSessionTest.java | Matteo Merli | 3 |
| pulsar-client-v5/src/main/java/org/apache/pulsar/client/impl/v5/CheckpointV5.java | Matteo Merli | 3 |
| pulsar-broker/src/test/java/org/apache/pulsar/client/api/v5/V5AutoRebucketTest.java | Matteo Merli | 3 |
| pulsar-broker/src/test/java/org/apache/pulsar/client/api/v5/V5CheckpointConsumerGroupTest.java | Matteo Merli | 3 |
| pulsar-broker/src/test/java/org/apache/pulsar/client/api/v5/V5MultiTopicStreamConsumerTest.java | Matteo Merli | 3 |
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 |
|---|---|---|---|
| Lari Hotari | 1,563 | 997 | 3,233 |
| Matteo Merli | 1,442 | 334 | 3,111 |
| tison | 1,191 | 6 | 3,125 |
| fengyubiao | 127 | 25 | 620 |
| Boyang Jerry Peng | 117 | 6 | 459 |
| Zixuan Liu | 112 | 44 | 536 |
| Penghui Li | 102 | 39 | 697 |
| congbo | 88 | 3 | 442 |
| Sanjeev Kulkarni | 82 | 9 | 304 |
| Rajan Dhabalia | 75 | 5 | 675 |
| Michael Marshall | 72 | 28 | 439 |
| Sijie Guo | 65 | 4 | 726 |
| Yunze Xu | 59 | 15 | 541 |
| Kai Wang | 55 | 28 | 218 |
| xiaolong ran | 55 | 12 | 197 |
| Heesung Sohn | 52 | 14 | 210 |
| Qiang Zhao | 50 | 26 | 296 |
| Zike Yang | 49 | 40 | 192 |
| Jiwei Guo | 44 | 33 | 476 |
| void-ptr974 | 43 | 28 | 148 |
| Cong Zhao | 42 | 18 | 285 |
| Xiangying Meng | 40 | 9 | 256 |
| Ivan Kelly | 39 | 30 | 267 |
| Dragos Misca | 38 | 29 | 278 |
| Praveen Kumar | 37 | 15 | 980 |
Files touched by the most people — shared code where changes are most likely to need coordination.
| File | Contributors | Primary owner | Owner share |
|---|---|---|---|
| pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java | 103 | fengyubiao | 9.2% |
| conf/broker.conf | 103 | Rajan Dhabalia | 12.6% |
| pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java | 102 | Rajan Dhabalia | 12.0% |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java | 97 | Matteo Merli | 12.6% |
| pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerImpl.java | 95 | Matteo Merli | 10.9% |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java | 94 | feynmanlin | 9.6% |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/service/ServerCnx.java | 88 | Matteo Merli | 13.4% |
| managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java | 79 | Matteo Merli | 12.6% |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/PulsarService.java | 76 | Lari Hotari | 13.1% |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java | 75 | feynmanlin | 10.0% |
| conf/standalone.conf | 72 | Rajan Dhabalia | 17.6% |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/service/nonpersistent/NonPersistentTopic.java | 71 | Matteo Merli | 13.1% |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/PersistentTopics.java | 70 | feynmanlin | 16.7% |
| managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java | 68 | Matteo Merli | 16.7% |
| pulsar-client/src/main/java/org/apache/pulsar/client/impl/ProducerImpl.java | 66 | Matteo Merli | 16.3% |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/namespace/NamespaceService.java | 62 | Matteo Merli | 17.0% |
| pulsar-client/src/main/java/org/apache/pulsar/client/impl/PulsarClientImpl.java | 61 | Matteo Merli | 21.7% |
| pulsar-client/src/main/java/org/apache/pulsar/client/impl/MultiTopicsConsumerImpl.java | 61 | Penghui Li | 9.7% |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java | 60 | Rajan Dhabalia | 10.2% |
| pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/Namespaces.java | 60 | feynmanlin | 12.6% |
How Apache Pulsar compares with other Apache projects →
How Apache Pulsar ranks among Apache 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