Skip to content

Sparshr04/GitHub copilot auth UI#201

Open
Sparshr04 wants to merge 13 commits intodevelopfrom
sparshr04/github-copilot-auth-ui
Open

Sparshr04/GitHub copilot auth UI#201
Sparshr04 wants to merge 13 commits intodevelopfrom
sparshr04/github-copilot-auth-ui

Conversation

@Sparshr04
Copy link
Contributor

[Feature] Implement GitHub Copilot OAuth Device Flow UI

Description

This PR adds the frontend UI and data layer to handle the 3-step GitHub Copilot OAuth Device Flow. This connects the client to the /api/v1/auth/github endpoints.

Key Additions:

  • UI: Created the CopilotConnect.vue component and added it to the UserSettingsContent.vue page to handle the Disconnected, Pending (Polling), and Connected states.
  • Repository Layer: Added GitHubAuthRepository using the standard NuxtAxiosInstance to ensure Extralit JWTs are correctly passed for user isolation.
  • Domain Layer: Created GitHubAuthUseCase to orchestrate the login initiation, status checking, and the background polling loop (with proper onBeforeUnmount cleanup to prevent memory leaks).
  • Storage Layer: Added GitHubAuthStorage using the existing Pinia useStoreFor factory pattern to handle the reactive auth state.

Related Tickets & Documents

Depends on: #200

  • Refactor
  • Feature
  • Bug Fix
  • Optimization
  • Documentation Update

Steps to QA

  1. Ensure both the extralit-frontend and extralit-server dev servers are running.
  2. Navigate to your profile -> My settings.
  3. Scroll down to the new GitHub Copilot section and click Connect Copilot.
  4. Copy the generated User Code and click the GitHub verification link.
  5. Enter the code on GitHub and click Authorize.
  6. Return to the Extralit settings page and validate that the UI automatically transitions to the green "GitHub Copilot Connected" badge.

Added/updated tests?

  • Yes
  • No, and this is why: Manual QA steps provided; UI components and use-case logic rely on active backend integration and the live GitHub OAuth flow.
  • I need help with writing tests

Added/updated documentations?

  • Yes
  • No, and this is why: This is a self-contained UI feature embedded in the existing user settings page.
  • I need help with writing docs

Checklist

Copilot AI and others added 13 commits December 7, 2025 23:21
Co-authored-by: JonnyTran <4750391+JonnyTran@users.noreply.github.com>
Co-authored-by: JonnyTran <4750391+JonnyTran@users.noreply.github.com>
- Update `BaseSimpleTable` adapter to pass the full column configuration (including editor params) instead of just name/type.
- Update `RenderTable` logic to respect custom column settings (like `editor: "list"`) by prioritizing schema config over defaults.
- Add watcher to `columnsConfig` in `RenderTable` to ensure dropdown options update reactively when new files are uploaded.
- Add missing `$emit('cell-edited')` in `RenderTable`'s tabulator handler.
- Ensures parent components are notified of changes to trigger state updates like the unmapped files counter.
Adds the CopilotConnect component to user settings, use-cases, and Pinia storage to handle the 3-step OAuth device flow.
@Sparshr04 Sparshr04 requested review from a team as code owners March 18, 2026 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants