pub struct TodosConfig {Show 16 fields
pub default_to: Option<String>,
pub auto_yes: Option<bool>,
pub prompt_sync_after_scan: Option<bool>,
pub linear_labels: Option<Vec<String>>,
pub github_labels: Option<Vec<String>>,
pub linear_assignee: Option<String>,
pub linear_project: Option<String>,
pub watch_paths: Option<Vec<String>>,
pub linear_link_wait_secs: Option<u64>,
pub linear_link_poll_ms: Option<u64>,
pub purge_duplicate_linear: Option<bool>,
pub kinds: Option<Vec<String>>,
pub priority_by_kind: Option<BTreeMap<String, i32>>,
pub annotate_source: Option<bool>,
pub openrouter_enrich: Option<bool>,
pub openrouter_enrich_model: Option<String>,
}Expand description
Project/global automation settings for xbp issues scan|sync.
Project (.xbp/xbp.toml / project config) overrides global (~/.xbp/config.yaml).
issues:
default_to: both # linear | github | both
auto_yes: true # skip multi-select when syncing
prompt_sync_after_scan: true
linear_labels: [xbp-todo, tech-debt]
github_labels: [xbp-todo]
linear_assignee: me
linear_project: My Project # name, id, or slug
watch_paths: # only scan these repo-relative prefixes (empty = whole tree)
- crates/cli
linear_link_wait_secs: 20 # after GitHub creates, wait for Linear auto-link
linear_link_poll_ms: 2000
purge_duplicate_linear: true # archive xbp-created Linear dups when integration already linked
kinds: [TODO, FIXME, HACK]
priority_by_kind:
FIXME: 1
HACK: 2
TODO: 3
XXX: 4
annotate_source: false # stamp `// XLX-99 (#42)` onto source TODO lines after create
openrouter_enrich: false # OPT-IN: expand terse TODOs via OpenRouter before create
openrouter_enrich_model: openai/gpt-4o-miniFields§
§default_to: Option<String>Default sync target: linear, github, or both.
auto_yes: Option<bool>When true, xbp issues sync files all candidates without multi-select.
prompt_sync_after_scan: Option<bool>After xbp issues scan, interactively offer to run sync (default true).
linear_labels: Option<Vec<String>>Linear label names applied to created issues (default: xbp-todo).
github_labels: Option<Vec<String>>GitHub label names applied to created issues (default: xbp-todo).
linear_assignee: Option<String>Linear assignee for created issues (me, name, email, or id).
linear_project: Option<String>Linear project for created issues (name, id, or slug).
watch_paths: Option<Vec<String>>Only scan TODOs under these repo-relative path prefixes (empty/omit = whole tree).
linear_link_wait_secs: Option<u64>After creating GitHub issues (--to both), wait this many seconds for Linear auto-link.
linear_link_poll_ms: Option<u64>Poll interval (ms) while waiting for Linear GitHub integration comments/attachments.
purge_duplicate_linear: Option<bool>When true, archive xbp-created Linear issues that duplicate Linear↔GitHub auto-links.
kinds: Option<Vec<String>>Only sync these marker kinds (default: all of TODO/FIXME/XXX/HACK).
priority_by_kind: Option<BTreeMap<String, i32>>Map marker kind → Linear priority (0–4).
annotate_source: Option<bool>When true, append created issue identifiers onto the source TODO line.
openrouter_enrich: Option<bool>Opt-in. When true, enrich issue titles/bodies with OpenRouter before create.
Default is always off — must be set explicitly (or pass --enrich on sync).
openrouter_enrich_model: Option<String>Optional OpenRouter model for TODO enrichment (falls back to commit model).
Trait Implementations§
Source§impl Clone for TodosConfig
impl Clone for TodosConfig
Source§fn clone(&self) -> TodosConfig
fn clone(&self) -> TodosConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TodosConfig
impl Debug for TodosConfig
Source§impl Default for TodosConfig
impl Default for TodosConfig
Source§fn default() -> TodosConfig
fn default() -> TodosConfig
Source§impl<'de> Deserialize<'de> for TodosConfig
impl<'de> Deserialize<'de> for TodosConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for TodosConfig
Source§impl PartialEq for TodosConfig
impl PartialEq for TodosConfig
Source§impl Serialize for TodosConfig
impl Serialize for TodosConfig
impl StructuralPartialEq for TodosConfig
Auto Trait Implementations§
impl Freeze for TodosConfig
impl RefUnwindSafe for TodosConfig
impl Send for TodosConfig
impl Sync for TodosConfig
impl Unpin for TodosConfig
impl UnsafeUnpin for TodosConfig
impl UnwindSafe for TodosConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more