- Notifications
You must be signed in to change notification settings - Fork474
Add docs link to provider pop up, add better GitHub docs#829
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:dev
Are you sure you want to change the base?
Conversation
vercelbot commentedAug 5, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
The latest updates on your projects. Learn more aboutVercel for GitHub.
|
coderabbitaibot commentedAug 5, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughAdds a conditional informational note and a documentation link button to the GitHub OAuth provider settings in the dashboard UI; updates the GitHub auth provider docs to a tabbed layout separating "OAuth App" and "GitHub App" instructions and adds GitHub App-specific steps (public app and read-only email permission). Changes
Sequence Diagram(s)sequenceDiagram participant User participant DashboardUI participant DocsSite User->>DashboardUI: Open provider settings (GitHub) DashboardUI-->>User: Render settings form alt Provider is GitHub & "shared" not selected DashboardUI-->>User: Show info note about public GitHub App & read-only email end User->>DashboardUI: Click "View full documentation" link/button DashboardUI->>DocsSite: Open provider docs URL (new tab) DocsSite-->>User: Display docs with tabs: "OAuth App" / "GitHub App"Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
✨ 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 withCodeRabbit:
SupportNeed help? Create a ticket on oursupport page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File ( |
✨ No issues found! Your code is sparkling clean! ✨ 🗒️ View all ignored comments in this repo
Need help? Join our Discord for support! |
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.
Greptile Summary
This PR enhances the OAuth provider configuration experience by adding direct documentation links and GitHub-specific guidance. In the dashboard's provider settings dialog (providers.tsx), a new documentation link is added that dynamically constructs URLs to provider-specific documentation, opening in a new tab for easy reference. The implementation includes special handling for GitHub providers with a helpful note about requiring public apps with email permissions.
Concurrently, the GitHub OAuth documentation (github.mdx) has been significantly improved with a tabbed interface that covers both OAuth Apps and GitHub Apps setup processes. This addresses the reality that GitHub offers two different OAuth integration methods, each with distinct configuration requirements. The documentation now provides clear, step-by-step instructions for both approaches, including critical details about permissions and app visibility settings.
These changes work together to create a seamless user experience: when users encounter the GitHub provider in the dashboard, they can click the documentation link to access the newly enhanced GitHub docs that cover both OAuth methods. This integration reduces the need for users to search for setup instructions externally and provides context-aware guidance directly within the configuration workflow.
Confidence score: 4/5
- This PR is safe to merge with minimal risk of breaking existing functionality
- Score reflects straightforward UI enhancements and documentation improvements with no complex logic changes
- Pay close attention to the dynamic URL construction in
providers.tsxfor potential edge cases
2 files reviewed, 2 comments
| <Link | ||
| className={cn(buttonVariants({variant:"outline",size:"sm"}),"gap-2 mt-2")} | ||
| href={`https://docs.stack-auth.com/docs/next/concepts/auth-providers/${props.id}`} | ||
| target="_blank" |
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.
style: Addrel="noopener noreferrer" for security when opening external links in new tabs.
| target="_blank" | |
| target="_blank" | |
| rel="noopener noreferrer" |
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.
| target="_blank" | |
| target="_blank" | |
| rel="noopener" |
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.
referrer is fine but we want noopener
Uh oh!
There was an error while loading.Please reload this page.
apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/auth-methods/providers.tsx OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
| <Link | ||
| className={cn(buttonVariants({variant:"outline",size:"sm"}),"gap-2 mt-2")} | ||
| href={`https://docs.stack-auth.com/docs/next/concepts/auth-providers/${props.id}`} | ||
| target="_blank" |
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.
| target="_blank" | |
| target="_blank" | |
| rel="noopener" |
| <Link | ||
| className={cn(buttonVariants({variant:"outline",size:"sm"}),"gap-2 mt-2")} | ||
| href={`https://docs.stack-auth.com/docs/next/concepts/auth-providers/${props.id}`} | ||
| target="_blank" |
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.
referrer is fine but we want noopener
apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/auth-methods/providers.tsx OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
claudebot commentedAug 8, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Claude finished@fomalhautb's task ——View job Pull Request ReviewI've reviewed the changes in this PR and overall they look good! The implementation adds helpful UX improvements while maintaining code quality. Here's my detailed feedback: Todo List:
✅StrengthsUI/UX Improvements:
Documentation Enhancements:
|
claudebot commentedAug 9, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Claude finished@fomalhautb's task ——View job Pull Request Review I've reviewed the changes in this PR and overall they look good! The implementation adds helpful UX improvements while maintaining code quality. Here's my detailed feedback: Todo List:
✅StrengthsUI/UX Improvements:
Documentation Enhancements:
|
claudebot commentedAug 12, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Claude finished@fomalhautb's task ——View job Pull Request Review I've reviewed the changes in this PR and overall they look good! The implementation adds helpful UX improvements while maintaining code quality. Here's my detailed feedback: Todo List:
✅StrengthsUI/UX Improvements:
Documentation Enhancements:
|
claudebot commentedAug 13, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Claude finished@fomalhautb's task ——View job Pull Request Review I've reviewed the changes in this PR and overall they look good! The implementation adds helpful UX improvements while maintaining code quality. Here's my detailed feedback: Todo List:
✅StrengthsUI/UX Improvements:
Documentation Enhancements:
|
claudebot commentedAug 15, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Claude finished@fomalhautb's task ——View job Pull Request Review I've reviewed the changes in this PR and overall they look good! The implementation adds helpful UX improvements while maintaining code quality. Here's my detailed feedback: Todo List:
✅StrengthsUI/UX Improvements:
Documentation Enhancements:
|
…/auth-methods/providers.tsxCo-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
claudebot commentedAug 19, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Claude finished@fomalhautb's task ——View job Pull Request ReviewI've reviewed the changes in this PR and overall they look good! The implementation adds helpful UX improvements while maintaining code quality. Here's my detailed feedback: Todo List:
✅StrengthsUI/UX Improvements:
Documentation Enhancements:
|
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
claudebot commentedAug 19, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Claude finished@fomalhautb's task ——View job I've reviewed the changes in this PR and overall they look good! The implementation adds helpful UX improvements while maintaining code quality. Here's my detailed feedback: Todo List:
✅StrengthsUI/UX Improvements:
Documentation Enhancements:
|
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading.Please reload this page.
| <Link | ||
| className={cn(buttonVariants({variant:"outline",size:"sm"}),"gap-2 mt-2")} | ||
| href={`https://docs.stack-auth.com/docs/next/concepts/auth-providers/${props.id}`} |
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 documentation URL construction will generate a broken link for the X/Twitter provider because the provider ID is "x" but the documentation file is named "x-twitter.mdx".
View Details
📝 Patch Details
diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/auth-methods/providers.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/auth-methods/providers.tsxindex fc756024..80faf844 100644--- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/auth-methods/providers.tsx+++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/auth-methods/providers.tsx@@ -47,6 +47,12 @@ function toTitle(id: string) { }[id]; }+function toDocumentationSlug(id: string) {+ return {+ x: "x-twitter",+ }[id] || id;+}+ export const providerFormSchema = yupObject({ shared: yupBoolean().defined(), clientId: yupString()@@ -177,7 +183,7 @@ export function ProviderSettingDialog(props: Props & { open: boolean, onClose: ( <Link className={cn(buttonVariants({ variant: "outline", size: "sm" }), "gap-2 mt-2")}- href={`https://docs.stack-auth.com/docs/next/concepts/auth-providers/${props.id}`}+ href={`https://docs.stack-auth.com/docs/next/concepts/auth-providers/${toDocumentationSlug(props.id)}`} rel="noreferrer" > See full documentation
Analysis
X/Twitter provider documentation URL generates 404 error
What fails: ProviderSettingDialog inapps/dashboard/src/app/(main)/(protected)/projects/[projectId]/auth-methods/providers.tsx constructs documentation URLs using provider ID "x", but the actual documentation file is "x-twitter.mdx"
How to reproduce:
- Open Stack Auth dashboard
- Navigate to auth methods for any project
- Click on X (Twitter) provider
- Click "See full documentation" button
Result: Redirects tohttps://docs.stack-auth.com/docs/next/concepts/auth-providers/x which shows "Loading..." and redirects to home page (404 behavior with meta refresh)
Expected: Should navigate tohttps://docs.stack-auth.com/docs/next/concepts/auth-providers/x-twitter which contains the properX (Twitter) OAuth setup documentation
| <Link | ||
| className={cn(buttonVariants({variant:"outline",size:"sm"}),"gap-2 mt-2")} | ||
| href={`https://docs.stack-auth.com/docs/next/concepts/auth-providers/${props.id}`} | ||
| target="_blank"rel="noreferrer" | ||
| > | ||
| See full documentation | ||
| <ArrowRightsize={16}/> | ||
| </Link> |
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.
| <Link | |
| className={cn(buttonVariants({variant:"outline",size:"sm"}),"gap-2 mt-2")} | |
| href={`https://docs.stack-auth.com/docs/next/concepts/auth-providers/${props.id}`} | |
| target="_blank"rel="noreferrer" | |
| > | |
| Seefulldocumentation | |
| <ArrowRightsize={16}/> | |
| </Link> | |
| <a | |
| className={cn(buttonVariants({variant:"outline",size:"sm"}),"gap-2 mt-2")} | |
| href={`https://docs.stack-auth.com/docs/next/concepts/auth-providers/${props.id}`} | |
| target="_blank"rel="noreferrer" | |
| > | |
| Seefulldocumentation | |
| <ArrowRightsize={16}/> | |
| </a> |
TheLink component doesn't support therel prop in its TypeScript interface, causing a compilation error when trying to userel="noreferrer".
View Details
Analysis
TypeScript compilation error: Link component missing rel prop
What fails: Custom Link component in@/components/link doesn't includerel in its TypeScript interface, causing compilation error when usingrel="noreferrer"
How to reproduce:
cd apps/dashboardpnpm run typecheck# Error: "Property 'rel' does not exist on type 'LinkProps'"
Result: TypeScript compilation fails with error on line 181 ofproviders.tsx
Expected: Should compile successfully asrel is a standard HTML anchor attribute for external links perMDN documentation
Fix applied: Replaced customLink with native<a> tag to match codebase pattern - all other external links withrel attributes use<a> tags, not the customLink component

Uh oh!
There was an error while loading.Please reload this page.
Important
Add documentation link to provider pop-up and improve GitHub setup instructions with tabs for OAuth and GitHub apps.
providers.tsxfor detailed provider setup.providers.tsx.github.mdxto include tabs for OAuth App and GitHub App setup instructions.This description was created by
for484cb1c. You cancustomize this summary. It will automatically update as commits are pushed.
Summary by CodeRabbit
New Features
Documentation
Note
Adds a docs link to the provider settings dialog and updates GitHub auth docs with tabbed OAuth/GitHub App instructions and requirements.
apps/dashboard/.../auth-methods/providers.tsx:.../concepts/auth-providers/{providerId}.github(when not using shared keys): app must be public and have read-only email permissions.docs/templates/concepts/auth-providers/github.mdx:OAuth AppandGitHub App.Written byCursor Bugbot for commit21b284e. This will update automatically on new commits. Configurehere.