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.pyextracts 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.pyuses the pickled file as input and creates the corresponding projects within teamscale via a GitConnector. This takes some time!teamscale_extractor.pyuses 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.pyuses 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_TOKENvariables in the script to your needs. The variables are marked with anTODO