Merge pull request #27 from Boring-Software-Inc/feat/forge-opengit-oauth
2 months ago
141 files changed
- .env.example+37−0
- .github/workflows/ci.yml+18−0
- .gitignore+3−0
- .oxlintrc.json+50−0
- LICENSE+21−0
- OVERVIEW.md+201−0
- apps/api/package.json+1−0
- apps/api/src/index.ts+1−0
- apps/api/src/routes/webhooks.ts
+87
−12
apps/api/src/webhooks.integration.test.ts+9−4apps/web/package.json+1−1apps/web/scripts/generate-route-tree.ts+4−1apps/web/src/components/auth/forge-grid.tsx+78−0apps/web/src/components/auth/login-faq.tsx+142−0apps/web/src/components/auth/login-page-skeleton.tsx+36−6apps/web/src/components/auth/login-page.tsx+29−52apps/web/src/components/common/forge-marks.tsx+128−0apps/web/src/components/customize/customize-page.tsx+8−0apps/web/src/components/customize/response-config-form.tsx+26−0apps/web/src/components/forges/connect-forge-dialog.tsx+42−0apps/web/src/components/forges/connect-forge-grid.tsx+134−0apps/web/src/components/forges/connections-page.tsx+169−0apps/web/src/components/forges/forge-cell.tsx+72−0apps/web/src/components/layouts/command-palette.tsx+288−189apps/web/src/components/organizations/install-setup-page.tsx+26−20apps/web/src/components/organizations/org-general-settings-page.tsx+33−4apps/web/src/components/organizations/org-home-page.tsx+24−35apps/web/src/components/organizations/org-settings-dialog.tsx+8−1apps/web/src/components/organizations/org-settings-tab.ts+9−4apps/web/src/components/rules/rule-card.test.tsx+43−0apps/web/src/components/rules/rule-card.tsx+23−5apps/web/src/components/runs/run-page.tsx+29−0apps/web/src/lib/activity.functions.ts+2−2apps/web/src/lib/connections.functions.ts+135−0apps/web/src/lib/connections.query.ts+10−0apps/web/src/lib/forge-connect.ts+60−0apps/web/src/lib/forge-copy.ts+26−0apps/web/src/lib/onboarding.functions.ts+56−17apps/web/src/lib/onboarding.query.ts+11−5apps/web/src/lib/rules.functions.ts+22−2apps/web/src/lib/run-access.test.ts+2−0apps/web/src/lib/run-markdown.test.ts+2−0apps/web/src/lib/runs.functions.ts+10−1apps/web/src/lib/server-fn-classification.ts+8−0apps/web/src/lib/server/auth.ts+15−0apps/web/src/lib/server/run-view.ts+24−5apps/web/src/lib/synthetic-steps.test.ts+40−4apps/web/src/lib/synthetic-steps.ts+52−24apps/web/src/routes/$org.tsx+2−1apps/worker/package.json+1−0apps/worker/src/fail-closed-floor.test.ts+36−0apps/worker/src/forge-runtime.ts+194−0apps/worker/src/index.ts+62−51apps/worker/src/jobs/custom-rules.ts+23−1apps/worker/src/jobs/pr-surface.ts+5−1apps/worker/src/jobs/process-event.ts+202−44apps/worker/src/jobs/rerun.ts+8−4apps/worker/src/jobs/resume-run.ts+12−5apps/worker/src/jobs/run-workflows.ts+39−7apps/worker/src/jobs/sweep-actions.ts+17−4apps/worker/src/moderation.integration.test.ts+6−3apps/worker/src/process-event.integration.test.ts+71−72apps/worker/src/rerun.integration.test.ts+8−3apps/worker/src/sweep-actions.integration.test.ts+2−2apps/worker/src/toggles.integration.test.ts+2−2bun.lock+39−28docs/CONTRIBUTING.md+249−0docs/LICENSE-EXPLAINED.md+113−0docs/agent-guidelines.md+211−0docs/opengit-progress.md+227−0docs/rule-ideas.md+104−0package.json+8−2packages/auth/src/client.ts+8−1packages/auth/src/dev-login.integration.test.ts+2−0packages/auth/src/org-invariants.integration.test.ts+1−0packages/auth/src/server.ts+77−13packages/auth/src/staff-gate.integration.test.ts+1−0packages/contracts/src/comment-render.test.ts+2−0packages/contracts/src/events.ts+28−6packages/contracts/src/forges.test.ts+42−0packages/contracts/src/forges.ts+160−0packages/contracts/src/index.ts+1−0packages/contracts/src/response.ts+17−0packages/contracts/src/rules.ts+68−0packages/core/src/rules/ai-review/rule.ts+24−13packages/core/src/rules/define.ts+20−1packages/core/src/rules/forge-support.test.ts+113−0packages/core/src/rules/test-context.ts+6−1packages/core/src/workflow/derive.test.ts+43−0packages/core/src/workflow/derive.ts+25−2packages/db/src/index.ts+1−0packages/db/src/migrate.ts+5−1packages/db/src/pglite.ts+4−1packages/db/src/schema/events.ts+2−1packages/db/src/schema/repos.ts+2−1packages/db/src/services/accounts.ts+180−0packages/db/src/services/events.ts+15−3packages/db/src/services/onboarding.ts+5−0packages/db/src/services/organizations.ts+63−20packages/db/src/services/repo-revive.integration.test.ts+165−0packages/db/src/services/repos.ts+113−16packages/forge-github/src/signals.ts+18−3packages/forge-github/src/webhook/normalize.ts+29−3packages/forge-github/src/webhook/webhook.test.ts+6−1packages/forge-opengit/package.json+19−0packages/forge-opengit/src/actions/check.ts+54−0packages/forge-opengit/src/actions/execute.ts+77−0packages/forge-opengit/src/adapter.test.ts+247−0packages/forge-opengit/src/adapter.ts+70−0packages/forge-opengit/src/client/auth.ts+97−0packages/forge-opengit/src/client/http.ts+73−0packages/forge-opengit/src/client/installation.test.ts+100−0packages/forge-opengit/src/client/installation.ts+66−0packages/forge-opengit/src/index.ts+26−0packages/forge-opengit/src/webhook/normalize.test.ts+231−0packages/forge-opengit/src/webhook/normalize.ts+206−0packages/forge-opengit/src/webhook/verify.ts+34−0packages/forge-opengit/tsconfig.json+4−0packages/forge/src/index.ts+14−4scripts/check-boundaries.ts+14−3scripts/e2e/harness.ts+39−14scripts/e2e/lib/github.ts+7−0scripts/e2e/lib/interrupt.ts+21−7scripts/e2e/lib/opengit.ts+384−0scripts/e2e/lib/runner.ts+18−5scripts/e2e/lib/workflow-pin.ts+10−3scripts/e2e/opengit.ts+679−0scripts/lint-slop-changed.ts+95−0scripts/oxlint/anti-slop/index.ts+31−0scripts/oxlint/anti-slop/package.json+3−0scripts/oxlint/anti-slop/rules/no-chained-type-assertions.ts+88−0scripts/oxlint/anti-slop/rules/no-conditional-empty-object-spread.ts+49−0scripts/oxlint/anti-slop/rules/no-known-value-widening.ts+271−0scripts/oxlint/anti-slop/rules/no-object-parameters.ts+119−0scripts/oxlint/anti-slop/rules/no-runtime-typeof.ts+25−0scripts/oxlint/anti-slop/rules/no-shape-in-symbol-names.ts+41−0scripts/oxlint/anti-slop/rules/no-unknown-parameters.ts+88−0scripts/oxlint/anti-slop/rules/no-unknown-type-aliases.ts+78−0scripts/oxlint/anti-slop/rules/no-unsafe-dictionary-type.ts+106−0scripts/oxlint/anti-slop/rules/no-widen-then-assert.ts+416−0scripts/oxlint/anti-slop/shared/dictionary-types.ts+547−0