This tool is used to check the concentration of knowledge in software projects. The tool uses a combination of shell scripts to extract data from projects, therefore a Linux environment is necessary.
- You have to install rugged and github-linguist gems in your system-wide ruby.
On Ubuntu:
sudo apt-get install build-essential cmake pkg-config libicu-dev zlib1g-dev libcurl4-openssl-dev libssl-dev ruby-dev
sudo /usr/bin/ruby -S gem install github-linguist
sudo /usr/bin/ruby -S gem install rugged
- You have to install Cloc
sudo apt install cloc
- Ensure you have Node.js installed, which includes npm (Node Package Manager).
- Navigate to the 'front-end' directory and run
npm install
to install all necessary dependencies. - Use
npm start
to start the development server andnpm run build
to create a production build of the project.
The application's endpoints can be used locally to extract data and compute project truck factors. The main endpoints to achieve these goals are:
- '/api/downloader/clone-repository': Clones a public repository into the folder specified by the 'configuration.permanent-clone.path' property in the 'application.properties' file.
- '/api/git-repository/generate-logs-repository/': Accepts the root path of a .git repository and generates .log files necessary for calculating the project's Truck Factor.
- '/api/truck-factor/save-full-truck-factor/': Takes the root path of a .git repository with pre-generated .log files and calculates and saves the repository's Truck Factor.
- '/api/git-repository-version-process/start-git-repository-version-process/': Combines the functionalities of the previous endpoints: cloning the repository, generating log files, and calculating and saving the Truck Factor.
The same controllers also include endpoints for performing these tasks on folders containing multiple repositories.
[1] Cury, Otávio, et al. "Identifying Source Code File Experts." Proceedings of the 16th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. 2022.
[2] Cury, Otávio, et al. "Source code expert identification: Models and application." Information and Software Technology (2024): 107445.
[3] Cury, Otávio, et al. "Knowledge Islands: Visualizing Developers Knowledge Concentration". Simpósio Brasileiro de Engenharia de Software (2024).