"""Forgejo Git/Issue Tools.""" from core import config, forgejo_client TOOLS = [ { "type": "function", "function": { "name": "get_forgejo_status", "description": "Forgejo Git-Server Status: Repos, offene Issues, letzte Commits.", "parameters": {"type": "object", "properties": {}, "required": []}, }, }, { "type": "function", "function": { "name": "create_issue", "description": "Neues Forgejo-Issue/TODO erstellen.", "parameters": { "type": "object", "properties": { "title": {"type": "string", "description": "Titel des Issues"}, "body": {"type": "string", "description": "Beschreibung (optional)", "default": ""} }, "required": ["title"], }, }, }, { "type": "function", "function": { "name": "close_issue", "description": "Forgejo-Issue als erledigt schliessen.", "parameters": { "type": "object", "properties": { "number": {"type": "number", "description": "Issue-Nummer"} }, "required": ["number"], }, }, }, ] def handle_get_forgejo_status(**kw): cfg = config.parse_config() forgejo_client.init(cfg) return forgejo_client.format_overview() def handle_create_issue(title, body="", **kw): cfg = config.parse_config() forgejo_client.init(cfg) result = forgejo_client.create_issue(title, body) if "error" in result: return result["error"] return f"Issue #{result['number']} erstellt: {result['title']}" def handle_close_issue(number, **kw): cfg = config.parse_config() forgejo_client.init(cfg) result = forgejo_client.close_issue(int(number)) if "error" in result: return result["error"] return f"Issue #{result['number']} geschlossen: {result['title']}" HANDLERS = { "get_forgejo_status": handle_get_forgejo_status, "create_issue": handle_create_issue, "close_issue": handle_close_issue, }