Skip to content

feat(v2): add admin GitHub App setup to Tools - #1722

Merged
lilyshen0722 merged 4 commits into
mainfrom
kai/task040
Sep 16, 2026
Merged

lilyshen0722 merged 4 commits into
mainfrom
kai/task040

Conversation

@lilyshen0722

@lilyshen0722 lilyshen0722 commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add an admin-only Install GitHub App action to the GitHub no-connection Tools row
  • collect installationId, owner, and repo in the Tools aside and POST the existing admin route
  • keep the affordance hidden for non-admins/connections, refresh after a new install, and explain when an existing installation belongs to another administrator
  • defer all ten tools.* locale entries to feat(i18n): localize Connectors and Tools in zh-CN #1717 so that PR owns the single merged tools object; this branch uses English defaultValues until that native-pass push lands

The page check is cosmetic: a non-admin never sees the action, but the real authorization boundary is the existing POST /api/integrations/github-app route, protected by auth and adminAuth (after writeIntegrationsRateLimit). Repeated installs return the existing integration; the UI keeps the setup aside open and tells a different admin it is already owned.

Evidence

  • before (non-admin, no setup action): docs/design/evidence/task-040-github-app-setup-before.png
  • after at 1200px (admin action + setup aside): docs/design/evidence/task-040-github-app-setup-after-1200.png
  • after at 390px (admin action + setup form): docs/design/evidence/task-040-github-app-setup-after-390.png

Verification

  • npx jest src/v2/__tests__/V2ConnectorTools.test.tsx --runInBand (13 tests)
  • npx jest src/v2/__tests__/v2-layout-invariants.test.ts --runInBand (108 tests)
  • npx jest --runInBand (108 suites, 877 tests before deferring the ten locale keys to feat(i18n): localize Connectors and Tools in zh-CN #1717)
  • npm run typecheck
  • npm run build

@lilyshen0722
lilyshen0722 merged commit 0a09c12 into main Sep 16, 2026
20 of 23 checks passed
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.

1 participant