diff --git a/Cargo.lock b/Cargo.lock index cb12171a27c..1787fce8c81 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5565,7 +5565,6 @@ dependencies = [ "serde", "serde_json", "serial_test 3.0.0", - "strum", "tabby-common", "tabby-db", "tabby-scheduler", diff --git a/ee/tabby-db/schema/schema.sql b/ee/tabby-db/schema/schema.sql index cd1904ffcd3..87e165db8d6 100644 --- a/ee/tabby-db/schema/schema.sql +++ b/ee/tabby-db/schema/schema.sql @@ -183,6 +183,7 @@ CREATE TABLE integration_access_tokens( CREATE TABLE provided_repositories( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, integration_access_token_id INTEGER NOT NULL, + kind TEXT NOT NULL, vendor_id TEXT NOT NULL, name TEXT NOT NULL, git_url TEXT NOT NULL, diff --git a/ee/tabby-db/schema/schema.svg b/ee/tabby-db/schema/schema.svg index 37fb06b985e..6a3d453456e 100644 --- a/ee/tabby-db/schema/schema.svg +++ b/ee/tabby-db/schema/schema.svg @@ -4,11 +4,11 @@ - - + + structs - + _sqlx_migrations @@ -204,214 +204,218 @@ integration_access_tokens - -integration_access_tokens + +integration_access_tokens + +🔑 + +id -🔑 +  -id +kind   -kind +display_name   -display_name +access_token   -access_token +error   -error +created_at   -created_at - -  - -updated_at +updated_at invitations - -invitations + +invitations + +🔑 + +id -🔑 +  -id +email   -email +code   -code - -  - -created_at +created_at job_runs - -job_runs + +job_runs + +🔑 + +id -🔑 +  -id +job   -job +start_ts   -start_ts +end_ts   -end_ts +exit_code   -exit_code +stdout   -stdout +stderr   -stderr +created_at   -created_at - -  - -updated_at +updated_at oauth_credential - -oauth_credential + +oauth_credential + +🔑 + +id -🔑 +  -id +provider   -provider +client_id   -client_id +client_secret   -client_secret +created_at   -created_at - -  - -updated_at +updated_at password_reset - -password_reset + +password_reset + +🔑 + +id -🔑 +  -id +user_id   -user_id +code   -code - -  - -created_at +created_at users - -users + +users + +🔑 + +id -🔑 +  -id +email   -email +is_admin   -is_admin +created_at   -created_at +updated_at   -updated_at +auth_token   -auth_token +active   -active +password_encrypted   -password_encrypted - -  - -avatar +avatar password_reset:e->users:w - - + + provided_repositories - -provided_repositories + +provided_repositories + +🔑 + +id -🔑 +  -id +integration_access_token_id   -integration_access_token_id +kind   @@ -440,186 +444,186 @@ provided_repositories:e->integration_access_tokens:w - - + + refresh_tokens - -refresh_tokens + +refresh_tokens + +🔑 + +id -🔑 +  -id +user_id   -user_id +token   -token +expires_at   -expires_at - -  - -created_at +created_at refresh_tokens:e->users:w - - + + registration_token - -registration_token + +registration_token + +🔑 + +id -🔑 +  -id +token   -token +created_at   -created_at - -  - -updated_at +updated_at repositories - -repositories + +repositories + +🔑 + +id -🔑 +  -id +name   -name - -  - -git_url +git_url server_setting - -server_setting + +server_setting + +🔑 + +id -🔑 +  -id +security_allowed_register_domain_list   -security_allowed_register_domain_list +security_disable_client_side_telemetry   -security_disable_client_side_telemetry +network_external_url   -network_external_url - -  - -billing_enterprise_license +billing_enterprise_license user_completions - -user_completions + +user_completions + +🔑 + +id -🔑 +  -id +user_id   -user_id +completion_id   -completion_id +language   -language +views   -views +selects   -selects +dismisses   -dismisses +created_at   -created_at - -  - -updated_at +updated_at user_completions:e->users:w - - + + user_events - -user_events + +user_events + +🔑 + +id -🔑 +  -id +user_id   -user_id +kind   -kind +created_at   -created_at - -  - -payload +payload user_events:e->users:w - - + + diff --git a/ee/tabby-schema/src/schema/repository/mod.rs b/ee/tabby-schema/src/schema/repository/mod.rs index cc33301cce4..d974912f521 100644 --- a/ee/tabby-schema/src/schema/repository/mod.rs +++ b/ee/tabby-schema/src/schema/repository/mod.rs @@ -11,13 +11,12 @@ mod gitlab; use std::{path::PathBuf, sync::Arc}; mod third_party; -pub use third_party::{ProvidedRepository, ThirdPartyRepositoryService}; - use async_trait::async_trait; pub use gitlab::{GitlabProvidedRepository, GitlabRepositoryProvider, GitlabRepositoryService}; use juniper::{GraphQLEnum, GraphQLObject, ID}; use serde::Deserialize; use tabby_common::config::{RepositoryAccess, RepositoryConfig}; +pub use third_party::{ProvidedRepository, ThirdPartyRepositoryService}; use super::Result; diff --git a/ee/tabby-schema/src/schema/repository/third_party.rs b/ee/tabby-schema/src/schema/repository/third_party.rs index f56c37c4fa0..0964eb1c8cc 100644 --- a/ee/tabby-schema/src/schema/repository/third_party.rs +++ b/ee/tabby-schema/src/schema/repository/third_party.rs @@ -1,8 +1,9 @@ -use crate::{integration::IntegrationKind, schema::Result}; use async_trait::async_trait; use chrono::{DateTime, Utc}; use juniper::ID; +use crate::{integration::IntegrationKind, schema::Result}; + pub struct ProvidedRepository { pub integration_id: ID, pub active: bool, diff --git a/ee/tabby-webserver/Cargo.toml b/ee/tabby-webserver/Cargo.toml index 2dc14cf51a3..bdc5603628d 100644 --- a/ee/tabby-webserver/Cargo.toml +++ b/ee/tabby-webserver/Cargo.toml @@ -52,7 +52,6 @@ gitlab = "0.1610.0" apalis = { git = "https://github.com/wsxiaoys/apalis", rev = "91526e8", features = ["sqlite", "cron" ] } uuid.workspace = true hyper-util = { version = "0.1.3", features = ["client-legacy"] } -strum.workspace = true [dev-dependencies] assert_matches = "1.5.0" diff --git a/ee/tabby-webserver/src/service/repository/third_party.rs b/ee/tabby-webserver/src/service/repository/third_party.rs index cd4a8a120c8..54679821a24 100644 --- a/ee/tabby-webserver/src/service/repository/third_party.rs +++ b/ee/tabby-webserver/src/service/repository/third_party.rs @@ -1,20 +1,19 @@ +use std::sync::Arc; + +use async_trait::async_trait; use chrono::{DateTime, Utc}; +use fetch::fetch_all_repos; use juniper::ID; -use std::sync::Arc; +use tabby_db::DbConn; use tabby_schema::{ integration::{IntegrationKind, IntegrationService}, - repository::ProvidedRepository, + repository::{ProvidedRepository, ThirdPartyRepositoryService}, AsRowid, DbEnum, Result, }; use tracing::{debug, error}; use url::Url; -use async_trait::async_trait; -use tabby_db::DbConn; -use tabby_schema::repository::ThirdPartyRepositoryService; - use crate::service::graphql_pagination_to_filter; -use fetch::fetch_all_repos; mod fetch; @@ -95,7 +94,7 @@ impl ThirdPartyRepositoryService for ThirdPartyRepositoryServiceImpl { Ok(urls) } - async fn sync_repositories(&self, kind: IntegrationKind) -> Result<()> { + async fn sync_repositories(&self, _kind: IntegrationKind) -> Result<()> { todo!("Loop over integrations and call refresh_repositories_for_provider"); Ok(()) } @@ -173,7 +172,7 @@ async fn refresh_repositories_for_provider( .update_integration_error(provider_id.clone(), None) .await?; let num_removed = repository - .delete_outdated_repositories(provider_id, start.into()) + .delete_outdated_repositories(provider_id, start) .await?; debug!("Removed {} outdated repositories", num_removed); Ok(())