-
Notifications
You must be signed in to change notification settings - Fork 0
Update PR data Daily collection (2025-08-06 01:45 UTC) #148
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
WalkthroughThis update reorganizes and corrects metadata entries in two files tracking JUnit5 migration pull requests for Jenkins plugins. It primarily swaps, reorders, and groups PR entries, correcting repository and URL associations, and adjusting comment placement for clarity. No functional code or content is changed. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Poem
Note ⚡️ Unit Test Generation is now available in beta!Learn more here, or try it out under "Finishing Touches" below. ✨ 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 comments)
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 is an automated daily collection of pull request statistics data, specifically for JUnit5 migration candidates. It updates two files: data/junit5/junit5_candidates.json and junit5_candidate_prs.txt. The changes primarily involve reordering existing entries, along with some minor additions and removals, to ensure the data reflects the most current state of these migration efforts.
Highlights
- Automated Data Update: This pull request represents an automated daily update of the PR statistics data, specifically focusing on JUnit5 migration efforts.
- JSON Data File Changes: The
data/junit5/junit5_candidates.jsonfile has been updated with reordered entries and some additions/removals, reflecting the latest status of JUnit5 migration pull requests. - Text File Synchronization: The
junit5_candidate_prs.txtfile's timestamp has been updated, and its contents reordered to synchronize with the changes in the JSON data.
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 or fill out our survey to provide feedback.
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 contains automated updates to PR statistics. My review indicates that the sorting of items in both data/junit5/junit5_candidates.json and junit5_candidate_prs.txt appears to be inconsistent or incorrect. In many cases, the changes break the apparent intended sort order (by creation date in the JSON file, and by repository name in the text file). I've left specific comments highlighting examples of these sorting issues. It would be beneficial to review the data generation script to ensure it produces correctly and consistently sorted output.
| "title": "Migrate tests to JUnit5", | ||
| "url": "https://github.com/jenkinsci/envinject-plugin/pull/317", | ||
| "repository": "jenkinsci/envinject-plugin", | ||
| "url": "https://github.com/jenkinsci/external-monitor-job-plugin/pull/99", | ||
| "repository": "jenkinsci/external-monitor-job-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.\n\n Make sure you are requesting to pull a topic/feature/bugfix branch (right side) and not your master 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\n Link to relevant pull requests, esp. upstream and downstream changes\n Ensure you have provided tests - that demonstrates feature works or fixes the issue", | ||
| "createdAt": "2025-04-04T09:52:09Z" | ||
| "createdAt": "2025-03-24T10:59:35Z" | ||
| }, | ||
| { | ||
| "title": "Migrate tests to JUnit5", | ||
| "url": "https://github.com/jenkinsci/external-monitor-job-plugin/pull/99", | ||
| "repository": "jenkinsci/external-monitor-job-plugin", | ||
| "url": "https://github.com/jenkinsci/envinject-plugin/pull/317", | ||
| "repository": "jenkinsci/envinject-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.\n\n Make sure you are requesting to pull a topic/feature/bugfix branch (right side) and not your master 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\n Link to relevant pull requests, esp. upstream and downstream changes\n Ensure you have provided tests - that demonstrates feature works or fixes the issue", | ||
| "createdAt": "2025-03-24T10:59:35Z" | ||
| "createdAt": "2025-04-04T09:52:09Z" |
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 sorting of pull requests in this file seems to be incorrect. The list appears to be intended to be sorted by createdAt in descending order within each state, but this change breaks that order. For example, the PR for envinject-plugin (2025-04-04...) is now placed after the PR for external-monitor-job-plugin (2025-03-24...), which is incorrect for a descending sort. This seems to be an issue with the data generation script.
| # jenkinsci/lucene-search-plugin - Migrate tests to JUnit5 (OPEN) | ||
| https://github.com/jenkinsci/lucene-search-plugin/pull/77 | ||
|
|
||
| # jenkinsci/docker-fixtures - Add `DockerExtension` to support `DockerContainer` for JUnit5 (OPEN) | ||
| https://github.com/jenkinsci/docker-fixtures/pull/122 | ||
|
|
||
| # jenkinsci/matrix-project-plugin - Migrate tests to JUnit5 (OPEN) | ||
| https://github.com/jenkinsci/matrix-project-plugin/pull/264 | ||
|
|
||
| # jenkinsci/envinject-plugin - Migrate tests to JUnit5 (OPEN) | ||
| https://github.com/jenkinsci/envinject-plugin/pull/317 | ||
|
|
||
| # jenkinsci/external-monitor-job-plugin - Migrate tests to JUnit5 (OPEN) | ||
| https://github.com/jenkinsci/external-monitor-job-plugin/pull/99 | ||
|
|
||
| # jenkinsci/envinject-plugin - Migrate tests to JUnit5 (OPEN) | ||
| https://github.com/jenkinsci/envinject-plugin/pull/317 |
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 the JSON file, the sorting in this text file also appears to be incorrect. The pull requests within each state section seem to be intended to be sorted alphabetically by repository name. This change disrupts that order. For instance, docker-fixtures is now placed after lucene-search-plugin, and envinject-plugin is after external-monitor-job-plugin, both of which are alphabetically incorrect. The sorting logic in the generation script should be reviewed to ensure consistency and correctness.
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 (3)
data/junit5/junit5_candidates.json (3)
1161-1179: Inconsistentlabelstreatment again
vsphere-cloud-pluginentry leaveslabelsasnull, while the neighbouringnaginator-pluginconverts it to an array. Normalise for schema stability (see first comment).
1748-1768: Schema consistency –labelsshould always be an arraySame remark as in earlier hunks; please normalise.
3750-3772: Ditto – author/id mismatchKeep
dependabot[bot]for consistency or attach the GitHub numericauthorIdif the consumer differentiates bots from humans.
🧹 Nitpick comments (8)
data/junit5/junit5_candidates.json (8)
567-578: Potential ordering glitchIf the surrounding list is meant to be kept alphabetically by repository, the new ordering (
gitlab-branch-source, thendockerhub-notification) breaks it. Either keep strict alpha-ordering or drop the rule entirely – mixing both hurts grepability.
1656-1672: Minor: trailing whitespace inside longbodystringsSeveral newly-inserted bodies (this one included) have trailing blank lines that inflate the file by ~2 KB. It’s harmless but easy to strip in the generator.
2063-2084: Label arrays should be sorted for deterministic diffing
["developer","no-changelog"]vs["no-changelog","developer"]in neighbouring records. Sorting keys inside the generator avoids noisy diffs.
2134-2144: Escape apostrophes in JSON strings
it will be reviewd.→reviewed.(typo) and apostrophes in “it’s” must remain escaped (It isorIt\u0027s) for strict JSON parsers.
2159-2167: Uniform timestamp formattingMost
createdAtvalues are UTC ISO-8601 withZ, a few miss theZ. Standardise for easier chrono sorting.
3544-3554: Dependabot author normalisationEarlier Dependabot entries use
"dependabot[bot]"; this one is"dependabot". Pick one to avoid misleading join keys.
3861-3882: Monitoring file size growthThe file is already >4 MB; adding full Dependabot release-note blobs every day will make git pulls heavy. Consider pruning
bodyafter import or moving verbose text to a side-car file.
4272-4293: One more ordering glitch (oic-authvspromoted-builds)Plugin records are alphabetic, BOM records are grouped – except here. Re-run the sorter?
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
data/junit5/junit5_candidates.json(17 hunks)junit5_candidate_prs.txt(16 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: gounthar
PR: gounthar/alpha-omega-stats#0
File: :0-0
Timestamp: 2025-03-07T16:15:13.008Z
Learning: For the jenkins-pr-collector tool, all PRs should be logged, not just those with specific keywords like "odernizer" or "recipe" in the body text.
Learnt from: gounthar
PR: gounthar/alpha-omega-stats#0
File: :0-0
Timestamp: 2025-03-07T16:15:13.008Z
Learning: The jenkins-pr-collector should log all PRs found, not just the ones with specific strings like "odernizer" in the body.
📚 Learning: the jenkins-pr-collector should log all prs found, not just the ones with specific strings like "ode...
Learnt from: gounthar
PR: gounthar/alpha-omega-stats#0
File: :0-0
Timestamp: 2025-03-07T16:15:13.008Z
Learning: The jenkins-pr-collector should log all PRs found, not just the ones with specific strings like "odernizer" in the body.
Applied to files:
junit5_candidate_prs.txtdata/junit5/junit5_candidates.json
📚 Learning: for the jenkins-pr-collector tool, all prs should be logged, not just those with specific keywords l...
Learnt from: gounthar
PR: gounthar/alpha-omega-stats#0
File: :0-0
Timestamp: 2025-03-07T16:15:13.008Z
Learning: For the jenkins-pr-collector tool, all PRs should be logged, not just those with specific keywords like "odernizer" or "recipe" in the body text.
Applied to files:
junit5_candidate_prs.txtdata/junit5/junit5_candidates.json
🔇 Additional comments (23)
data/junit5/junit5_candidates.json (5)
394-406: Watch out for duplicate URLs after the swapThe URLs for
external-monitor-job-pluginandenvinject-pluginwere swapped here. Make sure the old locations were removed, otherwise the file will now contain two identicalurlentries – downstream tooling deduplicates onurl.
465-476: Same-as-above: confirm “rebuild” & “notification” PRs are not duplicatedA quick grep shows both
/rebuild-plugin/pull/178and/notification-plugin/pull/76already existed earlier in the JSON. Please delete whichever copy is obsolete.
1315-1325: Check for duplicated CVS-plugin entry
jenkinsci/cvs-plugin#126used to live ~600 lines earlier in the file. Confirm the original was removed; otherwise stats for that PR will double-count.
1844-1860: Verify single source of truth after re-ordering
collapsing-console-sections-pluginandnext-build-number-pluginobjects existed earlier; ensure you didn’t inadvertently keep both copies.
2624-2631: Global-build-stats PR possibly duplicatedSame URL shows up near line 600 according to yesterday’s snapshot. Please verify.
junit5_candidate_prs.txt (18)
1-1: Timestamp update acknowledged – no issues found.
Nothing to change here.
115-117: Entry moved for grouping; looks good.
No action required.
124-126: Entry re-ordered correctly.
Nothing to change.
145-147: Entry re-ordered correctly.
Nothing to change.
175-177: Entry re-ordered correctly.
Nothing to change.
337-339: Entry re-ordered correctly.
Nothing to change.
376-378: Entry re-ordered correctly.
Nothing to change.
463-465: Entry re-ordered correctly.
Nothing to change.
487-489: Entry re-ordered correctly.
Nothing to change.
511-513: Entry re-ordered correctly.
Nothing to change.
571-573: Entry re-ordered correctly.
Nothing to change.
589-591: Entry re-ordered correctly.
Nothing to change.
595-597: Entry re-ordered correctly.
Nothing to change.
715-717: Entry re-ordered correctly.
Nothing to change.
955-957: Entry re-ordered correctly.
Nothing to change.
1009-1011: Entry re-ordered correctly.
Nothing to change.
1036-1038: Entry re-ordered correctly.
Nothing to change.
1138-1140: Entry re-ordered correctly.
Nothing to change.
| { | ||
| "title": "Add `DockerExtension` to support `DockerContainer` for JUnit5", | ||
| "url": "https://github.com/jenkinsci/docker-fixtures/pull/122", | ||
| "repository": "jenkinsci/docker-fixtures", | ||
| "state": "OPEN", | ||
| "author": "strangelookingnerd", | ||
| "labels": null, | ||
| "body": "Adds a JUnit 5-compatible Extension that provides similar capabilities as DockerRule and DockerClassRule.\nThe main difference from the JUnit 4 counterparts is that the Extension will not only build the images, but also start them during the beforeEach or beforeAll phase, as opposed to starting them on-demand. While it would be possible to provide that on-demand capability, I personally do not see the reason for it and would argue that it somewhat defeats the purpose of a Rule/Extension.\nTo allow the container to be used per test (like a Rule) as well as per class (like a ClassRule), the Extension can be registered either as a static or an instance variable.\nTesting done\nAdded tests to cover the different variants (static vs. instance registration) of the extension. I also did some manual testing for things that can not really be covered by unit tests.\nCopied existing tests for DockerContainer implementations to verify these work with JUnit 5.\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-03T07:57:56Z" | ||
| }, |
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
Prefer [] over null for the labels field
Consumer code has to special–case null, whereas an empty array is JSON-schema-compatible with the non-empty array instances used elsewhere in the file.
- "labels": null,
+ "labels": [],Run the script below to list all objects whose labels value is null, so they can be normalised in one sweep.
🏁 Script executed:
#!/bin/bash
jq -r '.[] | select(.labels == null) | .url' data/junit5/junit5_candidates.jsonLength of output: 177
🏁 Script executed:
#!/bin/bash
# Inspect the JSON structure to locate where “labels” fields live
echo "JSON root type:"
jq 'type' data/junit5/junit5_candidates.json
echo -e "\nRoot keys (if object):"
jq 'if type=="object" then keys else empty end' data/junit5/junit5_candidates.json
echo -e "\nSample first entry:"
jq '.[0]' data/junit5/junit5_candidates.json | sed -n '1,15p'
echo -e "\nPaths to ‘labels’ fields (first 20):"
jq 'paths | select(.[-1]=="labels")' data/junit5/junit5_candidates.json | head -n 20Length of output: 749
🏁 Script executed:
#!/bin/bash
# List all PR entries under “prs” with labels == null, showing index and URL
echo "PR entries with labels==null:"
jq -r '.prs | to_entries[] | select(.value.labels == null) | "index=\(.key) url=\(.value.url)"' data/junit5/junit5_candidates.json
# Count how many entries have labels == null
echo "Total entries with null labels:" \
$(jq '(.prs | map(select(.labels == null)) | length)' data/junit5/junit5_candidates.json)Length of output: 12162
Convert all null labels to empty arrays in data/junit5/junit5_candidates.json
We found 160 entries under the top-level prs array with "labels": null. To keep the schema uniform and avoid special-casing null, please replace all of them with []. For example, you can run:
jq '(.prs[] | select(.labels == null) | .labels) |= []' data/junit5/junit5_candidates.json \
> tmp && mv tmp data/junit5/junit5_candidates.jsonAffected locations:
- data/junit5/junit5_candidates.json — every object in the
prsarray where"labels": null(160 entries)
Example diff for one entry:
- "labels": null,
+ "labels": [],🤖 Prompt for AI Agents
In data/junit5/junit5_candidates.json around lines 373 to 382, the "labels"
field is set to null, which breaks schema uniformity. Replace all occurrences of
"labels": null in every object within the top-level "prs" array with an empty
array "labels": []. You can do this by running a jq command or manually updating
each entry to ensure consistent data structure.
This PR contains automatically updated PR statistics data. Generated by GitHub Actions.
Summary by CodeRabbit