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
mainbranch represents a fixed version of a repository where a specific issue has already been resolved. -
Folder names follow the format:
reponame_id, where:reponameis the name of the repository.idis 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
mainbranch 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 themainbranch. - 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
shoppingcartrepo is inmain/shoppingcart_01. - The buggy version is in the branch
test_shoppingcart_01. - You create a pull request from
test_shoppingcart_01tomain, targeting theshoppingcart_01folder.
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: