feat(config): Add fetchResourceEvents config flag with --no-events CLI override

Adds a new boolean field to SyncConfig that controls whether resource
event fetching is performed during sync:

- SyncConfig.fetch_resource_events: defaults to true via serde
  default_true helper, serialized as "fetchResourceEvents" in JSON
- SyncArgs.no_events: --no-events CLI flag that overrides the config
  value to false when present
- SyncOptions.no_events: propagates the flag through the sync pipeline
- handle_sync_cmd: mutates loaded config when --no-events is set,
  ensuring the flag takes effect regardless of config file contents

This follows the existing pattern established by --no-embed and
--no-docs flags, where CLI flags override config file defaults.
The config is loaded as mutable specifically to support this override.

Also adds "events" to the count command's entity type value_parser,
enabling `lore count events` (implementation in a separate commit).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Taylor Eernisse
2026-02-03 12:07:06 -05:00
parent 92ff255909
commit 9d4755521f
4 changed files with 32 additions and 5 deletions

View File

@@ -19,6 +19,7 @@ pub struct SyncOptions {
pub force: bool,
pub no_embed: bool,
pub no_docs: bool,
pub no_events: bool,
pub robot_mode: bool,
}

View File

@@ -478,6 +478,10 @@ pub struct SyncArgs {
/// Skip document regeneration
#[arg(long)]
pub no_docs: bool,
/// Skip resource event fetching (overrides config)
#[arg(long = "no-events")]
pub no_events: bool,
}
/// Arguments for `lore embed`
@@ -501,8 +505,8 @@ pub struct EmbedArgs {
/// Arguments for `lore count <ENTITY>`
#[derive(Parser)]
pub struct CountArgs {
/// Entity type to count (issues, mrs, discussions, notes)
#[arg(value_parser = ["issues", "mrs", "discussions", "notes"])]
/// Entity type to count (issues, mrs, discussions, notes, events)
#[arg(value_parser = ["issues", "mrs", "discussions", "notes", "events"])]
pub entity: String,
/// Parent type filter: issue or mr (for discussions/notes)