[PR #247] [MERGED] Add GitHub starred-list filtering with searchable selector #2116

Closed
opened 2026-05-03 03:05:04 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/RayLabsHQ/gitea-mirror/pull/247
Author: @arunavo4
Created: 3/23/2026
Status: Merged
Merged: 3/24/2026
Merged by: @arunavo4

Base: mainHead: codex/starred-lists-ui


📝 Commits (3)

  • 3f8ce19 feat: add starred list filtering and selector UI
  • 5cdd1cc docs: add starred lists UI screenshot
  • c7b2bdf lib: improve starred list name matching

📊 Changes

14 files changed (+934 additions, -3 deletions)

View changed files

📝 .env.example (+1 -0)
📝 docs/ENVIRONMENT_VARIABLES.md (+1 -0)
docs/images/starred-lists-ui.png (+0 -0)
📝 src/components/config/ConfigTabs.tsx (+1 -0)
📝 src/components/config/GitHubMirrorSettings.tsx (+251 -3)
📝 src/lib/api.ts (+4 -0)
📝 src/lib/db/schema.ts (+1 -0)
📝 src/lib/env-config-loader.ts (+6 -0)
src/lib/github-star-lists.test.ts (+319 -0)
📝 src/lib/github.ts (+282 -0)
📝 src/lib/utils/config-defaults.ts (+1 -0)
📝 src/lib/utils/config-mapper.ts (+13 -0)
src/pages/api/github/starred-lists.ts (+53 -0)
📝 src/types/config.ts (+1 -0)

📄 Description

Summary

  • add githubConfig.starredLists support across config types, schema mapping, defaults, and env loading (MIRROR_STARRED_LISTS)
  • add backend support for list-based starred repo fetching via GitHub GraphQL (viewer.lists + UserList.items) with de-duplication
  • add authenticated API endpoint GET /api/github/starred-lists to load available list names
  • add configuration UI for starred lists using a searchable multi-select popover/command menu, plus manual list entry
  • harden behavior and parsing with null-safe GraphQL node handling, explicit error when configured list names are missing, and retryable list fetch UX
  • add tests for REST fallback, list filtering, unmatched configured lists, null GraphQL nodes, and list-name pagination

UI Screenshot

Star Lists UI

Testing

  • bun test

Closes #246


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/RayLabsHQ/gitea-mirror/pull/247 **Author:** [@arunavo4](https://github.com/arunavo4) **Created:** 3/23/2026 **Status:** ✅ Merged **Merged:** 3/24/2026 **Merged by:** [@arunavo4](https://github.com/arunavo4) **Base:** `main` ← **Head:** `codex/starred-lists-ui` --- ### 📝 Commits (3) - [`3f8ce19`](https://github.com/RayLabsHQ/gitea-mirror/commit/3f8ce19fbf53b0efdf7bb431ed63e94dab9d3202) feat: add starred list filtering and selector UI - [`5cdd1cc`](https://github.com/RayLabsHQ/gitea-mirror/commit/5cdd1cc2012e24e270562ea28b3958f1d2fc368c) docs: add starred lists UI screenshot - [`c7b2bdf`](https://github.com/RayLabsHQ/gitea-mirror/commit/c7b2bdfeb6302f059295390ecf0cce939f7e6e95) lib: improve starred list name matching ### 📊 Changes **14 files changed** (+934 additions, -3 deletions) <details> <summary>View changed files</summary> 📝 `.env.example` (+1 -0) 📝 `docs/ENVIRONMENT_VARIABLES.md` (+1 -0) ➕ `docs/images/starred-lists-ui.png` (+0 -0) 📝 `src/components/config/ConfigTabs.tsx` (+1 -0) 📝 `src/components/config/GitHubMirrorSettings.tsx` (+251 -3) 📝 `src/lib/api.ts` (+4 -0) 📝 `src/lib/db/schema.ts` (+1 -0) 📝 `src/lib/env-config-loader.ts` (+6 -0) ➕ `src/lib/github-star-lists.test.ts` (+319 -0) 📝 `src/lib/github.ts` (+282 -0) 📝 `src/lib/utils/config-defaults.ts` (+1 -0) 📝 `src/lib/utils/config-mapper.ts` (+13 -0) ➕ `src/pages/api/github/starred-lists.ts` (+53 -0) 📝 `src/types/config.ts` (+1 -0) </details> ### 📄 Description ## Summary - add `githubConfig.starredLists` support across config types, schema mapping, defaults, and env loading (`MIRROR_STARRED_LISTS`) - add backend support for list-based starred repo fetching via GitHub GraphQL (`viewer.lists` + `UserList.items`) with de-duplication - add authenticated API endpoint `GET /api/github/starred-lists` to load available list names - add configuration UI for starred lists using a searchable multi-select popover/command menu, plus manual list entry - harden behavior and parsing with null-safe GraphQL node handling, explicit error when configured list names are missing, and retryable list fetch UX - add tests for REST fallback, list filtering, unmatched configured lists, null GraphQL nodes, and list-name pagination ## UI Screenshot ![Star Lists UI](https://raw.githubusercontent.com/RayLabsHQ/gitea-mirror/codex/starred-lists-ui/docs/images/starred-lists-ui.png) ## Testing - `bun test` Closes #246 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-03 03:05:04 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea-mirror#2116