feat: Add "Export Filtered Results" - Download Org List as CSV / JSON - #1883
feat: Add "Export Filtered Results" - Download Org List as CSV / JSON#1883ida-jemi wants to merge 9 commits into
Conversation
|
@ida-jemi is attempting to deploy a commit to the s3dfx-cyber's projects Team on Vercel. A member of the Team first needs to authorize it. |
💬 Faster Reviews & AssignmentsHi @ida-jemi, for faster coordination and smoother communication, consider joining our Discord community: 👉 https://discord.gg/jYrbHKtn8t Useful Channels
|
|
✅ Program Classification VerifiedDetected contribution program:
Program-aware automation and routing are now enabled for this PR. |
✅ PR Validation PassedHi @ida-jemi, automated PR validation checks passed. Your PR is ready for review. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThe Organizations section header in ChangesOrganizations Export and Accessibility Improvements
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
👋 Thanks for opening a PR, @ida-jemi!Your PR has entered the 🚦 PR Review Pipeline.
🔄 Review Flow
A pipeline status comment may appear automatically as your PR progresses. ✅ Contributor Checklist
|
🤖 TENET Agent Review📋 SummaryThis pull request introduces a new feature to export the currently filtered list of GSoC organizations into either CSV or JSON format. The implementation includes new UI elements for an export dropdown and client-side JavaScript functions to handle data retrieval, formatting, and file downloads. The approach is sound for client-side data export, providing useful functionality and considering basic data integrity. 🔐 Security Findings
🧹 Code Quality
✅ What's Done Well
📝 Overall VerdictREQUEST CHANGES - Functional issues with |
TarunyaProgrammer
left a comment
There was a problem hiding this comment.
- Export dropdown behavior, reset state, and Escape key handling work correctly.
getFilteredOrgshas been removed.- CSV export now uses
Tagsinstead ofLanguages. - Accessibility improvements for the export controls and org picker search input are in place.
- The
filteredOrgsscope issue has been resolved by exposing the active filtered list through a shared getter, allowing exports to access the current filtered dataset correctly. - Tests and lint checks are passing.
The implementation now aligns with the requested changes. LGTM.
S3DFX-CYBER
left a comment
There was a problem hiding this comment.
This adds an "Export Filtered Results" feature — a dropdown in the org filter bar with CSV and JSON export options, plus a toast notification for empty results. The implementation is clean: the CSV uses proper double-quote escaping, the JSON export includes all relevant org fields, and the download is triggered via a Blob URL with proper cleanup (URL.revokeObjectURL). The export button is disabled when there are 0 results. Accessibility is well-handled — aria-haspopup, aria-expanded, aria-controls, role="menu"/role="menuitem", and Escape-to-close.
There's no linked issue. Add a Closes #N.
The CSV export uses githubUrlFromValue(org.github) — verify this function exists in scope. It's used elsewhere in the codebase but make sure it's accessible from the inline script where exportResults is defined.
The downloadFile function creates an <a> element, appends it to document.body, clicks it, then removes it. This is the standard pattern for triggering downloads. The URL.revokeObjectURL cleanup is correct.
The toast notification (#exportToast) uses role="alert" with aria-live="assertive" — this is appropriate for the empty-results error case. The 3-second timeout before hiding is reasonable.
The PR also includes several accessibility improvements unrelated to the export feature: aria-label on the hidden searchInput, aria-label on the resume file upload input, a <label for="pwAutosaveToggle"> fix (moving <p id="pwPrivacyNote"> outside the <label> so it's not part of the label text), and aria-label on the org picker search input. These are good fixes but should be in their own PR or at least called out in the PR description.
The <label for="pwAutosaveToggle"> fix is important — previously the privacy note paragraph was inside the <label>, which meant screen readers would read the entire paragraph as part of the checkbox label. Moving it outside is correct.
The export dropdown menu markup uses role="menu" and role="menuitem" — same ARIA concern as #2053: without full menu keyboard navigation (roving tabindex, arrow keys), these roles don't match the actual interaction. Since this is a simple two-item dropdown with click handlers, consider using role="group" or no explicit roles and relying on the button semantics. Or implement the full ARIA menu pattern if you want the roles.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
📏 Large PR DetectedThis PR has 4493 lines changed (3848+ / 645-). Large PRs are harder to review and more likely to introduce issues. Consider splitting into smaller, focused PRs when possible. |
|
🚦 PR Review Pipeline
Last updated: Sat, 08 Aug 2026 17:01:12 GMT |
🤖 TENET Agent Review📋 SummaryThis pull request introduces a new "Export Filtered Results" feature, allowing users to download the currently displayed GSoC organizations in CSV or JSON format. It also includes significant updates to the GitHub workflows, enhancing PR classification logic with dual-label guards and improved error handling. Frontend UI/UX has been refined for both desktop and mobile views, particularly for filtering and the new export functionality. 🔐 Security Findings
🧹 Code Quality
✅ What's Done Well
📝 Overall VerdictREQUEST CHANGES - Address the HTML duplication and implement CSV injection sanitization. |
There was a problem hiding this comment.
All reported issues were addressed across 32 files (changes from recent commits).
Tip: Review your code locally with the cubic CLI to iterate faster.
Tip: cubic used a learning from your PR history. Let your coding agent read cubic learnings directly with the cubic MCP.
Re-trigger cubic
Signed-off-by: J. Ida Jemi <idajemi.9i@gmail.com>
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
🤖 TENET Agent Review📋 SummaryThis pull request introduces a new feature allowing users to export the currently filtered list of GSoC organizations in either CSV or JSON format. The implementation is entirely client-side, generating and downloading files directly from the browser based on the 🔐 Security FindingsNo security issues found. The client-side nature of the export, combined with proper CSV escaping and 🧹 Code Quality
✅ What's Done Well
📝 Overall VerdictREQUEST CHANGES - Minor code quality improvements are recommended for better maintainability and consistency. Review powered by TENET Agent 🛡️ | Triggered automatically on PR #1883 |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
🤖 TENET Agent Review📋 SummaryThis pull request introduces a new feature allowing users to export the currently filtered list of GSoC organizations into CSV or JSON format. The implementation includes a new UI dropdown for export options, client-side JavaScript functions for data formatting and file download, and significant accessibility enhancements. The approach is generally sound for a client-side data export feature, but there are minor security and code quality improvements to consider. 🔐 Security Findings
🧹 Code Quality
✅ What's Done Well
📝 Overall VerdictREQUEST CHANGES - Address the CSV injection risk and minor code quality issues for improved robustness and maintainability. Review powered by TENET Agent 🛡️ | Triggered automatically on PR #1883 |
|
|
Hi @S3DFX-CYBER, Thanks for the thorough review!
Also merged in latest |
There was a problem hiding this comment.
0 issues found across 1 file (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Requires human review: Auto-approval blocked by 11 unresolved issues from previous reviews.
Re-trigger cubic



Program
Program: GSSoC
📌 Related Issue
Closes #1746
Issue Description
Add an "Export Filtered Results" feature that allows users to download the currently filtered list of GSoC organizations in either CSV or JSON format. This helps users save, analyze, and share filtered organization data without manually copying information.
✨ What I Changed
Added Export Functionality
UI Enhancements
Data Handling
📸 Screenshots
🧪 Testing
Tested Scenarios
📂 Type of Change
✅ Checklist
🎯 Result
Users can now easily export their currently filtered GSoC organization list in CSV or JSON format, making it easier to track, compare, and shortlist organizations for GSoC preparation.