Analysis of the Copilot code review (copilot-pull-request-reviewer) dynamic workflow on mlflow/mlflow.
- Source:
CCR Agent: Comment storedlog lines from theRun Autofind Agentstep in theAgentjob - Sample: 270 comments from 100 completed workflow runs
- Date: 2026-02-20
3 levels:
| Severity | Count | % |
|---|---|---|
moderate |
164 | 61% |
nit |
60 | 22% |
critical |
46 | 17% |
19 distinct types observed:
| Type | Count | Critical | Moderate | Nit |
|---|---|---|---|---|
bug |
60 | 27 | 33 | — |
test_coverage |
41 | 1 | 40 | — |
api_design |
37 | 12 | 25 | — |
maintainability |
25 | — | 10 | 15 |
documentation |
19 | — | 12 | 7 |
naming |
12 | — | 8 | 4 |
best_practices |
12 | 1 | 6 | 5 |
security |
11 | 1 | 9 | 1 |
spelling |
10 | — | — | 10 |
discrepancy_with_pr_description |
10 | — | 3 | 7 |
operational_implications |
7 | 1 | 5 | 1 |
error_message |
6 | — | 5 | 1 |
codebase_conventions |
5 | — | 1 | 4 |
concurrency |
4 | — | 4 | — |
accessibility |
4 | 3 | 1 | — |
performance |
3 | — | 2 | 1 |
custom |
2 | — | — | 2 |
future_dates |
1 | — | — | 1 |
other |
1 | — | — | 1 |
bugis the most common type and the one most frequently ratedcritical(27 out of 46 total critical comments).test_coverageis almost exclusivelymoderate(40 out of 41).spellingis alwaysnit.accessibilityhas the highest critical rate — 3 out of 4 comments arecritical.api_designis the second most common source ofcriticalcomments (12).- Rare/edge-case types include
custom,future_dates, andother.
Each stored comment has the following fields:
{
"comment_id": "001",
"comment_type": "bug",
"file_location": "path/to/file.py",
"start_line": 42,
"end_line": 42,
"comment_content": "The review comment text...",
"guideline_id": "1000002",
"fixed": false,
"severity": "moderate"
}# 1. List completed runs (workflow ID 201861839)
gh api "repos/mlflow/mlflow/actions/workflows/201861839/runs?per_page=100&status=completed" \
--jq '.workflow_runs[].id'
# 2. For each run, find the Agent job
gh api "repos/mlflow/mlflow/actions/runs/<RUN_ID>/jobs" \
--jq '.jobs[] | select(.name == "Agent") | .id'
# 3. Grep the job logs for stored comments
gh api "repos/mlflow/mlflow/actions/jobs/<JOB_ID>/logs" | grep "Comment stored"