feat: load forgeflux driver
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful

This commit is contained in:
Aravinth Manivannan 2025-02-09 13:00:23 +05:30
parent a9e482272e
commit 977796f56d
Signed by: realaravinth
GPG key ID: F8F50389936984FF
4 changed files with 32 additions and 4 deletions

View file

@ -3,3 +3,4 @@ export SQLITE_TMP="$(pwd)/db/db-sqlx-sqlite/tmp"
export SQLITE_DATABASE_URL="sqlite://$SQLITE_TMP/admin.db" export SQLITE_DATABASE_URL="sqlite://$SQLITE_TMP/admin.db"
export STARCHART__CRAWLER__WAIT_BEFORE_NEXT_API_CALL=0 export STARCHART__CRAWLER__WAIT_BEFORE_NEXT_API_CALL=0
export FORGEJO_HOST=http://localhost:3000 export FORGEJO_HOST=http://localhost:3000
export FORGEFLUX_HOST=http://localhost:7000

17
Cargo.lock generated
View file

@ -1,6 +1,6 @@
# This file is automatically @generated by Cargo. # This file is automatically @generated by Cargo.
# It is not intended for manual editing. # It is not intended for manual editing.
version = 3 version = 4
[[package]] [[package]]
name = "actix" name = "actix"
@ -1147,6 +1147,20 @@ dependencies = [
"url", "url",
] ]
[[package]]
name = "forgeflux"
version = "0.1.0"
dependencies = [
"actix-rt",
"async-trait",
"forge-core",
"reqwest",
"serde",
"serde_json",
"tokio",
"url",
]
[[package]] [[package]]
name = "form_urlencoded" name = "form_urlencoded"
version = "1.0.1" version = "1.0.1"
@ -2922,6 +2936,7 @@ dependencies = [
"derive_more", "derive_more",
"federate-core", "federate-core",
"forge-core", "forge-core",
"forgeflux",
"gitea", "gitea",
"lazy_static", "lazy_static",
"log", "log",

View file

@ -16,6 +16,7 @@ members = [
"db/db-core", "db/db-core",
"db/db-sqlx-sqlite", "db/db-sqlx-sqlite",
"forge/forge-core", "forge/forge-core",
"forge/forgeflux",
"forge/gitea", "forge/gitea",
"federate/federate-core", "federate/federate-core",
"federate/publiccodeyml" "federate/publiccodeyml"
@ -76,6 +77,9 @@ path = "./db/db-sqlx-sqlite"
[dependencies.gitea] [dependencies.gitea]
path = "./forge/gitea" path = "./forge/gitea"
[dependencies.forgeflux]
path = "./forge/forgeflux"
[dependencies.forge-core] [dependencies.forge-core]
path = "./forge/forge-core" path = "./forge/forge-core"

View file

@ -25,6 +25,7 @@ use url::Url;
use db_core::prelude::*; use db_core::prelude::*;
use forge_core::prelude::*; use forge_core::prelude::*;
use forgeflux::ForgeFlux;
use gitea::Gitea; use gitea::Gitea;
use crate::ctx::Ctx; use crate::ctx::Ctx;
@ -37,9 +38,16 @@ impl Ctx {
info!("[crawl][{instance_url}] Init crawling"); info!("[crawl][{instance_url}] Init crawling");
let forge: Box<dyn SCForge> = let forge: Box<dyn SCForge> =
Box::new(Gitea::new(instance_url.clone(), self.client.clone())); Box::new(Gitea::new(instance_url.clone(), self.client.clone()));
if !forge.is_forge().await { let forge = if forge.is_forge().await {
unimplemented!("Forge type unimplemented"); forge
} } else {
let forgeflux = Box::new(ForgeFlux::new(instance_url.clone(), self.client.clone()));
if forgeflux.is_forge().await {
forgeflux
} else {
unimplemented!("Forge type unimplemented");
}
};
let mut page = 1; let mut page = 1;
let url = forge.get_url(); let url = forge.get_url();