This repository contains implementation of experiments from "Supporting code review by automatic detection of potentially buggy changes" paper. Java 8 and Apache Maven are required to compile the project.
This application is "source code changes classifier" working with Git repositories either as standalone application or with Gerrit code review system. The classifier is used to detect potential programming errors, based on those that occurred earlier during the project development. A history of existing errors is retrieved from the source code repository of the project. The idea of a classifier was proposed in "Classifying software changes: Clean or buggy?" by Sunghun Kim, E James Whitehead, and Yi Zhang. This project differs from Kim et al. proposal using only subset of features directly available to reviewer, and utilization of instance weight scheme to handle disproportion between classes.
$ mvn clean install
- Download selected repository listed in Appendix
$ git clone https://github.com/jekyll/jekyll.git ~/jekyll
- Checkout the used revision
$ git checkout edc8f6b70
- Run replication:
$ java -jar target/scmparser-replication.jar -p jekyll -d ~/jekyll -h 500
- Working Gerrit (tested on 2.6-rc0) instance with imported projects
- Gerrit user with:
- ssh key without password
- permissions to review code
- permissions to list available projects
- permissions to receive Gerrit events via "ssh -p gerrit stream-events"
- Project history should contain commits with metadata about fixed bugs (see BugFixDetectionList.scala)
$ java -jar scmparser-gerrit.jar --help