Skip to content
This repository was archived by the owner on Oct 24, 2025. It is now read-only.

JetBrains-Research/bus-factor-explorer

Repository files navigation

JetBrains Research Java CI with Gradle

bus-factor-explorer

A web app for exploring Bus Factor of GitHub projects.

Note

This repository contains a finished research prototype. While you are welcome to explore and fork the repository, please note that no further updates, bug fixes, or support will be provided.

About

Bus factor (BF) is a metric that tracks knowledge distribution in a project. It is the minimal number of engineers that have to leave for a project to stall. bus-factor-explorer provides an interface and an API to compute, export, and explore the Bus Factor metric via treemap visualization, turnover simulation mode, and interactive charts. It supports repositories hosted on GitHub and enables functionality to search repositories and process multiple repositories at the same time.

Our tool enables the users to identify the files and subsystems at risk of stalling in the event of developer turnover by analyzing the commit history.

Demo is available on YouTube.

Quick start

Docker:

docker run -p 8080:8080 -it ghcr.io/jetbrains-research/bus-factor-explorer/bus-factor-explorer:latest

Docker Compose configuration is also available in the repository.

Usage

Simple scenario:

  1. Open the main page;
  2. Search for a repository. You can use advanced GitHub search syntax;
  3. Click on the repository and wait for the calculation to finish;
  4. Reload the main page and click on the repository in the main page;
  5. Explore bus factor data using built-in visualization, or process the results externally using Explore Data panel.

Screenshots

Treemap Visualization built with chart editor Simulation mode

Evaluation

To evaluate our tool, we computed the bus factor of 935 popular repositories on GitHub. The results are available in the evaluation directory.

Local development

Build and start:

  1. Run ./gradlew jibDockerBuild
  2. Run docker compose up

Auto-format code:

  1. Run ./gradlew ktlintFormat

Attribution

If you found this work helpful, please consider citing the Bus Factor Explorer paper in your work:

@inproceedings{klimov2023BusFactorExplorer,
   title     = {Bus Factor Explorer},
   author    = {Egor Klimov and Muhammad Umair Ahmed and Nikolai Sviridov and Pouria Derakhshanfar and Eray Tüzün and Vladimir Kovalenko},
   booktitle = {Proceedings of the 2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)},
   publisher = {IEEE},
   year      = {2023},
   url       = {https://arxiv.org/abs/2403.08038},
   doi       = {10.1109/ase56229.2023.00015}
}

About

A web app for exploring Bus Factor of GitHub projects by analyzing the commit history.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •