RepoET is an experimental repository-level code retrieval project. Its core capability is a multi-stage retrieval pipeline that retrieves relevant files and code snippets for code tasks.
This README keeps only the minimal public-facing setup and usage instructions, and documents a single launch method only: starting with a config file via --params.
- Python
>=3.10 uvis recommended
Install dependencies:
uv syncRepoET expects a benchmark directory, defaulting to ./data/. The current code assumes the following layout:
data/
artifacts/
swebench_lite.json
repoqa.json
repositories/
<org>/<repo>/
repocommits/
<repo>__<sha8>/
Notes:
artifacts/stores benchmark JSON filesrepositories/stores original repositoriesrepocommits/stores repository snapshots split by commit
Use configs/config_template.json as the template.
Before running, update these fields for your environment:
benchmarkstart_indexend_indexnum_procworkflowrepoet_config.CACHE_DIRECTORY_PATHrepoet_config.BENCHMARK_DIRECTORY_PATHrepoet_config.LLM_MODELrepoet_config.LLM_API_BASErepoet_config.LLM_API_KEY
Start only through a config file:
uv run python main.py --params configs/config_template.jsonIf you create another config file, for example configs/my_run.json, run:
uv run python main.py --params configs/my_run.jsonbenchmark: the currently supported benchmarks in this codebase aresweandrepoqaworkflow: available stages arekws,uqs,fts,topk,preview,snippet_judge, andsnippet_selectstage_query_modes: controls whether each stage usesquery,issue, or another supported input mode
If you are only validating that deployment works, a small first run is recommended:
start_index = 0end_index = 1num_proc = 10
After running, RepoET creates a run_logs/ directory under the repository root. A typical run includes:
command.jsonparams.source.jsonparams.effective.jsonresults.jsoncost.json- per-sample subdirectories with
workflow_trace.json
repoet/
main.py
run_repoet.py
config.py
configs/
core/
sweep/
tests/
Main modules:
main.py: benchmark execution entry pointrun_repoet.py: single retrieval entry pointconfig.py: runtime config loadingcore/workflows/file_workflow.py: file-level workflowcore/workflows/retrieve_workflow.py: snippet-level workflow