When new projects are added to the config file, `lore sync` doesn't pick them up because project discovery only happens during `lore init`. Previously, users had to use `--force` to overwrite their entire config. The new `--refresh` flag reads the existing config and updates the database to match, without modifying the config file itself. Features: - Validates GitLab authentication before processing - Registers new projects from config into the database - Detects orphan projects (in DB but removed from config) - Interactive mode: prompts to delete orphans (default: No) - Robot mode: returns JSON with orphan info, no prompts Usage: lore init --refresh # Interactive lore --robot init --refresh # JSON output Improved UX: When running `lore init` with an existing config and no flags, the error message now suggests using `--refresh` to register new projects or `--force` to overwrite the config file. Implementation: - Added RefreshOptions and RefreshResult types to init module - Added run_init_refresh() for core refresh logic - Added delete_orphan_projects() helper for orphan cleanup - Added handle_init_refresh() in main.rs for CLI handling - Added JSON output types for robot mode - Registered --refresh in autocorrect.rs command flags registry - --refresh conflicts with --force (mutually exclusive)
70 lines
2.6 KiB
Rust
70 lines
2.6 KiB
Rust
pub mod auth_test;
|
|
pub mod count;
|
|
#[cfg(unix)]
|
|
pub mod cron;
|
|
pub mod doctor;
|
|
pub mod drift;
|
|
pub mod embed;
|
|
pub mod file_history;
|
|
pub mod generate_docs;
|
|
pub mod ingest;
|
|
pub mod init;
|
|
pub mod list;
|
|
pub mod me;
|
|
pub mod related;
|
|
pub mod search;
|
|
pub mod show;
|
|
pub mod stats;
|
|
pub mod sync;
|
|
pub mod sync_status;
|
|
pub mod sync_surgical;
|
|
pub mod timeline;
|
|
pub mod trace;
|
|
pub mod who;
|
|
|
|
pub use auth_test::run_auth_test;
|
|
pub use count::{
|
|
print_count, print_count_json, print_event_count, print_event_count_json, run_count,
|
|
run_count_events,
|
|
};
|
|
#[cfg(unix)]
|
|
pub use cron::{
|
|
print_cron_install, print_cron_install_json, print_cron_status, print_cron_status_json,
|
|
print_cron_uninstall, print_cron_uninstall_json, run_cron_install, run_cron_status,
|
|
run_cron_uninstall,
|
|
};
|
|
pub use doctor::{DoctorChecks, print_doctor_results, run_doctor};
|
|
pub use drift::{DriftResponse, print_drift_human, print_drift_json, run_drift};
|
|
pub use embed::{print_embed, print_embed_json, run_embed};
|
|
pub use file_history::{print_file_history, print_file_history_json, run_file_history};
|
|
pub use generate_docs::{print_generate_docs, print_generate_docs_json, run_generate_docs};
|
|
pub use ingest::{
|
|
DryRunPreview, IngestDisplay, print_dry_run_preview, print_dry_run_preview_json,
|
|
print_ingest_summary, print_ingest_summary_json, run_ingest, run_ingest_dry_run,
|
|
};
|
|
pub use init::{
|
|
InitInputs, InitOptions, InitResult, RefreshOptions, RefreshResult, delete_orphan_projects,
|
|
run_init, run_init_refresh, run_token_set, run_token_show,
|
|
};
|
|
pub use list::{
|
|
ListFilters, MrListFilters, NoteListFilters, open_issue_in_browser, open_mr_in_browser,
|
|
print_list_issues, print_list_issues_json, print_list_mrs, print_list_mrs_json,
|
|
print_list_notes, print_list_notes_json, query_notes, run_list_issues, run_list_mrs,
|
|
};
|
|
pub use me::run_me;
|
|
pub use related::{RelatedResponse, print_related_human, print_related_json, run_related};
|
|
pub use search::{
|
|
SearchCliFilters, SearchResponse, print_search_results, print_search_results_json, run_search,
|
|
};
|
|
pub use show::{
|
|
print_show_issue, print_show_issue_json, print_show_mr, print_show_mr_json, run_show_issue,
|
|
run_show_mr,
|
|
};
|
|
pub use stats::{print_stats, print_stats_json, run_stats};
|
|
pub use sync::{SyncOptions, SyncResult, print_sync, print_sync_json, run_sync};
|
|
pub use sync_status::{print_sync_status, print_sync_status_json, run_sync_status};
|
|
pub use sync_surgical::run_sync_surgical;
|
|
pub use timeline::{TimelineParams, print_timeline, print_timeline_json_with_meta, run_timeline};
|
|
pub use trace::{parse_trace_path, print_trace, print_trace_json};
|
|
pub use who::{WhoRun, print_who_human, print_who_json, run_who};
|