feat(standup): standup automatique hier/aujourd'hui/blocages (issue #6)
format_standup_text + _standup_data (journal de la veille, focus du jour, vieillissantes QA/Révision); page /standup copiable, /api/standup; inclusion optionnelle au briefing ntfy (KANBANTE_BRIEFING_INCLUDE_STANDUP).
This commit is contained in:
+15
-1
@@ -68,6 +68,16 @@ Environment variables:
|
||||
KANBANTE_OBSIGATE_MCP_ARGS JSON argument template for the tool;
|
||||
"{title}" and "{content}" placeholders
|
||||
are substituted (JSON-escaped).
|
||||
KANBANTE_BRIEFING_INCLUDE_STANDUP
|
||||
"1" appends the automatic standup
|
||||
(issue #6) to the morning briefing.
|
||||
KANBANTE_RULES Automation rules (issue #8) as a JSON
|
||||
array: [{"name": ..., "when":
|
||||
{"column": "review", "min_age_days": 3},
|
||||
"then": {"notify": true}}]. Conditions:
|
||||
column, min_age_days, label, wip_over.
|
||||
Actions: add_label, notify, move_top.
|
||||
A rule can never close an issue.
|
||||
"""
|
||||
|
||||
import os
|
||||
@@ -76,7 +86,7 @@ from pathlib import Path
|
||||
|
||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||
|
||||
APP_VERSION = "0.12.0"
|
||||
APP_VERSION = "0.13.0"
|
||||
|
||||
|
||||
def _env_bool(name: str, default: bool) -> bool:
|
||||
@@ -142,6 +152,8 @@ class Settings:
|
||||
obsigate_mcp_token: str = ""
|
||||
obsigate_mcp_tool: str = ""
|
||||
obsigate_mcp_args: str = '{"title": "{title}", "content": "{content}"}'
|
||||
briefing_include_standup: bool = False
|
||||
rules_raw: str = ""
|
||||
|
||||
@property
|
||||
def auth_enabled(self) -> bool:
|
||||
@@ -184,4 +196,6 @@ def get_settings() -> Settings:
|
||||
"KANBANTE_OBSIGATE_MCP_ARGS",
|
||||
'{"title": "{title}", "content": "{content}"}',
|
||||
),
|
||||
briefing_include_standup=_env_bool("KANBANTE_BRIEFING_INCLUDE_STANDUP", False),
|
||||
rules_raw=os.getenv("KANBANTE_RULES", ""),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user