This repository contains code and data used to benchmark different pull request review tools.
The goal of this benchmark is to simulate realistic scenarios where buggy code is submitted via pull requests. Each test case consists of a buggy version of a repository and a corresponding fixed version. By submitting a pull request from the buggy version to the fixed version, we can evaluate how effectively a review tool detects issues.
-
Each folder in the
main
branch represents a fixed version of a repository where a specific issue has already been resolved. -
Folder names follow the format:
reponame_id
, where:reponame
is the name of the repository.id
is a unique identifier for the test case.
-
For each fixed version, there is a corresponding buggy version located in a branch named:
test_<reponame_id>
- The
main
branch contains the fixed versions of all test repositories. - The
test_<reponame_id>
branches contain the buggy versions of the same repositories. - To create a benchmark scenario:
- Create a pull request from the
test_<reponame_id>
branch to themain
branch. - This simulates a developer submitting a buggy pull request.
- Create a pull request from the
- Run your pull request review tool on the simulated PR to evaluate its performance.
Given a folder shoppingcart_01
in the main
branch:
- The fixed version of the
shoppingcart
repo is inmain/shoppingcart_01
. - The buggy version is in the branch
test_shoppingcart_01
. - You create a pull request from
test_shoppingcart_01
tomain
, targeting theshoppingcart_01
folder.
The current benchmark uses real-world issues extracted from the maniple
dataset. Specifically, it focuses on bugs found in the tqdm
project.
Each test case below corresponds to a buggy-to-fixed repository pair.
- tqdm_1
- Related issues:
- tqdm_3
- Related issues:
- tqdm_4
- Related issues:
- Not available
- Related issues:
- tqdm_5
- Related issues:
- tqdm_6
- Related issues:
- tqdm_8
- Related issues:
- Not available
- Related issues:
- thefuck_1
- Related issues:
- thefuck_2
- Related issues:
- Not available
- Related issues:
- thefuck_3
- Related issues:
- thefuck_4
- Related issues:
- thefuck_5
- Related issues:
- thefuck_7
- Related issues:
- Not available
- Related issues:
- thefuck_9
- Related issues: