Quantitatively measuring code clones and related metrics in projects of different programming languages and comparing + evaluating the results.
The requirements needed to run the project can be found in the
requirements.txt
file in the repository root folder.
In general, the project contains 4 scripts which are executed separately.
project_extractor.py
extracts GitHub Links from given source files, validates that these links are actually Repositories, find out the name of the default branch & latest revision and saves the projects into a pickle file.teamscale_administrator.py
uses the pickled file as input and creates the corresponding projects within teamscale via a GitConnector. This takes some time!teamscale_extractor.py
uses the pickled files as input (to retrieve the project IDs) and fetches the results of teamscale's analysis. It then saves the appended projects again in pickle file.project_analyzer.py
uses the pickled files to process and present some graphics of the collected data
CAUTION! Step 2 and 3 need to be executed with some spacing since teamscale needs time to analyze and process all the projects! So do not execute those scripts directly after each other. First make sure that teamscale has finished!
- If you want to run this locally, modify the
TEAMSCALE_*
andGITHUB_ACCESS_TOKEN
variables in the script to your needs. The variables are marked with anTODO