Merge origin/main into feat/repo-promo.
last month
177 files changed
- .opengit/workflows/ci.yml+19−17
- .opengit/workflows/db-safety.yml+16−50
- README.md+1−1
- apps/bot-example/.env.example+1−1
- apps/bot-example/.gitignore+1−2
- apps/bot-example/README.md+4−3
- apps/bot-example/src/html.ts+20−4
- apps/bot-example/src/open-git.ts+64−10
apps/bot-example/src/server.ts+36−1apps/bot-example/src/store.ts+102−4apps/git-gateway/README.md+2−1apps/git-gateway/src/config.ts+3−1apps/git-gateway/src/db.ts+62−16apps/git-gateway/src/inherited-fork-mirror.test.ts+12−0apps/git-gateway/src/inherited-fork-mirror.ts+54−0apps/git-gateway/src/server.ts+106−13apps/git-gateway/src/storage.ts+1−0apps/git-worker/README.md+6−6apps/git-worker/src/index.ts+3−0apps/github-sync-worker/src/index.ts+22−3apps/playground/lib/component-examples/avatar.tsx+1−1apps/web/.env.example+5−1apps/web/app/(home)/activity-feed-skeleton.tsx+2−1apps/web/app/(home)/activity-row.tsx+28−5apps/web/app/(home)/page.tsx+13−1apps/web/app/[username]/[repository]/fork/actions.ts+13−7apps/web/app/[username]/[repository]/pulls/[number]/pull-request-live-refresh.tsx+1−34apps/web/app/[username]/[repository]/pulls/new/load-new-pull-request.ts+3−3apps/web/app/[username]/[repository]/repository-home.tsx+73−18apps/web/app/[username]/[repository]/settings/actions.ts+4−2apps/web/app/[username]/[repository]/settings/general/page.tsx+3−3apps/web/app/admin/bots/actions.ts+48−0apps/web/app/admin/bots/bots-admin.tsx+223−0apps/web/app/admin/bots/page.tsx+34−0apps/web/app/admin/waitlist/waitlist-admin.tsx+14−6apps/web/app/api/v1/app/installations/[id]/route.ts+68−0apps/web/app/home/page.tsx+14−1apps/web/app/integrations/[owner]/[slug]/install/page.tsx+121−26apps/web/app/integrations/[owner]/[slug]/page.tsx+96−33apps/web/app/integrations/actions.test.ts+124−4apps/web/app/integrations/actions.ts+53−31apps/web/app/integrations/install-form.tsx+239−20apps/web/app/integrations/page.tsx+18−6apps/web/app/oauth/consent/consent-form.tsx+59−72apps/web/app/oauth/consent/page.tsx+47−6apps/web/app/onboarding/onboarding-identity-preview.tsx+7−7apps/web/app/settings/layout.tsx+1−1apps/web/app/settings/organizations/[slug]/developer/actions.ts+257−73apps/web/app/settings/organizations/[slug]/developer/bot-forms.tsx+913−451apps/web/app/settings/organizations/[slug]/developer/bots/[id]/page.tsx+55−6apps/web/app/settings/organizations/[slug]/developer/bots/[id]/verify/page.tsx+2−2apps/web/app/settings/organizations/[slug]/developer/bots/new/page.tsx+14−5apps/web/app/settings/organizations/[slug]/developer/credentials.tsx+476−0apps/web/app/settings/organizations/[slug]/developer/oauth-forms.tsx+93−79apps/web/app/settings/organizations/[slug]/developer/oauth/[id]/page.tsx+8−3apps/web/app/settings/organizations/[slug]/developer/oauth/new/page.tsx+1−1apps/web/app/settings/organizations/[slug]/developer/page.tsx+36−11apps/web/app/sign-in/page.tsx+11−1apps/web/components/consent/consent-permissions.tsx+88−0apps/web/components/consent/consent-screen.tsx+121−0apps/web/components/consent/permission-icons.tsx+18−0apps/web/components/live-refresh.tsx+31−0apps/web/components/oauth-query-error-banner.tsx+26−0apps/web/components/sidebar-app-frame.tsx+29−10apps/web/db/bot-installations.ts+28−2apps/web/db/bots.test.ts+132−0apps/web/db/bots.ts+101−18apps/web/db/github-sync.ts+7−1apps/web/db/indexing-jobs.ts+8−4apps/web/db/repositories.ts+16−0apps/web/db/repository-contributors.test.ts+141−1apps/web/db/repository-index-fork.test.ts+72−0apps/web/db/repository-index.ts+240−27apps/web/db/schema.ts+15−0apps/web/drizzle/0060_skinny_morph.sql+1−0apps/web/drizzle/0061_rare_onslaught.sql+1−0apps/web/drizzle/0062_fork_storage_upstream.sql+1−0apps/web/drizzle/{0060_repository_landing_page.sql => 0063_repository_landing_page.sql}+0−0apps/web/drizzle/{0061_repository_landing_overview.sql => 0064_repository_landing_overview.sql}+0−0apps/web/drizzle/{0062_many_tarot.sql => 0065_many_tarot.sql}+0−0apps/web/drizzle/meta/0060_snapshot.json+8−12apps/web/drizzle/meta/0061_snapshot.json+16−13apps/web/drizzle/meta/0062_snapshot.json+22−300apps/web/drizzle/meta/0063_snapshot.json+11867−0apps/web/drizzle/meta/0064_snapshot.json+11867−0apps/web/drizzle/meta/0065_snapshot.json+12154−0apps/web/drizzle/meta/_journal.json+27−6apps/web/lib/api/v1-openapi.test.ts+1−0apps/web/lib/api/v1-openapi.ts+56−0apps/web/lib/bots/format.test.ts+46−0apps/web/lib/bots/format.ts+58−0apps/web/lib/bots/manageable-repos.ts+2−0apps/web/lib/bots/reserved-slugs.test.ts+1−1apps/web/lib/bots/reserved-slugs.ts+0−1apps/web/lib/bots/verification-shared.ts+7−1apps/web/lib/bots/verification.test.ts+120−0apps/web/lib/bots/verification.ts+30−2apps/web/lib/bots/webhook-events.test.ts+69−0apps/web/lib/bots/webhook-events.ts+80−0apps/web/lib/bots/webhooks.ts+27−15apps/web/lib/ci/ci-workflow-discovery.test.ts+7−0apps/web/lib/git/code-storage.ts+2−1apps/web/lib/git/local-repo-cache.test.ts+56−1apps/web/lib/git/local-repo-cache.ts+153−16apps/web/lib/github/sync/apply-webhook.test.ts+303−0apps/web/lib/github/sync/apply-webhook.ts+426−0apps/web/lib/github/sync/backfill.ts+6−2apps/web/lib/github/sync/branch-updates.ts+22−13apps/web/lib/github/sync/dispatch-webhook.test.ts+72−4apps/web/lib/github/sync/dispatch-webhook.ts+20−155apps/web/lib/github/sync/git-mirror.ts+16−9apps/web/lib/github/sync/issues-inbound.ts+21−4apps/web/lib/github/sync/pulls-inbound.ts+35−1apps/web/lib/github/sync/reconcile.ts+21−6apps/web/lib/oauth/client-credentials.test.ts+46−0apps/web/lib/oauth/client-credentials.ts+34−0apps/web/lib/oauth/clients.ts+8−7apps/web/lib/oauth/install-consent-policy.ts+9−0apps/web/lib/oauth/install-consent.test.ts+36−0apps/web/lib/oauth/install-consent.ts+78−0apps/web/lib/oauth/query-error.test.ts+49−0apps/web/lib/oauth/query-error.ts+103−0apps/web/lib/oauth/redirect-uris.test.ts+97−0apps/web/lib/oauth/redirect-uris.ts+53−0apps/web/lib/pull-requests/merge-pull-request.test.ts+1−1apps/web/lib/pull-requests/merge-pull-request.ts+4−2apps/web/lib/pull-requests/pull-request-suggestion-preview.ts+3−1apps/web/lib/pull-requests/update-pull-request-branch.test.ts+9−3apps/web/lib/pull-requests/update-pull-request-branch.ts+3−3apps/web/lib/repositories/live-git-homepage-parse.ts+54−0apps/web/lib/repositories/live-git-homepage.test.ts+61−0apps/web/lib/repositories/live-git-homepage.ts+59−0apps/web/lib/repositories/repo-indexer.ts+8−6apps/web/lib/repositories/repository-file-bytes.ts+2−3apps/web/lib/repositories/repository-home-docs.ts+23−1deploy/.env.example+7−5deploy/README.md+24−16deploy/docker-compose.app.yml+19−4deploy/docker-compose.single.yml+19−4docs/integrations/README.md+1−1docs/integrations/installing.md+31−6docs/integrations/oauth.md+15−8docs/integrations/publishing.md+32−17docs/integrations/sdk.md+7−5docs/integrations/tokens.md+24−0docs/integrations/webhooks.md+6−1docs/openapi.json+95−0packages/code-storage/README.md+7−0packages/code-storage/src/cache-prune.test.ts+106−0packages/code-storage/src/cache-prune.ts+199−0packages/code-storage/src/errors.ts+29−0packages/code-storage/src/gitdir-files.ts+159−0packages/code-storage/src/index.ts+17−1packages/code-storage/src/inherited-fork.test.ts+73−0packages/code-storage/src/inherited-fork.ts+90−0packages/code-storage/src/object-bucket.ts+326−0packages/code-storage/src/paths.ts+18−0packages/code-storage/src/storage-wal.test.ts+300−0packages/code-storage/src/storage.ts+871−575packages/code-storage/src/types.ts+23−1packages/code-storage/src/wal.ts+203−0packages/git-indexing/src/index.test.ts+15−0packages/git-indexing/src/index.ts+20−0packages/github-sync/src/__tests__/echo-suppression.test.ts+34−0packages/github-sync/src/__tests__/list-pull-requests.test.ts+97−0packages/github-sync/src/__tests__/repository-gone.test.ts+64−0packages/github-sync/src/__tests__/webhook-payload.test.ts+60−0packages/github-sync/src/api.ts+55−16packages/github-sync/src/errors.ts+35−2packages/github-sync/src/index.ts+1−0packages/github-sync/src/sync-decision.ts+19−2packages/github-sync/src/webhook-payload.ts+172−0packages/open-git/src/client.ts+9−0packages/ui/package.json+1−1packages/ui/src/components/user-avatar.tsx+36−12packages/ui/src/styles/globals.css+2−0pnpm-lock.yaml+18−12