Commit graph

184 commits

Author SHA1 Message Date
msukkari
e09b21f6b9 add config upsert timeout env var 2025-02-15 17:27:24 -08:00
msukkari
e17331a672 fix build errors and add index concurrency env var 2025-02-15 16:58:05 -08:00
Michael Sukkarieh
54d14ea98e
add retries for 429 issues (#196)
* add connection compile retry and hard repo limit

* add more retry checks

* cleanup unused change

* address feedback
2025-02-15 16:37:50 -08:00
bkellam
331a41888e improved fix 2025-02-15 10:20:57 -08:00
bkellam
2111a77a5c Fix build with suspense boundary 2025-02-15 10:03:13 -08:00
Michael Sukkarieh
e0d363420b
connections qol improvements (#195)
* add client side polling to connections list

* properly fetch repo image url

* add client polling to connection management page, and add ability to sync failed connections
2025-02-15 10:00:44 -08:00
Michael Sukkarieh
3be3680ee2
cleanup org's repos and shards if it's inactive (#194)
* add stripe subscription status and webhook

* add inactive org repo cleanup logic

* mark reactivated org connections for sync
2025-02-15 09:58:17 -08:00
Brendan Kellam
86a80a4f73
Credentials provider (#192)
* email password functionality

* feedback
2025-02-14 21:00:45 -08:00
msukkari
354b004402 change csrf cookie to secure not host 2025-02-14 12:32:36 -08:00
msukkari
4cf3024967 fix apos usage in redeem page 2025-02-14 11:35:51 -08:00
Michael Sukkarieh
da33220289
add back gitlab, gitea, and gerrit support (#184)
* add non github config definitions

* refactor github config compilation to seperate file

* add gitlab config compilation

* Connection management (#183)

* wip gitlab repo sync support

* fix gitlab zoekt metadata

* add gitea support

* add gerrit support

* Connection management (#183)

* add gerrit config compilation

* Connection management (#183)

---------

Co-authored-by: Brendan Kellam <bshizzle1234@gmail.com>
2025-02-14 10:58:53 -08:00
Michael Sukkarieh
e2e5433d20
enforce owner perms (#191)
* add make owner logic, and owner perms for removal, invite, and manage subscription

* add change billing email card to billing settings

* enforce owner role in action level

* remove unused hover card component

* cleanup
2025-02-14 09:25:22 -08:00
msukkari
26cc70cc11 fix publishible stripe key handling in docker container 2025-02-13 18:45:27 -08:00
msukkari
888a2e3924 change stripe init to be behind function 2025-02-13 16:42:33 -08:00
msukkari
6234967287 merge v3 changes 2025-02-13 16:22:23 -08:00
msukkari
fbd3e41652 fix more nits 2025-02-13 16:20:01 -08:00
bkellam
8fb438b0ea remove providers check 2025-02-13 16:17:03 -08:00
msukkari
674511a2bb fix nits 2025-02-13 16:14:34 -08:00
Michael Sukkarieh
7c187121c8
Add stripe billing logic (#190)
* add side bar nav in settings page

* improve styling of members page

* wip adding stripe checkout button

* wip onboarding flow

* add stripe subscription id to org

* save stripe session id and add manage subscription button in settings

* properly block access to pages if user isn't in an org

* wip add paywall

* Domain support

* add back paywall and also add support for incrememnting seat count on invite redemption

* prevent self invite

* action button styling in settings and toast on copy

* add ability to remove member from org

* move stripe product id to env var

* add await for blocking loop in backend

* add subscription info to billing page

* handle trial case in billing info page

* add trial duration indicator to nav bar

* check if domain starts or ends with dash

* remove unused no org component

* remove package lock file and fix prisma dep version

* revert dep version updates

* fix yarn.lock

* add auth and membership check to fetchSubscription

* properly handle invite redeem with no valid subscription case

* change back fetch subscription to not require org membership

* add back subscription check in invite redeem page

---------

Co-authored-by: bkellam <bshizzle1234@gmail.com>
2025-02-13 15:52:33 -08:00
msukkari
87efbf7d69 add back subscription check in invite redeem page 2025-02-13 15:41:18 -08:00
msukkari
ea4c29daec change back fetch subscription to not require org membership 2025-02-13 15:36:48 -08:00
msukkari
cf97955b23 properly handle invite redeem with no valid subscription case 2025-02-13 15:21:31 -08:00
msukkari
0f43c00aa1 add auth and membership check to fetchSubscription 2025-02-13 15:11:50 -08:00
msukkari
d463748f78 revert dep version updates 2025-02-13 14:27:41 -08:00
msukkari
b0cbcf046c remove package lock file and fix prisma dep version 2025-02-13 13:55:18 -08:00
Brendan Kellam
e6ee45c76d
Generate AUTH_SECRET if not provided (#189) 2025-02-13 13:23:30 -08:00
msukkari
e369925dc3 remove unused no org component 2025-02-13 11:46:36 -08:00
msukkari
5a3eab2f83 check if domain starts or ends with dash 2025-02-13 11:41:32 -08:00
msukkari
a70c57715c merge v3 changes into billing branch 2025-02-13 11:32:17 -08:00
msukkari
8929d05b88 add trial duration indicator to nav bar 2025-02-13 11:19:06 -08:00
msukkari
e2c90b8fcc handle trial case in billing info page 2025-02-13 11:07:04 -08:00
msukkari
193c7e0732 add subscription info to billing page 2025-02-13 10:52:34 -08:00
msukkari
875f9b8586 add await for blocking loop in backend 2025-02-13 10:30:14 -08:00
msukkari
0b4140f81c move stripe product id to env var 2025-02-13 10:24:12 -08:00
msukkari
84e8ec2102 add ability to remove member from org 2025-02-13 10:15:06 -08:00
msukkari
258585e981 action button styling in settings and toast on copy 2025-02-12 21:19:15 -08:00
msukkari
8ad6ba7ab0 prevent self invite 2025-02-12 19:50:44 -08:00
msukkari
6caed350d3 add back paywall and also add support for incrememnting seat count on invite redemption 2025-02-12 16:48:13 -08:00
bkellam
19780aaecf Attempt #4 2025-02-12 15:10:29 -08:00
bkellam
ba333ddb21 Fix generate script race condition 2025-02-12 15:04:15 -08:00
msukkari
53dac384af merge domain changes 2025-02-12 14:55:35 -08:00
bkellam
98becf531a fix attempt #3: Do not require a encrpytion key at build time 2025-02-12 14:35:28 -08:00
bkellam
d17c90a8f3 attempt 2 2025-02-12 14:17:49 -08:00
bkellam
e0976e443f Add default for AUTH_URL in attempt to fix build 2025-02-12 14:10:09 -08:00
Brendan Kellam
34c9c1d9a8
Domain support (#188) 2025-02-12 13:51:44 -08:00
bkellam
8d2c731b88 Domain support 2025-02-12 13:45:12 -08:00
msukkari
0a79f7ca80 wip add paywall 2025-02-12 13:03:31 -08:00
msukkari
3ad6c2de48 properly block access to pages if user isn't in an org 2025-02-12 09:29:00 -08:00
msukkari
e7f8f51c05 save stripe session id and add manage subscription button in settings 2025-02-11 19:06:40 -08:00
msukkari
33ae585327 add stripe subscription id to org 2025-02-11 18:40:42 -08:00
msukkari
9665f149cd wip onboarding flow 2025-02-11 17:27:02 -08:00
msukkari
fde21794f5 wip adding stripe checkout button 2025-02-10 19:26:42 -08:00
msukkari
04991fd1e8 improve styling of members page 2025-02-10 18:14:13 -08:00
msukkari
23f3c605ec add side bar nav in settings page 2025-02-10 17:56:36 -08:00
msukkari
7da8a7f959 fix web build errors 2025-02-10 14:55:40 -08:00
msukkari
5858e31810 add google logo to google oauth 2025-02-10 14:45:20 -08:00
msukkari
70f7729463 fix reference to header component in connections 2025-02-10 14:40:24 -08:00
Michael Sukkarieh
90550181af
add invite system and google oauth provider (#185)
* add settings page with members list

* add invite to schema and basic create form

* add invite table

* add basic invite link copy button

* add auth invite accept case

* add non auth logic

* add google oauth provider
2025-02-10 14:31:38 -08:00
Brendan Kellam
846d73b0e6
Connection management (#183) 2025-02-04 15:04:05 -05:00
msukkari
94908c030f dummy commit to trigger v3 workflows to test 2025-01-31 11:15:54 -08:00
msukkari
2b6125be0c add deployment action for staging image 2025-01-30 13:31:59 -08:00
msukkari
f92acc0404 try to move encryption key env decleration in docker file to fix build issues 2025-01-30 12:49:04 -08:00
msukkari
9946901044 add initial logic for staging environment 2025-01-30 10:23:47 -08:00
Michael Sukkarieh
dffbbae41d
adds garbage collection for repos (#182)
* refactor repo indexing logic into RepoManager

* wip cleanup stale repos

* add rest of gc logic

* set status to indexing properly
2025-01-29 09:05:20 -08:00
Michael Sukkarieh
75d4189f25
enforce tenancy on search and repo listing endpoints (#181)
* enforce tenancy on search and repo listing

* remove orgId from request schemas
2025-01-28 10:39:59 -08:00
Michael Sukkarieh
31114a9d95
add concept of secrets (#180)
* add @sourcebot/schemas package

* migrate things to use the schemas package

* Dockerfile support

* add secret table to schema

* Add concept of connection manager

* Rename Config->Connection

* Handle job failures

* Add join table between repo and connection

* nits

* create first version of crypto package

* add crypto package as deps to others

* forgot to add package changes

* add server action for adding and listing secrets, create test page for it

* add secrets page to nav menu

* add secret to config and support fetching it in backend

* reset secret form on successful submission

* add toast feedback for secrets form

* add instructions for adding encryption key to dev instructions

* add encryption key support in docker file

* add delete secret button

* fix nits from pr review

---------

Co-authored-by: bkellam <bshizzle1234@gmail.com>
2025-01-27 14:07:07 -08:00
Brendan Kellam
dd8ff6edb0
Connection management (#178) 2025-01-24 13:16:08 -08:00
Brendan Kellam
bae7ca3438
Add @sourcebot/schemas package (#177) 2025-01-24 10:51:49 -08:00
Brendan Kellam
78c9111fa0
init (#176) 2025-01-23 14:06:40 -08:00
Brendan Kellam
0322cd8f32
Connection creation form (#175) 2025-01-23 10:26:41 -08:00
Michael Sukkarieh
a5006c52fe
Migrate to postgres (#174)
* spin up postgres in docker container

* get initial pol of postgres db working in docker image

* spin up postgres server in dev case

* updated syncedAt date after config sync:

* remove unnecessary port expose in docker file
2025-01-23 10:23:46 -08:00
msukkari
8a3521b080 updated syncedAt date after config sync: 2025-01-23 09:08:30 -08:00
Brendan Kellam
9c120c6b0a
Organization switching & active org management (#173) 2025-01-21 14:50:16 -08:00
Michael Sukkarieh
7c6adf17aa
Multi tenancy support in config syncer (#171)
* [wip] initial mt support in config syncer

* Move logout button & profile picture into settings dropdown (#172)

* update sync status properly and fix bug with multiple config in db case

* make config path required in single tenant mode

NOTE: deleting config/repos is currently not supported in multi tenancy case. Support for this will be added in a future PR

---------

Co-authored-by: Brendan Kellam <bshizzle1234@gmail.com>
2025-01-21 11:50:35 -08:00
Brendan Kellam
a5091fb900
Move logout button & profile picture into settings dropdown (#172) 2025-01-19 12:52:13 -08:00
Brendan Kellam
5d253ffa12
Add Org table (#167) 2025-01-16 16:18:16 -08:00
Brendan Kellam
6cf10b4988
Authentication (#164) 2025-01-16 15:24:13 -08:00
Michael Sukkarieh
7029aa70c1
parallelize repo indexing (#163)
* hacked together a example of using zoekt grpc api

* provide tenant id to zoekt git indexer

* update zoekt version to point to multitenant branch

* pipe tenant id through header to zoekt

* remove incorrect submodule reference and settings typo

* update zoekt commit

* remove unused yarn script

* remove unused grpc client in web server

* remove unneeded deps and improve tenant id log

* pass tenant id when creating repo in db

* add mt yarn script

* add pol of bullmq into backend

* add better error handling and concurrency setting

* spin up redis instance in dockerfile

* cleanup transaction logic when adding repos to index queue

* add NEW index status fetch condition

* move bullmq deps to backend

---------

Co-authored-by: bkellam <bshizzle1234@gmail.com>
2025-01-15 15:44:42 -08:00
Michael Sukkarieh
553f5d25f7
Add tenant ID concept into web app and backend (#160)
* hacked together a example of using zoekt grpc api

* provide tenant id to zoekt git indexer

* update zoekt version to point to multitenant branch

* pipe tenant id through header to zoekt

* remove incorrect submodule reference and settings typo

* update zoekt commit

* remove unused yarn script

* remove unused grpc client in web server

* remove unneeded deps and improve tenant id log

* pass tenant id when creating repo in db

* add mt yarn script

* add nocheckin comment to tenant id in v2 schema

---------

Co-authored-by: bkellam <bshizzle1234@gmail.com>
2025-01-14 16:46:36 -08:00
Brendan Kellam
15b9e777e4
SQL Database (#157) 2025-01-14 13:37:31 -08:00
dependabot[bot]
11eacb773e
Bump next from 14.2.15 to 14.2.21 in /packages/web (#153)
Bumps [next](https://github.com/vercel/next.js) from 14.2.15 to 14.2.21.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v14.2.15...v14.2.21)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brendan Kellam <bshizzle1234@gmail.com>
2025-01-09 13:37:25 -08:00
Michael Sukkarieh
d269a8cbe6
implement raw remote git repo support (#152)
* implement raw remote git repo support

* add changelog entry
2025-01-09 09:10:30 -08:00
bkellam
672832c993 remove Inter font since it was causing build failures 2025-01-07 13:14:31 -08:00
bkellam
11c79d850f Fix issue with share links not including domain sub paths 2025-01-07 11:23:06 -08:00
Brendan Kellam
af8559678c
Add footer to homepage (#151) 2025-01-07 11:13:06 -08:00
Brendan Kellam
2c1de4d005
Share links (#149) 2025-01-07 10:27:42 -08:00
Brendan Kellam
03aa608e21
Graceful error handling when calling code host apis (#142) 2024-12-18 19:21:21 -08:00
dependabot[bot]
4e68dc5032
Bump next from 14.2.10 to 14.2.15 (#138)
Bumps [next](https://github.com/vercel/next.js) from 14.2.10 to 14.2.15.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v14.2.10...v14.2.15)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-17 15:38:54 -08:00
Konrad Staniszewski
5772468930
Refactor Language Support (#132)
* feat: move language utilites out of components and dedup linguist languages

This mot moves all linguist language and codemirror languages into
utility classes.
It also adds syntax highligting for 200+ languages which can use
available parsers.

* Add support for all available 3rd party languages

* Remove some accidental languages

---------

Co-authored-by: Brendan Kellam <bshizzle1234@gmail.com>
2024-12-17 11:00:58 -08:00
Brendan Kellam
0e9c829cc3
[GitHub] Add exclude.size property to the config (#137) 2024-12-17 00:01:19 -08:00
Brendan Kellam
c35f6bc5ae
Add reindexInterval and resyncInterval to config settings (#134) 2024-12-16 21:30:50 -08:00
Brendan Kellam
d4e72566e2
Fix directory not found exception when deleting stale repository (#136) 2024-12-16 20:23:42 -08:00
Brendan Kellam
415535e794
fix (#133) 2024-12-16 15:20:50 -08:00
bkellam
a4cd49dbc5 quick fix typescript icon 2024-12-13 15:35:58 -08:00
Konrad Staniszewski
0b78ffd2d1
feat: add all 800 linguist language icons (#129)
* feat: add all 800 linguist language icons

This uses existing svg icons for common languages, then falls back on
the iconify library for the remaining 600 languages.

* move icon component to ui components

---------

Co-authored-by: Brendan Kellam <bshizzle1234@gmail.com>
2024-12-13 15:14:01 -08:00
Konrad Staniszewski
1ba4e8215d
feat: Add support for codemirror mode languages (#125)
* feat: Add support for codemirror mode languages

Codemirror 5 had a number of languages supported via modes instead of
explicit language support

* Add additional languages, remove comment
2024-12-13 15:09:07 -08:00
Brendan Kellam
4353d2008a
Add autoDeleteStaleRepos config option (#128) 2024-12-13 12:34:02 -08:00
Brendan Kellam
4d358f94a2
Add topics and exclude.topics to GitHub & GitLab config (#121) 2024-12-11 14:17:57 -08:00
Brendan Kellam
3dd4a16b7f
Make language suggestions case insensitive (#124) 2024-12-11 13:51:59 -08:00
Brendan Kellam
111023b1dc
Add config option to specify max file size (#118) 2024-12-09 12:34:43 -10:00