diff --git a/ROADMAP.md b/ROADMAP.md index bc8dca3..f8dfb40 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -34,9 +34,10 @@ - [x] Version compatibility checking - [x] Fix version number display issues - [ ] Handle rate limit issues -- [ ] Implement GitHub releases crawler +- [x] Implement GitHub releases crawler - [x] Basic implementation - - [ ] Complete API authentication + - [x] Enable GitHub search functionality + - [ ] Add GitHub API authentication for higher rate limits ## Update Management (Mostly Completed) - [x] Build update detection system (Basic logic) @@ -53,8 +54,8 @@ - [x] Complete Modrinth integration - [x] Fix incorrect plugin matching issues - [x] Improve matching algorithm to reduce false positives - - [ ] Complete GitHub integration - - [ ] Add GitHub API authentication (optional token) + - [x] Complete GitHub integration + - [ ] Add GitHub API authentication for higher rate limits (environment variable support exists) - [ ] Investigate SpigotMC 403 errors (potentially add headers/delay) - [x] Implement changelog extraction - [x] Create plugin backup functionality diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index fd973c3..fe8aa98 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -103,8 +103,15 @@ pub async fn lib_search_plugins_in_repositories( tasks.push(task); }, RepositorySource::GitHub => { - // Placeholder - will cause errors until GitHubCrawler implements Repository - eprintln!("GitHub search not fully implemented yet."); + let crawler = crawlers::GitHubCrawler::new(); + let query_owned = query.to_string(); + let task = async move { + match crawler.search(&query_owned).await { + Ok(repo_results) => Ok((crawler.get_repository_name(), repo_results)), + Err(e) => Err((crawler.get_repository_name(), e.to_string())) + } + }.boxed(); // Box the future + tasks.push(task); }, _ => { eprintln!("Repository {:?} not supported for search", repo); diff --git a/src/App.tsx b/src/App.tsx index 8ec3bd4..ccd3d74 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -606,7 +606,7 @@ function App() { }; await invoke("check_single_plugin_update_command", { - pluginToCheck: pluginToSend, + plugin: pluginToSend, repositoriesToCheck, }); } catch (err) {