Compare commits

..

1 Commits

Author SHA1 Message Date
cuddle-please
fbef5f34e7 chore(release): 0.2.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-09-12 20:48:45 +00:00
6 changed files with 84 additions and 80 deletions

View File

@ -6,7 +6,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.2.0] - 2024-09-13 ## [0.2.0] - 2024-09-12
### Added ### Added
- gitea able to pull repositories - gitea able to pull repositories
@ -16,7 +16,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- add readme - add readme
### Other ### Other
- separate files
- move config out - move config out
- remove unused libraries - remove unused libraries

View File

@ -17,5 +17,5 @@ uuid = { version = "1.7.0", features = ["v4"] }
async-trait = "0.1.82" async-trait = "0.1.82"
toml = "0.8.19" toml = "0.8.19"
gitea-rs = { git = "https://git.front.kjuulh.io/kjuulh/gitea-rs", version = "1.22.1" } gitea-rs = { git = "https://git.front.kjuulh.io/kjuulh/gitea-rs", ref = "main", version = "1.22.1" }
url = "2.5.2" url = "2.5.2"

View File

@ -1,12 +0,0 @@
use crate::config::Config;
#[derive(Debug)]
pub struct App {
pub config: Config,
}
impl App {
pub async fn new_static(config: Config) -> anyhow::Result<&'static App> {
Ok(Box::leak(Box::new(App { config })))
}
}

View File

@ -1 +0,0 @@
pub mod root;

View File

@ -1,62 +0,0 @@
use crate::{
app::App,
git_provider::{
gitea::GiteaProviderApp, github::GitHubProviderApp, GitProvider, VecRepositoryExt,
},
};
#[derive(Debug, Clone)]
pub struct RootCommand {
app: &'static App,
}
impl RootCommand {
pub fn new(app: &'static App) -> Self {
Self { app }
}
#[tracing::instrument(skip(self))]
pub async fn execute(&mut self) -> anyhow::Result<()> {
tracing::debug!("executing");
//let github_provider = self.app.github_provider();
let gitea_provider = self.app.gitea_provider();
let mut repositories = Vec::new();
for gitea in self.app.config.providers.gitea.iter() {
if let Some(user) = &gitea.current_user {
let mut repos = gitea_provider
.list_repositories_for_current_user(
user,
&gitea.url,
gitea.access_token.as_ref(),
)
.await?;
repositories.append(&mut repos);
}
for gitea_user in gitea.users.iter() {
let mut repos = gitea_provider
.list_repositories_for_user(
gitea_user.into(),
&gitea.url,
gitea.access_token.as_ref(),
)
.await?;
repositories.append(&mut repos);
}
}
repositories.collect_unique();
for repo in &repositories {
tracing::info!("repo: {}", repo.to_rel_path().display());
}
tracing::info!("amount of repos fetched {}", repositories.len());
Ok(())
}
}

View File

@ -5,8 +5,6 @@ use clap::{Parser, Subcommand};
use commands::root::RootCommand; use commands::root::RootCommand;
use config::Config; use config::Config;
mod app;
mod commands;
mod config; mod config;
mod git_provider; mod git_provider;
@ -52,3 +50,85 @@ async fn main() -> anyhow::Result<()> {
Ok(()) Ok(())
} }
mod app {
use crate::config::Config;
#[derive(Debug)]
pub struct App {
pub config: Config,
}
impl App {
pub async fn new_static(config: Config) -> anyhow::Result<&'static App> {
Ok(Box::leak(Box::new(App { config })))
}
}
}
mod commands {
pub mod root {
use crate::{
app::App,
git_provider::{
gitea::GiteaProviderApp, github::GitHubProviderApp, GitProvider, VecRepositoryExt,
},
};
#[derive(Debug, Clone)]
pub struct RootCommand {
app: &'static App,
}
impl RootCommand {
pub fn new(app: &'static App) -> Self {
Self { app }
}
#[tracing::instrument(skip(self))]
pub async fn execute(&mut self) -> anyhow::Result<()> {
tracing::debug!("executing");
//let github_provider = self.app.github_provider();
let gitea_provider = self.app.gitea_provider();
let mut repositories = Vec::new();
for gitea in self.app.config.providers.gitea.iter() {
if let Some(user) = &gitea.current_user {
let mut repos = gitea_provider
.list_repositories_for_current_user(
user,
&gitea.url,
gitea.access_token.as_ref(),
)
.await?;
repositories.append(&mut repos);
}
for gitea_user in gitea.users.iter() {
let mut repos = gitea_provider
.list_repositories_for_user(
gitea_user.into(),
&gitea.url,
gitea.access_token.as_ref(),
)
.await?;
repositories.append(&mut repos);
}
}
repositories.collect_unique();
for repo in &repositories {
tracing::info!("repo: {}", repo.to_rel_path().display());
}
tracing::info!("amount of repos fetched {}", repositories.len());
Ok(())
}
}
}
}