Loop over the given applications to query the devNote.sh script.
This script will need a valid github API key in the file ./githubKey
The script will look for databases in a databases dir, final outputs in output and write temporary results in /tmp/tracker.
Example usage: ./metricLoop.sh ../allApps.csv
This is the main script of the Sniffer, working on only one project at a time (see metricLoop.sh to load multiple projects).
It will :
- Query the smells from our Detector database (require SmellDetector.jar).
- Retrieve every commits of the current project if COMMITS.csv is absent (require GitHubMiner.jar).
- Merge the developers identity from the smells into the COMMITS.csv file.
- Retrieve the project commits in topological order
(will clone the project & use
git log). - Calculate the metrics from all previous information sources (require CSVSmellTracker.jar).
Example usage: ./devNote.sh -d "$dbDir/$appName" -p "$appPath" -k "$(cat $githubKeyFile)" -o "$tmpOutput"
This script will loop over all already analyzed projects to add the following data:
- Process the number of method and classes (Using SmellDetector.jar).
- Sort the project's commits by type (
feat,fix,docs,style,refactor,perf,tests,chores).
This script will take every project from the output folder (using metrics-perDev-perCommit-perSmell.csv and $project-commits-results as input) and group the tagged commits with their respective number of smell introduction, refactor, deletion, refactor+deletion.
The result will be written in two new files (completeTags.csv and completeTags-onlyTagged.csv).
Creates 2 tar archives from the output directory, in the current folder.
- results: Full content of the directory.
- metrics: Only embed the content of metrics dirs and commits files.
The result will be stored in the packages directory.