{"id":21168520,"url":"https://github.com/jetbrains-research/bus-factor-explorer","last_synced_at":"2025-07-09T18:31:29.102Z","repository":{"id":169093209,"uuid":"644051522","full_name":"JetBrains-Research/bus-factor-explorer","owner":"JetBrains-Research","description":"A web app for exploring Bus Factor of GitHub projects by analyzing the commit history.","archived":false,"fork":false,"pushed_at":"2024-05-28T17:29:44.000Z","size":4484,"stargazers_count":17,"open_issues_count":2,"forks_count":2,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-29T17:40:53.903Z","etag":null,"topics":["bus-factor","git","mining-software-repositories","truck-factor"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JetBrains-Research.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-05-22T17:56:30.000Z","updated_at":"2025-05-02T12:54:12.000Z","dependencies_parsed_at":"2023-12-25T17:13:44.901Z","dependency_job_id":"916e6496-a36d-4439-9f99-5cb244cada69","html_url":"https://github.com/JetBrains-Research/bus-factor-explorer","commit_stats":null,"previous_names":["jetbrains-research/bus-factor-explorer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JetBrains-Research/bus-factor-explorer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains-Research%2Fbus-factor-explorer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains-Research%2Fbus-factor-explorer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains-Research%2Fbus-factor-explorer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains-Research%2Fbus-factor-explorer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JetBrains-Research","download_url":"https://codeload.github.com/JetBrains-Research/bus-factor-explorer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains-Research%2Fbus-factor-explorer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264502387,"owners_count":23618587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bus-factor","git","mining-software-repositories","truck-factor"],"created_at":"2024-11-20T15:14:44.556Z","updated_at":"2025-07-09T18:31:27.819Z","avatar_url":"https://github.com/JetBrains-Research.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![JetBrains Research](https://jb.gg/badges/research.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)\n[![Java CI with Gradle](https://github.com/JetBrains-Research/bus-factor-explorer/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/JetBrains-Research/bus-factor-explorer/actions/workflows/ci.yml)\n# `bus-factor-explorer`\nA web app for exploring Bus Factor of GitHub projects.\n\n## About\nBus factor (BF) is a metric that tracks knowledge distribution in a project.\nIt is the minimal number of engineers that have to leave for a project to stall.\n`bus-factor-explorer` provides an interface and an API to compute, export, \nand explore the Bus Factor metric via treemap visualization, turnover simulation mode, and interactive charts.\nIt supports repositories hosted on GitHub and enables functionality to search repositories and process multiple repositories \nat the same time.\n\nOur tool enables the users to identify the files and subsystems at risk of stalling in the event of developer turnover \nby analyzing the commit history.\n\nDemo is available on [YouTube](https://youtu.be/uIoV79N14z8).\n\n## Quick start\nDocker:\n```shell\ndocker run -p 8080:8080 -it ghcr.io/jetbrains-research/bus-factor-explorer/bus-factor-explorer:latest\n```\nDocker Compose configuration is also [available](docker-compose.yml) in the repository.\n\n## Usage\nSimple scenario:\n1. Open the main page;\n2. Search for a repository. You can use [advanced GitHub search](https://docs.github.com/en/search-github/searching-on-github/searching-for-repositories) syntax; \n3. Click on the repository and wait for the calculation to finish;\n4. Reload the main page and click on the repository in the main page;\n5. Explore bus factor data using built-in visualization, or process the results externally using `Explore Data` panel.\n\n## Screenshots\n![Treemap](./docs/treemap.png)\n![Visualization built with chart editor](./docs/plotly.png)\n![Simulation mode](./docs/simulation_mode.png)\n\n## Evaluation\nTo evaluate our tool, we computed the bus factor of 935 popular repositories on GitHub.\nThe results are available in the [`evaluation`](./evaluation) directory.\n\n#### Local development\nBuild and start:\n1. Run `./gradlew jibDockerBuild`\n2. Run `docker compose up`\n\nAuto-format code:\n1. Run `./gradlew ktlintFormat`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjetbrains-research%2Fbus-factor-explorer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjetbrains-research%2Fbus-factor-explorer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjetbrains-research%2Fbus-factor-explorer/lists"}