diff --git a/CHANGELOG.md b/CHANGELOG.md index ea0ab4a6..c99604d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Implement dynamic tab titles for files and folders in browse tab. [#560](https://github.com/sourcebot-dev/sourcebot/pull/560) +- Added support for passing db connection url as seperate `DATABASE_HOST`, `DATABASE_USERNAME`, `DATABASE_PASSWORD`, `DATABASE_NAME`, and `DATABASE_ARGS` env vars. [#545](https://github.com/sourcebot-dev/sourcebot/pull/545) +- Added support for GitHub Apps for service auth. [#570](https://github.com/sourcebot-dev/sourcebot/pull/570) ### Fixed - Fixed "dubious ownership" errors when cloning / fetching repos. [#553](https://github.com/sourcebot-dev/sourcebot/pull/553) @@ -27,9 +29,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Removed spam "login page loaded" log. [#552](https://github.com/sourcebot-dev/sourcebot/pull/552) - Removed connections management page. [#563](https://github.com/sourcebot-dev/sourcebot/pull/563) -### Added -- Added support for passing db connection url as seperate `DATABASE_HOST`, `DATABASE_USERNAME`, `DATABASE_PASSWORD`, `DATABASE_NAME`, and `DATABASE_ARGS` env vars. [#545](https://github.com/sourcebot-dev/sourcebot/pull/545) - ## [4.7.3] - 2025-09-29 ### Fixed diff --git a/packages/backend/package.json b/packages/backend/package.json index 800d2504..8329fbbb 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -24,6 +24,7 @@ "dependencies": { "@coderabbitai/bitbucket": "^1.1.3", "@gitbeaker/rest": "^40.5.1", + "@octokit/app": "^16.1.1", "@octokit/rest": "^21.0.2", "@sentry/cli": "^2.42.2", "@sentry/node": "^9.3.0", diff --git a/packages/shared/src/entitlements.ts b/packages/shared/src/entitlements.ts index be40b927..1c0c688f 100644 --- a/packages/shared/src/entitlements.ts +++ b/packages/shared/src/entitlements.ts @@ -39,15 +39,16 @@ const entitlements = [ "code-nav", "audit", "analytics", - "permission-syncing" + "permission-syncing", + "github-app" ] as const; export type Entitlement = (typeof entitlements)[number]; const entitlementsByPlan: Record = { oss: ["anonymous-access"], "cloud:team": ["billing", "multi-tenancy", "sso", "code-nav"], - "self-hosted:enterprise": ["search-contexts", "sso", "code-nav", "audit", "analytics", "permission-syncing"], - "self-hosted:enterprise-unlimited": ["search-contexts", "anonymous-access", "sso", "code-nav", "audit", "analytics", "permission-syncing"], + "self-hosted:enterprise": ["search-contexts", "sso", "code-nav", "audit", "analytics", "permission-syncing", "github-app"], + "self-hosted:enterprise-unlimited": ["search-contexts", "anonymous-access", "sso", "code-nav", "audit", "analytics", "permission-syncing", "github-app"], // Special entitlement for https://demo.sourcebot.dev "cloud:demo": ["anonymous-access", "code-nav", "search-contexts"], } as const; diff --git a/packages/web/src/features/search/searchApi.ts b/packages/web/src/features/search/searchApi.ts index 3c7ea373..35df4848 100644 --- a/packages/web/src/features/search/searchApi.ts +++ b/packages/web/src/features/search/searchApi.ts @@ -1,6 +1,5 @@ 'use server'; -import { env } from "@/env.mjs"; import { invalidZoektResponse, ServiceError } from "../../lib/serviceError"; import { isServiceError } from "../../lib/utils"; import { zoektFetch } from "./zoektClient"; diff --git a/yarn.lock b/yarn.lock index 8cffa0aa..34e6c1b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3412,6 +3412,21 @@ __metadata: languageName: node linkType: hard +"@octokit/app@npm:^16.1.1": + version: 16.1.1 + resolution: "@octokit/app@npm:16.1.1" + dependencies: + "@octokit/auth-app": "npm:^8.1.1" + "@octokit/auth-unauthenticated": "npm:^7.0.2" + "@octokit/core": "npm:^7.0.5" + "@octokit/oauth-app": "npm:^8.0.2" + "@octokit/plugin-paginate-rest": "npm:^13.2.0" + "@octokit/types": "npm:^15.0.0" + "@octokit/webhooks": "npm:^14.0.0" + checksum: 10c0/1989da2151db879e85d0dbe7f1fdfff613a0d00b65eb58b8c08617186726ea9c64061639e6c630d6840772f084468d7cdfd48c001fc7f91313b67cf58a827d81 + languageName: node + linkType: hard + "@octokit/auth-app@npm:^7.2.1": version: 7.2.1 resolution: "@octokit/auth-app@npm:7.2.1" @@ -3428,6 +3443,22 @@ __metadata: languageName: node linkType: hard +"@octokit/auth-app@npm:^8.1.1": + version: 8.1.1 + resolution: "@octokit/auth-app@npm:8.1.1" + dependencies: + "@octokit/auth-oauth-app": "npm:^9.0.2" + "@octokit/auth-oauth-user": "npm:^6.0.1" + "@octokit/request": "npm:^10.0.5" + "@octokit/request-error": "npm:^7.0.1" + "@octokit/types": "npm:^15.0.0" + toad-cache: "npm:^3.7.0" + universal-github-app-jwt: "npm:^2.2.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/f33d12a5e7339135d013f10ae6e5f6f6f9b94af860df6b300eb158f27c445e626fd08e2d2d8eb39cdab1391918ed244a1e041ebf3c470074f42b8573c52d1dc7 + languageName: node + linkType: hard + "@octokit/auth-oauth-app@npm:^8.1.3, @octokit/auth-oauth-app@npm:^8.1.4": version: 8.1.4 resolution: "@octokit/auth-oauth-app@npm:8.1.4" @@ -3441,6 +3472,19 @@ __metadata: languageName: node linkType: hard +"@octokit/auth-oauth-app@npm:^9.0.2": + version: 9.0.2 + resolution: "@octokit/auth-oauth-app@npm:9.0.2" + dependencies: + "@octokit/auth-oauth-device": "npm:^8.0.2" + "@octokit/auth-oauth-user": "npm:^6.0.1" + "@octokit/request": "npm:^10.0.5" + "@octokit/types": "npm:^15.0.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/85f4dc9caad7fa0b963ac33452ad6af3488c0b4b07d2b39b624f1bb8eec4bc5ccf3bfdd379db133439afd437d1389bd4674ba66911d685ebb5cc31c713f04594 + languageName: node + linkType: hard + "@octokit/auth-oauth-device@npm:^7.1.5": version: 7.1.5 resolution: "@octokit/auth-oauth-device@npm:7.1.5" @@ -3453,6 +3497,18 @@ __metadata: languageName: node linkType: hard +"@octokit/auth-oauth-device@npm:^8.0.2": + version: 8.0.2 + resolution: "@octokit/auth-oauth-device@npm:8.0.2" + dependencies: + "@octokit/oauth-methods": "npm:^6.0.1" + "@octokit/request": "npm:^10.0.5" + "@octokit/types": "npm:^15.0.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/b69b2bda7139b4c49c7ac70f86da53317fcf49e6562fe734ecebef2ce5c8e8f973bf00e6b29e0a45cd88346fc335e73d70c53920b438e73f165590f4fb58864f + languageName: node + linkType: hard + "@octokit/auth-oauth-user@npm:^5.1.3, @octokit/auth-oauth-user@npm:^5.1.4": version: 5.1.4 resolution: "@octokit/auth-oauth-user@npm:5.1.4" @@ -3466,6 +3522,19 @@ __metadata: languageName: node linkType: hard +"@octokit/auth-oauth-user@npm:^6.0.1": + version: 6.0.1 + resolution: "@octokit/auth-oauth-user@npm:6.0.1" + dependencies: + "@octokit/auth-oauth-device": "npm:^8.0.2" + "@octokit/oauth-methods": "npm:^6.0.1" + "@octokit/request": "npm:^10.0.5" + "@octokit/types": "npm:^15.0.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/8e4c8172be454a46eab05ac5ae1c6cc2984ffee7378f9196d441a53cdba9b722b8f408b9dd4b42fe736cda4144d7a22d2e026888d2ff14c8865e020cb760379a + languageName: node + linkType: hard + "@octokit/auth-token@npm:^5.0.0": version: 5.1.2 resolution: "@octokit/auth-token@npm:5.1.2" @@ -3473,6 +3542,13 @@ __metadata: languageName: node linkType: hard +"@octokit/auth-token@npm:^6.0.0": + version: 6.0.0 + resolution: "@octokit/auth-token@npm:6.0.0" + checksum: 10c0/32ecc904c5f6f4e5d090bfcc679d70318690c0a0b5040cd9a25811ad9dcd44c33f2cf96b6dbee1cd56cf58fde28fb1819c01b58718aa5c971f79c822357cb5c0 + languageName: node + linkType: hard + "@octokit/auth-unauthenticated@npm:^6.1.2, @octokit/auth-unauthenticated@npm:^6.1.3": version: 6.1.3 resolution: "@octokit/auth-unauthenticated@npm:6.1.3" @@ -3483,6 +3559,16 @@ __metadata: languageName: node linkType: hard +"@octokit/auth-unauthenticated@npm:^7.0.2": + version: 7.0.2 + resolution: "@octokit/auth-unauthenticated@npm:7.0.2" + dependencies: + "@octokit/request-error": "npm:^7.0.1" + "@octokit/types": "npm:^15.0.0" + checksum: 10c0/07a05683c0451232d1d952e725ad3a4d50dfe5487452f93cfe54b99220b46a5e94a04084b7954738f9d8437f91afce3ab535bc67fa787f711452063baf5f6821 + languageName: node + linkType: hard + "@octokit/core@npm:^6.1.4": version: 6.1.4 resolution: "@octokit/core@npm:6.1.4" @@ -3513,6 +3599,21 @@ __metadata: languageName: node linkType: hard +"@octokit/core@npm:^7.0.5": + version: 7.0.5 + resolution: "@octokit/core@npm:7.0.5" + dependencies: + "@octokit/auth-token": "npm:^6.0.0" + "@octokit/graphql": "npm:^9.0.2" + "@octokit/request": "npm:^10.0.4" + "@octokit/request-error": "npm:^7.0.1" + "@octokit/types": "npm:^15.0.0" + before-after-hook: "npm:^4.0.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/09aeba5f9a6b58c4e7cdd59d883a1b787bc32b17fee3b6c73af47e9b8510dc1aa6e2399274e36106ca27485d4e7b2ffda28af306ad4819fa96cd90caecf15ae7 + languageName: node + linkType: hard + "@octokit/endpoint@npm:^10.1.3": version: 10.1.3 resolution: "@octokit/endpoint@npm:10.1.3" @@ -3533,6 +3634,16 @@ __metadata: languageName: node linkType: hard +"@octokit/endpoint@npm:^11.0.1": + version: 11.0.1 + resolution: "@octokit/endpoint@npm:11.0.1" + dependencies: + "@octokit/types": "npm:^15.0.0" + universal-user-agent: "npm:^7.0.2" + checksum: 10c0/a445c42a4cef357f7a181ac1dc5970db7d6c3bb36c81e10dd4032020873d4ec97402f08ebfa6ea747de8edd255ccf19a57cbb66dc4a05e5cff8c0445e29cd73d + languageName: node + linkType: hard + "@octokit/graphql@npm:^8.1.2": version: 8.2.1 resolution: "@octokit/graphql@npm:8.2.1" @@ -3555,6 +3666,17 @@ __metadata: languageName: node linkType: hard +"@octokit/graphql@npm:^9.0.2": + version: 9.0.2 + resolution: "@octokit/graphql@npm:9.0.2" + dependencies: + "@octokit/request": "npm:^10.0.4" + "@octokit/types": "npm:^15.0.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/aaba3de627475ac2be24d676be643c85bec089b1d9ef2c3a678fab03a525c0fd9b6c61622d190e84447ecb6aa9271882f8bcce5c278221337fd4be68d36acf10 + languageName: node + linkType: hard + "@octokit/oauth-app@npm:^7.1.6": version: 7.1.6 resolution: "@octokit/oauth-app@npm:7.1.6" @@ -3571,6 +3693,22 @@ __metadata: languageName: node linkType: hard +"@octokit/oauth-app@npm:^8.0.2": + version: 8.0.3 + resolution: "@octokit/oauth-app@npm:8.0.3" + dependencies: + "@octokit/auth-oauth-app": "npm:^9.0.2" + "@octokit/auth-oauth-user": "npm:^6.0.1" + "@octokit/auth-unauthenticated": "npm:^7.0.2" + "@octokit/core": "npm:^7.0.5" + "@octokit/oauth-authorization-url": "npm:^8.0.0" + "@octokit/oauth-methods": "npm:^6.0.1" + "@types/aws-lambda": "npm:^8.10.83" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/7bb064bfe21a6db45b57f8f5e5ecd533e802c0073d293b1c75abf264d9bc0fc952492757ea5af516207af4ec781cf793cb37e8cbbb3a8df691592bc25c364644 + languageName: node + linkType: hard + "@octokit/oauth-authorization-url@npm:^7.0.0, @octokit/oauth-authorization-url@npm:^7.1.1": version: 7.1.1 resolution: "@octokit/oauth-authorization-url@npm:7.1.1" @@ -3578,6 +3716,13 @@ __metadata: languageName: node linkType: hard +"@octokit/oauth-authorization-url@npm:^8.0.0": + version: 8.0.0 + resolution: "@octokit/oauth-authorization-url@npm:8.0.0" + checksum: 10c0/ab4964bebd8d076f945a2f3210a8a0a221a408362569d9fc2f49875ad06e594365f5fd871dac08d820793f687bff50237f7acf40d9d39c5f9de7575b6f4bad93 + languageName: node + linkType: hard + "@octokit/oauth-methods@npm:^5.1.4, @octokit/oauth-methods@npm:^5.1.5": version: 5.1.5 resolution: "@octokit/oauth-methods@npm:5.1.5" @@ -3590,6 +3735,18 @@ __metadata: languageName: node linkType: hard +"@octokit/oauth-methods@npm:^6.0.1": + version: 6.0.1 + resolution: "@octokit/oauth-methods@npm:6.0.1" + dependencies: + "@octokit/oauth-authorization-url": "npm:^8.0.0" + "@octokit/request": "npm:^10.0.5" + "@octokit/request-error": "npm:^7.0.1" + "@octokit/types": "npm:^15.0.0" + checksum: 10c0/b9aa6458f8ffdb067552cdc7783038a075401b9b3875c970ca23a29157f75573a18240b1327fb732be30468857abea41761de1f28a50a7c549ff0ced24c9d499 + languageName: node + linkType: hard + "@octokit/openapi-types@npm:^24.2.0": version: 24.2.0 resolution: "@octokit/openapi-types@npm:24.2.0" @@ -3604,6 +3761,13 @@ __metadata: languageName: node linkType: hard +"@octokit/openapi-types@npm:^26.0.0": + version: 26.0.0 + resolution: "@octokit/openapi-types@npm:26.0.0" + checksum: 10c0/671f12c1db70b4bc8c719ec7aa10de034925f4326db0fff22837afcc0b41fd1c015d164673ef5603c5ac787a430c514b821852bfbe6f06edc4a41ad3de342e94 + languageName: node + linkType: hard + "@octokit/openapi-webhooks-types@npm:11.0.0": version: 11.0.0 resolution: "@octokit/openapi-webhooks-types@npm:11.0.0" @@ -3611,6 +3775,13 @@ __metadata: languageName: node linkType: hard +"@octokit/openapi-webhooks-types@npm:12.0.3": + version: 12.0.3 + resolution: "@octokit/openapi-webhooks-types@npm:12.0.3" + checksum: 10c0/1c2429bd939edcf6a6e8db7240a2138a897cd7d6a0922ac083d8ed58868866b036b90888eb22d1b952df75d5741e2df1aa02d38f182c5be83394dc30b24d657d + languageName: node + linkType: hard + "@octokit/plugin-paginate-graphql@npm:^5.2.4": version: 5.2.4 resolution: "@octokit/plugin-paginate-graphql@npm:5.2.4" @@ -3642,6 +3813,17 @@ __metadata: languageName: node linkType: hard +"@octokit/plugin-paginate-rest@npm:^13.2.0": + version: 13.2.1 + resolution: "@octokit/plugin-paginate-rest@npm:13.2.1" + dependencies: + "@octokit/types": "npm:^15.0.1" + peerDependencies: + "@octokit/core": ">=6" + checksum: 10c0/16cd034ee6426f742514d0ca553a2c4355cd68c2eb9211030f3ec2538f4c833d587b3737bb720e34f98be8fae15acb07693d17314350cf067557abb4cb1598fb + languageName: node + linkType: hard + "@octokit/plugin-request-log@npm:^5.3.1": version: 5.3.1 resolution: "@octokit/plugin-request-log@npm:5.3.1" @@ -3716,6 +3898,28 @@ __metadata: languageName: node linkType: hard +"@octokit/request-error@npm:^7.0.0, @octokit/request-error@npm:^7.0.1": + version: 7.0.1 + resolution: "@octokit/request-error@npm:7.0.1" + dependencies: + "@octokit/types": "npm:^15.0.0" + checksum: 10c0/c3f29db87a8d59b8217cbda8cb32be4a553de21ab08bac7ec5909e7c4a4934a32a07575547049fb11a07f0eeec45d0ae5c38295995445adda4ae17b2c66cba85 + languageName: node + linkType: hard + +"@octokit/request@npm:^10.0.4, @octokit/request@npm:^10.0.5": + version: 10.0.5 + resolution: "@octokit/request@npm:10.0.5" + dependencies: + "@octokit/endpoint": "npm:^11.0.1" + "@octokit/request-error": "npm:^7.0.1" + "@octokit/types": "npm:^15.0.0" + fast-content-type-parse: "npm:^3.0.0" + universal-user-agent: "npm:^7.0.2" + checksum: 10c0/66b607ec97280ce2a857826b7c862a48d81fdafe97c7b6b527ce7bf83b0f6eb706ce3df44eafb57c7ed0ee0b5f255db1c1471ed6d9152b8932e6e88feb845bba + languageName: node + linkType: hard + "@octokit/request@npm:^9.2.1, @octokit/request@npm:^9.2.2": version: 9.2.2 resolution: "@octokit/request@npm:9.2.2" @@ -3772,6 +3976,15 @@ __metadata: languageName: node linkType: hard +"@octokit/types@npm:^15.0.0, @octokit/types@npm:^15.0.1": + version: 15.0.1 + resolution: "@octokit/types@npm:15.0.1" + dependencies: + "@octokit/openapi-types": "npm:^26.0.0" + checksum: 10c0/f1f8d8a988c6295d669461082936a4e27d5a021ff870ebb93b8afa8f227f6eb0fb520f98631af31fc56dea0cb84e15df65e736f408cde321693154e4432c575d + languageName: node + linkType: hard + "@octokit/webhooks-methods@npm:^5.1.1": version: 5.1.1 resolution: "@octokit/webhooks-methods@npm:5.1.1" @@ -3779,6 +3992,13 @@ __metadata: languageName: node linkType: hard +"@octokit/webhooks-methods@npm:^6.0.0": + version: 6.0.0 + resolution: "@octokit/webhooks-methods@npm:6.0.0" + checksum: 10c0/7f10740e838d65c78e859bb041499cca69df7831e9f633ee70a46ca8e53d0844f2c84500df204453d171c8c3c0f8eb8b68716ee1d5c95e3cf5d09690f32e13e1 + languageName: node + linkType: hard + "@octokit/webhooks@npm:^13.6.1": version: 13.8.2 resolution: "@octokit/webhooks@npm:13.8.2" @@ -3790,6 +4010,17 @@ __metadata: languageName: node linkType: hard +"@octokit/webhooks@npm:^14.0.0": + version: 14.1.3 + resolution: "@octokit/webhooks@npm:14.1.3" + dependencies: + "@octokit/openapi-webhooks-types": "npm:12.0.3" + "@octokit/request-error": "npm:^7.0.0" + "@octokit/webhooks-methods": "npm:^6.0.0" + checksum: 10c0/7f423700784cb769f15303353154e841f66e031289a25ce44852883121ad9752f0b9ea06bde1388ff38310f64208b6de748e2c24ccd9f3021f708e5e9c6ecfac + languageName: node + linkType: hard + "@openrouter/ai-sdk-provider@npm:^1.1.0": version: 1.1.0 resolution: "@openrouter/ai-sdk-provider@npm:1.1.0" @@ -7546,6 +7777,7 @@ __metadata: dependencies: "@coderabbitai/bitbucket": "npm:^1.1.3" "@gitbeaker/rest": "npm:^40.5.1" + "@octokit/app": "npm:^16.1.1" "@octokit/rest": "npm:^21.0.2" "@sentry/cli": "npm:^2.42.2" "@sentry/node": "npm:^9.3.0" @@ -9607,6 +9839,13 @@ __metadata: languageName: node linkType: hard +"before-after-hook@npm:^4.0.0": + version: 4.0.0 + resolution: "before-after-hook@npm:4.0.0" + checksum: 10c0/9f8ae8d1b06142bcfb9ef6625226b5e50348bb11210f266660eddcf9734e0db6f9afc4cb48397ee3f5ac0a3728f3ae401cdeea88413f7bed748a71db84657be2 + languageName: node + linkType: hard + "best-effort-json-parser@npm:^1.1.2": version: 1.1.3 resolution: "best-effort-json-parser@npm:1.1.3" @@ -12316,6 +12555,13 @@ __metadata: languageName: node linkType: hard +"fast-content-type-parse@npm:^3.0.0": + version: 3.0.0 + resolution: "fast-content-type-parse@npm:3.0.0" + checksum: 10c0/06251880c83b7118af3a5e66e8bcee60d44f48b39396fc60acc2b4630bd5f3e77552b999b5c8e943d45a818854360e5e97164c374ec4b562b4df96a2cdf2e188 + languageName: node + linkType: hard + "fast-copy@npm:^3.0.2": version: 3.0.2 resolution: "fast-copy@npm:3.0.2"