-
Notifications
You must be signed in to change notification settings - Fork 0
Update PR data Daily collection (2025-08-14 01:41 UTC) #158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughUpdates two data files to expand and refresh the JUnit 5 migration candidate lists, including timestamp refresh, added entries with statuses and URLs, and minor reordering/formatting. No code or APIs changed. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @gounthar, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request performs an automated daily update of the JUnit5 migration pull request statistics data. The changes primarily involve adding new PR entries, reordering existing ones to maintain a consistent structure, and updating associated metadata like timestamps and labels. These updates ensure the dataset accurately reflects the ongoing progress of JUnit5 migrations across various Jenkins plugins.
Highlights
- New Data Additions: The dataset of JUnit5 migration pull requests has been expanded with new entries, reflecting recent activity in various Jenkins plugins.
- Data Reordering and Synchronization: Existing pull request entries within the
junit5_candidates.jsonfile have been extensively reordered, ensuring the data maintains a consistent and up-to-date sequence. - Metadata Updates: Minor updates to metadata, such as
createdAttimestamps and labels, were applied to several PR entries to reflect their current status and attributes.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request is an automated update of JUnit 5 migration pull request data. The changes update the list of candidate PRs in both a JSON file and a text file. My review identifies an issue with inconsistent sorting of the PR lists in both files. This creates unnecessary diff noise and suggests a potential bug in the data generation script. I've recommended implementing a consistent sorting order, for example, by creation date, to improve maintainability.
| { | ||
| "title": "Migrate tests to JUnit5", | ||
| "url": "https://github.com/jenkinsci/workflow-durable-task-step-plugin/pull/465", | ||
| "repository": "jenkinsci/workflow-durable-task-step-plugin", | ||
| "url": "https://github.com/jenkinsci/workflow-api-plugin/pull/420", | ||
| "repository": "jenkinsci/workflow-api-plugin", | ||
| "state": "OPEN", | ||
| "author": "strangelookingnerd", | ||
| "labels": null, | ||
| "body": "This PR aims to migrate all tests to JUnit5. Changes include:\n\nMigrate annotations and imports\nMigrate assertions\nRemove public visibility for test classes and methods\nMinor clean up\n\nI am well aware that this is a quite large changeset however I hope that there is still interest in this PR and it will be reviewed.\nIf there are any questions, please do not hesitate to ping me.\nSubmitter checklist\n\n Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!\n Ensure that the pull request title represents the desired changelog entry\n Please describe what you did\n Link to relevant issues in GitHub or Jira\n Link to relevant pull requests, esp. upstream and downstream changes\n Ensure you have provided tests that demonstrate the feature works or the issue is fixed", | ||
| "createdAt": "2025-07-28T07:34:30Z" | ||
| "createdAt": "2025-07-28T10:42:45Z" | ||
| }, | ||
| { | ||
| "title": "Migrate tests to JUnit5", | ||
| "url": "https://github.com/jenkinsci/workflow-api-plugin/pull/420", | ||
| "repository": "jenkinsci/workflow-api-plugin", | ||
| "url": "https://github.com/jenkinsci/workflow-durable-task-step-plugin/pull/465", | ||
| "repository": "jenkinsci/workflow-durable-task-step-plugin", | ||
| "state": "OPEN", | ||
| "author": "strangelookingnerd", | ||
| "labels": null, | ||
| "body": "This PR aims to migrate all tests to JUnit5. Changes include:\n\nMigrate annotations and imports\nMigrate assertions\nRemove public visibility for test classes and methods\nMinor clean up\n\nI am well aware that this is a quite large changeset however I hope that there is still interest in this PR and it will be reviewed.\nIf there are any questions, please do not hesitate to ping me.\nSubmitter checklist\n\n Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!\n Ensure that the pull request title represents the desired changelog entry\n Please describe what you did\n Link to relevant issues in GitHub or Jira\n Link to relevant pull requests, esp. upstream and downstream changes\n Ensure you have provided tests that demonstrate the feature works or the issue is fixed", | ||
| "createdAt": "2025-07-28T10:42:45Z" | ||
| "createdAt": "2025-07-28T07:34:30Z" | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pull requests in this list are being reordered, but the sorting logic appears to be inconsistent. For example, this block is sorted in descending order of createdAt, but other reordered blocks in this file are sorted in ascending order (e.g., lines 403-422).
To improve maintainability and reduce diff noise in these automated updates, the list should be sorted consistently. Sorting by createdAt in descending order would be a sensible default, placing the newest PRs at the top.
| # jenkinsci/workflow-api-plugin - Migrate tests to JUnit5 (OPEN) | ||
| https://github.com/jenkinsci/workflow-api-plugin/pull/420 | ||
|
|
||
| # jenkinsci/workflow-durable-task-step-plugin - Migrate tests to JUnit5 (OPEN) | ||
| https://github.com/jenkinsci/workflow-durable-task-step-plugin/pull/465 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to junit5_candidates.json, the pull requests in this list are being reordered with inconsistent sorting logic. Some are sorted descending by creation date, while others are ascending.
For consistency and to make diffs cleaner, this list should be sorted in a deterministic way, for example, by repository and then PR number, or by creation date.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (1)
data/junit5/junit5_candidates.json (1)
3949-3970: Same issue: Dependabot dependency bumps are misclassified as JUnit 5 migration PRsThis BOM repo entry is a dependency update and includes release notes mentioning “Migrate tests to JUnit5,” which can trigger false positives. Please apply the same exclusion heuristics proposed earlier.
🧹 Nitpick comments (11)
junit5_candidate_prs.txt (2)
1-3: Optional: enforce stable ordering and formatting via the generator to reduce churnTo minimize daily diff noise and make reviews easier:
- Keep a stable ordering within each status group (e.g., sort by owner/repo, then PR number).
- Normalize status label casing and “JUnit 5” spelling across entries.
- Consider grouping non-migration dependency updates (BOM, dependabot, okhttp, etc.) into a separate section to keep migration candidates high-signal.
If desired, I can provide a small formatter to run post-generation.
4-6: Optional: standardize phrasing to “JUnit 5”Some entries use “JUnit5” and others “JUnit 5”. If you want to standardize wording:
I can add a normalizer step to the action that rewrites “JUnit5” to “JUnit 5” in titles (non-URL lines) while preserving the original link text. Want me to submit a patch?
data/junit5/junit5_candidates.json (9)
9-10: Normalize labels: prefer empty array over null for consistencyRepresenting no labels as [] instead of null avoids downstream null checks and keeps the JSON schema consistent.
Apply this diff to normalize labels in these entries:
- "labels": null, + "labels": [], - "labels": null, + "labels": [], - "labels": null, + "labels": [],Also applies to: 19-20, 29-30
109-110: Normalize labels: prefer [] over nullSame rationale as earlier: avoid nulls in collections.
- "labels": null, + "labels": [], - "labels": null, + "labels": [],Also applies to: 119-120
409-411: Normalize labels to []Keep label representation uniform.
- "labels": null, + "labels": [], - "labels": null, + "labels": [],Also applies to: 419-421
479-480: Normalize labels to []Replace null with an empty list.
- "labels": null, + "labels": [], - "labels": null, + "labels": [],Also applies to: 489-491
509-511: Normalize labels to []For consistency and simpler consumers.
- "labels": null, + "labels": [], - "labels": null, + "labels": [],Also applies to: 519-521
614-622: Scope check: include infra/supporting PRs or only migration PRs? Also normalize labelsThis entry adds a JUnit 5 extension (support infra), not a migration PR. If the dataset is meant for “migration candidates,” consider either:
- including a “type” field (MIGRATION | INFRA | DEPENDENCY), or
- restricting this file to migration PRs only.
Also, labels should be [] rather than null.
- "labels": null, + "labels": [],Would you like me to draft a small enrichment step to add a “type” field based on title/author/labels?
1701-1712: Scope check: infra PR included as migration candidateThis is an enabling change in jenkins-test-harness, not a migration of tests in a repository. If the intent is to track strictly migration PRs, consider categorizing such PRs as INFRA and/or exclude them from this list.
If helpful, I can propose a heuristic (title/body patterns + repo allowlist) to classify entries into MIGRATION vs INFRA.
2787-2789: Normalize labels to []Prefer [] over null for labels to simplify consumers.
- "labels": null, + "labels": [],
4787-4796: Policy change PRs included; consider categorization“Optionally ban JUnit 4 imports” is a policy/config change (plugin-pom), not a migration. Recommend categorizing as INFRA and separating from migration candidate lists to avoid skewing metrics.
If desired, I can add a “type” classifier to the data emission step and backfill existing entries.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
data/junit5/junit5_candidates.json(14 hunks)junit5_candidate_prs.txt(13 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
data/junit5/junit5_candidates.json (1)
cmd/find-junit5-prs/main.go (1)
isJUnit5MigrationPR(372-501)
junit5_candidate_prs.txt (1)
cmd/find-junit5-prs/main.go (1)
isJUnit5MigrationPR(372-501)
🔇 Additional comments (8)
junit5_candidate_prs.txt (5)
1-1: Header timestamp refresh looks goodDate updated to 2025-08-14 01:41:34. No concerns with format or placement.
445-447: CLOSED entries still closed — no action requiredI ran the provided verification script; both PRs remain closed (not merged):
- jenkinsci/oidc-provider-plugin#68 — state: closed, merged_at: null (junit5_candidate_prs.txt lines 445–447)
- jenkinsci/tekton-client-plugin#434 — state: closed, merged_at: null (junit5_candidate_prs.txt lines 952–954)
No action needed.
244-246: MERGED entries confirmed — no action requiredVerified the referenced PRs via the GitHub API — all are MERGED:
- jenkinsci/file-parameters-plugin#244 — MERGED (2025-08-13T16:14:44Z)
- jenkinsci/jenkins-test-harness#967 — MERGED (2025-05-12T09:14:01Z)
- jenkinsci/pipeline-agent-build-history-plugin#104 — MERGED (2025-03-21T12:18:18Z)
- jenkinsci/jobcacher-plugin#403 — MERGED (2025-03-07T14:22:06Z)
- jenkinsci/bom#5327 — MERGED (2025-07-15T13:40:36Z)
Locations in the codebase to which this applies:
- junit5_candidate_prs.txt — lines 244-246
- junit5_candidate_prs.txt — lines 475-477
- junit5_candidate_prs.txt — lines 634-636
- junit5_candidate_prs.txt — lines 763-765
- junit5_candidate_prs.txt — lines 1063-1065
No further changes required.
4-6: Verified — all NEW OPEN JUnit5 candidate entries are live and relevantAll listed PRs are currently OPEN and their title/body match the JUnit 5 migration heuristics.
- jenkinsci/ec2-plugin#1131
- jenkinsci/git-push-plugin#107
- jenkinsci/csp-plugin#48
- jenkinsci/workflow-durable-task-step-plugin#465
- jenkinsci/structs-plugin#223
- jenkinsci/tuleap-oauth-plugin#499
- jenkinsci/command-launcher-plugin#108
- jenkinsci/docker-fixtures#122
1-1366: Validator run — 2 header lines flagged as missing URLs; please verifyI ran the provided validator: no duplicate URLs found, but it reported two "Missing URL after header" entries at the top of junit5_candidate_prs.txt.
- Missing URL after header: "# JUnit 5 migration PR candidates found on 2025-08-14 01:41:34"
- Missing URL after header: "# Add relevant URLs to junit5_pr_urls.txt after verification"
Action (choose one):
- If these are file-level metadata, ignore them or convert them to a form the validator skips.
- Otherwise either add the intended URL(s) or update the validator to only treat repo-entry headers (for example: ^# jenkinsci/.* - .*\((OPEN|MERGED|CLOSED)\)$).
data/junit5/junit5_candidates.json (3)
809-820: LGTM: merged migration PR captured accuratelyFields look correct; labels array is present and consistent.
1579-1590: LGTM: closed migration attempt retained for traceabilityIncluding CLOSED state here can be useful for historical coverage. No action needed.
2297-2307: LGTM: merged migration PRs with consistent metadataBoth entries look valid; labels are arrays (not null) and states MERGED.
Also applies to: 2311-2319
| { | ||
| "title": "build(deps-dev): bump junit-jupiter-engine.version from 5.12.2 to 5.13.3", | ||
| "url": "https://github.com/jenkinsci/tekton-client-plugin/pull/434", | ||
| "repository": "jenkinsci/tekton-client-plugin", | ||
| "state": "CLOSED", | ||
| "author": "dependabot", | ||
| "labels": [ | ||
| "dependencies", | ||
| "java" | ||
| ], | ||
| "body": "Bumps junit-jupiter-engine.version from 5.12.2 to 5.13.3.\nUpdates org.junit.jupiter:junit-jupiter-engine from 5.12.2 to 5.13.3\n\nRelease notes\nSourced from org.junit.jupiter:junit-jupiter-engine's releases.\n\nJUnit 5.13.3 = Platform 1.13.3 + Jupiter 5.13.3 + Vintage 5.13.3\nSee Release Notes.\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.2 = Platform 1.13.2 + Jupiter 5.13.2 + Vintage 5.13.2\nSee Release Notes.\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.1 = Platform 1.13.1 + Jupiter 5.13.1 + Vintage 5.13.1\nSee Release Notes.\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.0 = Platform 1.13.0 + Jupiter 5.13.0 + Vintage 5.13.0\nSee Release Notes.\nNew Contributors\n\n@Oyster-zx made their first contribution in junit-team/junit5#4311\n@etrandafir93 made their first contribution in junit-team/junit5#4336\n@hanszt made their first contribution in junit-team/junit5#3377\n@ngocnhan-tran1996 made their first contribution in junit-team/junit5#4545\n\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.0-RC1 = Platform 1.13.0-RC1 + Jupiter 5.13.0-RC1 + Vintage 5.13.0-RC1\nSee Release Notes.\nNew Contributors\n\n@hanszt made their first contribution in junit-team/junit5#3377\n\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.0-M3 = Platform 1.13.0-M3 + Jupiter 5.13.0-M3 + Vintage 5.13.0-M3\nSee Release Notes.\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.0-M2 = Platform 1.13.0-M2 + Jupiter 5.13.0-M2 + Vintage 5.13.0-M2\nSee Release Notes.\nFull Changelog: junit-team/[email protected]\n\n\n... (truncated)\n\n\nCommits\n\n9e8abdd Release 5.13.3\n8a0be13 Improve message of discovery issues for ineffective @Order annotations (#4718)\n59d562e Fix Javadoc references\nf4c202b Strip reasons when concatenating them in ConditionEvaluationResult\ne5d0e0b Fix multiple issues with ConditionEvaluationResult reason values\ne5c9a56 Improve display names in tests\ncf19095 Polish release notes\naec59d2 Update dependency com.puppycrawl.tools:checkstyle to v10.26.1\n7d8fe2a Update dependency com.puppycrawl.tools:checkstyle to v10.26.0\nd1ffa36 Update dependency com.puppycrawl.tools:checkstyle to v10.25.1\nAdditional commits viewable in compare view\n\n\n\nUpdates org.junit.vintage:junit-vintage-engine from 5.12.2 to 5.13.3\n\nRelease notes\nSourced from org.junit.vintage:junit-vintage-engine's releases.\n\nJUnit 5.13.3 = Platform 1.13.3 + Jupiter 5.13.3 + Vintage 5.13.3\nSee Release Notes.\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.2 = Platform 1.13.2 + Jupiter 5.13.2 + Vintage 5.13.2\nSee Release Notes.\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.1 = Platform 1.13.1 + Jupiter 5.13.1 + Vintage 5.13.1\nSee Release Notes.\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.0 = Platform 1.13.0 + Jupiter 5.13.0 + Vintage 5.13.0\nSee Release Notes.\nNew Contributors\n\n@Oyster-zx made their first contribution in junit-team/junit5#4311\n@etrandafir93 made their first contribution in junit-team/junit5#4336\n@hanszt made their first contribution in junit-team/junit5#3377\n@ngocnhan-tran1996 made their first contribution in junit-team/junit5#4545\n\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.0-RC1 = Platform 1.13.0-RC1 + Jupiter 5.13.0-RC1 + Vintage 5.13.0-RC1\nSee Release Notes.\nNew Contributors\n\n@hanszt made their first contribution in junit-team/junit5#3377\n\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.0-M3 = Platform 1.13.0-M3 + Jupiter 5.13.0-M3 + Vintage 5.13.0-M3\nSee Release Notes.\nFull Changelog: junit-team/[email protected]\nJUnit 5.13.0-M2 = Platform 1.13.0-M2 + Jupiter 5.13.0-M2 + Vintage 5.13.0-M2\nSee Release Notes.\nFull Changelog: junit-team/[email protected]\n\n\n... (truncated)\n\n\nCommits\n\n9e8abdd Release 5.13.3\n8a0be13 Improve message of discovery issues for ineffective @Order annotations (#4718)\n59d562e Fix Javadoc references\nf4c202b Strip reasons when concatenating them in ConditionEvaluationResult\ne5d0e0b Fix multiple issues with ConditionEvaluationResult reason values\ne5c9a56 Improve display names in tests\ncf19095 Polish release notes\naec59d2 Update dependency com.puppycrawl.tools:checkstyle to v10.26.1\n7d8fe2a Update dependency com.puppycrawl.tools:checkstyle to v10.26.0\nd1ffa36 Update dependency com.puppycrawl.tools:checkstyle to v10.25.1\nAdditional commits viewable in compare view\n\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.\n\n\nDependabot commands and options\n\nYou can trigger Dependabot actions by commenting on this PR:\n\n@dependabot rebase will rebase this PR\n@dependabot recreate will recreate this PR, overwriting any edits that have been made to it\n@dependabot merge will merge this PR after your CI passes on it\n@dependabot squash and merge will squash and merge this PR after your CI passes on it\n@dependabot cancel merge will cancel a previously requested merge and block automerging\n@dependabot reopen will reopen this PR if it is closed\n@dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n@dependabot show \u003cdependency name\u003e ignore conditions will show all of the ignore conditions of the specified dependency\n@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)", | ||
| "createdAt": "2025-07-15T19:26:54Z" | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
Dependency bump PRs are being included as migration candidates (Dependabot)
This Dependabot “bump” PR is not a migration PR and will likely be incorrectly classified by current heuristics since:
- Title/body contain “JUnit 5” but it’s a dependency update.
- Author is dependabot.
- Labels include “dependencies”.
Recommend excluding:
- Authors equal to dependabot (case-insensitive)
- Titles starting with build(deps or chore(deps
- Titles containing “bump” (case-insensitive) or label “dependencies”
Run this script to quantify and review such entries:
To harden the classifier, consider updating cmd/find-junit5-prs/main.go:
// Exclude common non-migration patterns
if strings.HasPrefix(strings.ToLower(pr.Title), "build(deps") ||
strings.HasPrefix(strings.ToLower(pr.Title), "chore(deps") ||
regexp.MustCompile(`(?i)\bbump\b`).MatchString(pr.Title) ||
strings.EqualFold(pr.Author, "dependabot") {
return false
}
// Also exclude if labeled 'dependencies'
for _, label := range pr.Labels {
if strings.EqualFold(label, "dependencies") {
return false
}
}As a follow-up, I can open a PR to implement and test these filters. Do you want me to proceed?
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
FILE="data/junit5/junit5_candidates.json"
# Validate JSON
jq . >/dev/null < "$FILE"
echo "Dependabot-authored entries:"
jq -r '.prs[] | select((.author|ascii_downcase)=="dependabot") | [.repository,.url,.title,.author] | @tsv' "$FILE" | wc -l
echo "Entries with 'dependencies' label:"
jq -r '.prs[] | select((.labels // []) | index("dependencies")) | [.repository,.url,.title,.labels] | @tsv' "$FILE" | wc -l
echo "Entries that look like bumps:"
jq -r '.prs[] | select((.title|test("(?i)\\bbump\\b")) or (.title|test("(?i)^(build|chore)\\(deps"))) | [.repository,.url,.title] | @tsv' "$FILE" | wc -l
echo
echo "Sample suspect entries:"
jq -r '.prs[] | select(((.author|ascii_downcase)=="dependabot") or (.title|test("(?i)\\bbump\\b")) or (.title|test("(?i)^(build|chore)\\(deps"))) or ((.labels // []) | index("dependencies"))) | [.repository,.url,.title,.author, (.labels // [])] | @tsv' "$FILE" | head -n 20Length of output: 635
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
FILE="data/junit5/junit5_candidates.json"
# Validate JSON
jq . >/dev/null < "$FILE"
echo "Dependabot-authored entries:"
jq -r '.prs[] | select((.author|ascii_downcase)=="dependabot") | .repository' "$FILE" | wc -l
echo "Entries with label 'dependencies' (case-insensitive):"
jq -r '.prs[] | select((.labels // []) | map(tostring) | map(ascii_downcase) | index("dependencies")) | .repository' "$FILE" | wc -l
echo "Entries with bump or build(deps / chore(deps) in title (case-insensitive):"
jq -r '.prs[] | select((.title|test("(?i)\\bbump\\b")) or (.title|test("(?i)^(build|chore)\\(deps)"))) | .repository' "$FILE" | wc -l
echo
echo "Sample suspect entries (repo, url, title, author, labels):"
jq -r '.prs[] | select(((.author|ascii_downcase)=="dependabot") or (.title|test("(?i)\\bbump\\b")) or (.title|test("(?i)^(build|chore)\\(deps)")) or ((.labels // []) | map(ascii_downcase) | index("dependencies"))) | [ .repository, .url, .title, .author, ((.labels // []) | map(tostring) | join(", ")) ] | @tsv' "$FILE" | head -n 20Length of output: 972
Exclude Dependabot / dependency-bump PRs from migration candidates — verified and action required
Short summary: I checked data/junit5/junit5_candidates.json and found 93 PRs authored by "dependabot" and 69 PRs labeled "dependencies" — strong evidence the current heuristics are including many dependency-bump PRs as migration candidates. We should add explicit exclusions.
Files to update
- cmd/find-junit5-prs/main.go — add exclusion rules to the PR filtering logic
- (optional) add unit tests exercising these filters and a small integration test against data/junit5/junit5_candidates.json
Suggested filter (replace or augment existing early-return checks):
var bumpRE = regexp.MustCompile(`(?i)\bbump\b`)
var buildDepsRE = regexp.MustCompile(`(?i)^build\(deps`)
var choreDepsRE = regexp.MustCompile(`(?i)^chore\(deps`)
// Exclude common non-migration patterns
titleLower := strings.ToLower(pr.Title)
if strings.HasPrefix(titleLower, "build(deps") ||
strings.HasPrefix(titleLower, "chore(deps") ||
bumpRE.MatchString(pr.Title) ||
strings.EqualFold(pr.Author, "dependabot") {
return false
}
// Also exclude if labeled 'dependencies'
for _, label := range pr.Labels {
if strings.EqualFold(label, "dependencies") {
return false
}
}Repro script (safe jq regexes) to reproduce counts locally:
#!/usr/bin/env bash
set -euo pipefail
FILE="data/junit5/junit5_candidates.json"
jq . >/dev/null < "$FILE"
echo "Dependabot-authored entries:"
jq -r '.prs[] | select((.author|ascii_downcase)=="dependabot") | .url' "$FILE" | wc -l
echo "Entries with label 'dependencies' (case-insensitive):"
jq -r '.prs[] | select((.labels // []) | map(ascii_downcase) | index("dependencies")) | .url' "$FILE" | wc -l
echo "Entries with 'bump' in title or title starting with build(deps)/chore(deps):"
jq -r '.prs[] | select((.title|test("(?i)\\bbump\\b")) or (.title|test("(?i)^build\\(deps")) or (.title|test("(?i)^chore\\(deps"))) | .url' "$FILE" | wc -lI can open a PR implementing these filters + tests if you want me to proceed.
🤖 Prompt for AI Agents
In data/junit5/junit5_candidates.json around lines 3513-3525 we see a dependabot
dependency-bump PR that should not be treated as a migration candidate; update
cmd/find-junit5-prs/main.go to exclude such PRs by adding early-return filters
for Author == "dependabot", titles containing "bump" or starting with
"build(deps" or "chore(deps" (case-insensitive), and skip PRs labeled
"dependencies" (case-insensitive); implement these checks in the PR filtering
logic, add unit tests covering each exclusion case and an integration test that
runs the provided jq repro script against data/junit5/junit5_candidates.json to
verify counts, and ensure tests run in CI.
This PR contains automatically updated PR statistics data. Generated by GitHub Actions.
Summary by CodeRabbit
Documentation
Chores