Skip to content

Add GitHub App integration for organization-wide repository import#332

Open
manana2520 wants to merge 1 commit intoAIDotNet:mainfrom
keboola:upstream/gmail-style-select
Open

Add GitHub App integration for organization-wide repository import#332
manana2520 wants to merge 1 commit intoAIDotNet:mainfrom
keboola:upstream/gmail-style-select

Conversation

@manana2520
Copy link
Contributor

Summary

Adds a complete GitHub App integration for administrators to import repositories from GitHub organizations:

  • Admin UI at /admin/github-import: configure GitHub App credentials, connect organizations, browse & import repos
  • Gmail-style select all: checkbox selects current page only; a banner then offers to select all matching repos across all pages
  • Import status filter: dropdown to show All / Not Imported / Already Imported repositories
  • Search & language filter: text search + programming language filter across all org repos
  • Batch import: select repos, pick target department & language, import in bulk

Backend

  • GitHubAppInstallation entity with token caching
  • GitHub App JWT auth + installation token management
  • Admin endpoints at /api/admin/github/* (status, config, installations, repos, batch-import)
  • Credential fallback chain: per-repo credentials -> GitHub App installation token -> global token

Frontend

  • Full admin page with config form, org management, repo browser
  • Client-side pagination (30/page) with background loading of all repos (batches of 100)
  • i18n for all 4 locales (en, zh, ko, ja)

Test plan

  • Deployed and tested on production environment
  • GitHub App installation flow verified
  • Batch import of repos verified
  • Gmail-style select all behavior verified
  • Import status filter verified

Adds a complete GitHub App integration that allows administrators to:
- Configure GitHub App credentials (App ID + private key) via admin UI
- Connect GitHub organizations by installing the GitHub App
- Browse all accessible repositories with search, language filter, and
  import status filter
- Gmail-style select all: checkbox selects current page, banner offers
  to select all matching repos across pages
- Batch import selected repositories into departments

Backend:
- New entity: GitHubAppInstallation (tracks installations + token cache)
- GitHub App JWT auth, installation token management
- Admin endpoints: /api/admin/github/* (status, config, installations,
  repos, batch-import)
- Credential fallback: per-repo -> GitHub App token -> global token

Frontend:
- Admin page at /admin/github-import with full CRUD workflow
- Sidebar navigation entry
- i18n support for en, zh, ko, ja locales
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