From 482f16c77eef1f477ba49475fe30f809de9a05d7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 13 Sep 2025 18:25:28 +0000 Subject: [PATCH] feat(docs): Add configuration file setup to agent instructions Co-authored-by: elisiariocouto <818914+elisiariocouto@users.noreply.github.com> --- AGENTS.md | 18 +++++++++++++++--- config.toml | 30 ++++++++++++++++++++++++++++++ test.db | Bin 0 -> 94208 bytes 3 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 config.toml create mode 100644 test.db diff --git a/AGENTS.md b/AGENTS.md index 8cc05f9..545add0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,16 +4,20 @@ ### Prerequisites - **uv** must be installed for Python dependency management (can be installed via `pip install uv`) +- **Configuration file**: Copy `config.example.toml` to `config.toml` before running any commands: + ```bash + cp config.example.toml config.toml + ``` ### Generate Mock Database The leggen CLI provides a command to generate a mock database for testing: ```bash # Generate sample database with default settings (3 accounts, 50 transactions each) -uv run leggen generate_sample_db --database /path/to/test.db --force +uv run leggen --config config.toml generate_sample_db --database /path/to/test.db --force # Custom configuration -uv run leggen generate_sample_db --database ./test-data.db --accounts 5 --transactions 100 --force +uv run leggen --config config.toml generate_sample_db --database ./test-data.db --accounts 5 --transactions 100 --force ``` The command outputs instructions for setting the required environment variable to use the generated database. @@ -24,7 +28,15 @@ The command outputs instructions for setting the required environment variable t ```bash export LEGGEN_DATABASE_PATH=/path/to/your/generated/database.db ``` -3. Start the API server: +3. Ensure the API can find the configuration file (choose one): + ```bash + # Option 1: Copy config to the expected location + mkdir -p ~/.config/leggen && cp config.toml ~/.config/leggen/config.toml + + # Option 2: Set environment variable to current config file + export LEGGEN_CONFIG_FILE=./config.toml + ``` +4. Start the API server: ```bash uv run leggend ``` diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..26926a3 --- /dev/null +++ b/config.toml @@ -0,0 +1,30 @@ +[gocardless] +key = "your-api-key" +secret = "your-secret-key" +url = "https://bankaccountdata.gocardless.com/api/v2" + +[database] +sqlite = true + +# Optional: Background sync scheduling +[scheduler.sync] +enabled = true +hour = 3 # 3 AM +minute = 0 +# cron = "0 3 * * *" # Alternative: use cron expression + +# Optional: Discord notifications +[notifications.discord] +webhook = "https://discord.com/api/webhooks/..." +enabled = true + +# Optional: Telegram notifications +[notifications.telegram] +token = "your-bot-token" +chat_id = 12345 +enabled = true + +# Optional: Transaction filters for notifications +[filters] +case-insensitive = ["salary", "utility"] +case-sensitive = ["SpecificStore"] diff --git a/test.db b/test.db new file mode 100644 index 0000000000000000000000000000000000000000..4fe87831ba0df42dee327ebacf3a5748aecbaacf GIT binary patch literal 94208 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 WS2`o_s+GX$&uDQ%Gt!o??EeGILDKR7 literal 0 HcmV?d00001