Repository navigation
116 lines (100 loc) · 3.58 KB
/
Copy pathcontamination.yml
File metadata and controls
116 lines (100 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
name: Contamination
# One-shot bug localization probe inspired by The SWE-Bench Illusion (arXiv:2506.12286).
# The model receives the repository name and bug report, but no repository contents or tools, and predicts one repository-relative path.
permissions:
contents: read
on:
workflow_dispatch:
inputs:
model:
description: "Copilot model to evaluate"
required: false
default: "gpt-5.6-luna"
type: choice
options:
- "claude-sonnet-5"
- "claude-opus-5"
- "gpt-5.6-sol"
- "gpt-5.6-terra"
- "gpt-5.6-luna"
- "gpt-5.3-codex"
- "mai-code-1.1-flash"
- "gemini-3.7-flash"
category:
description: "Evaluation category"
required: false
default: "bug-fix"
type: choice
options:
- "bug-fix"
test-run:
description: "Quick run over a handful of random entries"
required: false
default: true
type: boolean
concurrency:
group: contamination-${{ inputs.category || 'bug-fix' }}
cancel-in-progress: false
env:
IDENTIFICATION_RESULTS_DIR: identification_results
jobs:
get-entries:
uses: $/.github/workflows/get-entries.yml
with:
test-run: ${{ inputs.test-run || false }}
category: ${{ inputs.category || 'bug-fix' }}
identify:
name: ${{ matrix.entry }}
runs-on: ubuntu-latest
needs: get-entries
if: needs.get-entries.outputs.entries != '[]'
permissions:
contents: read
id-token: write
copilot-requests: write
strategy:
fail-fast: false
max-parallel: 32
matrix:
entry: ${{ fromJson(needs.get-entries.outputs.entries) }}
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup Python with UV
uses: $/.github/actions/setup-python-uv
- name: Install evaluation CLIs
uses: $/.github/actions/install-agent-harnesses
- name: Run contamination detection for entry ${{ matrix.entry }}
timeout-minutes: 20
shell: pwsh
env:
COPILOT_GITHUB_TOKEN: ${{ github.token }}
run: |
Write-Output "::add-mask::$env:COPILOT_GITHUB_TOKEN"
uv run bcbench contamination filepath-identification "${{ matrix.entry }}" `
--category "${{ inputs.category || 'bug-fix' }}" `
--model "${{ inputs.model || 'gpt-5.6-luna' }}" `
--output-dir "${{ env.IDENTIFICATION_RESULTS_DIR }}"
- name: Upload identification result
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: always()
with:
name: identification-result-${{ github.run_id }}-${{ matrix.entry }}
path: ${{ env.IDENTIFICATION_RESULTS_DIR }}/**/*.filepath-identification.jsonl
retention-days: ${{ (inputs.test-run && 1) || 30 }}
summarize:
name: Summarize
runs-on: ubuntu-latest
needs: identify
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup Python with UV
uses: $/.github/actions/setup-python-uv
- name: Download all identification results
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
path: ${{ env.IDENTIFICATION_RESULTS_DIR }}/
merge-multiple: true
- name: Summarize contamination signal
run: uv run bcbench contamination summarize --results-dir "${{ env.IDENTIFICATION_RESULTS_DIR }}"