fix: resolve MarkiTect issue handling system integration problems (issue #120)

- Fix issue manager to properly read API token and repo info from main MarkiTect config
- Update Gitea plugin to use correct repository-specific API endpoints
- Correct domain model mapping to only include valid Issue model fields
- Fix presentation layer to safely access optional body attribute
- Enable full functionality for 'markitect issues show' and 'markitect issues list' commands

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-04 02:14:59 +02:00
parent b83dc14f7b
commit fb968dff34
4 changed files with 84 additions and 17 deletions

View File

@@ -58,18 +58,37 @@ class IssuePluginManager:
Returns:
Configuration dictionary
"""
from config.manager import UnifiedConfigManager
# Get main markitect configuration to extract API token and settings
try:
config_manager = UnifiedConfigManager()
markitect_config = config_manager.get_config()
main_config = markitect_config.__dict__ if hasattr(markitect_config, '__dict__') else {}
except Exception:
main_config = {}
if config_path is None:
config_path = Path('.markitect/config/issues.yml')
else:
config_path = Path(config_path)
# Default configuration
# Extract configuration from main markitect config
gitea_url = main_config.get('gitea_url', 'http://92.205.130.254:32166')
api_token = main_config.get('api_token', '')
repo_owner = main_config.get('repo_owner', 'coulomb')
repo_name = main_config.get('repo_name', 'markitect_project')
# Default configuration using main config values
default_config = {
'default_backend': 'gitea',
'backends': {
'gitea': {
'url': 'http://92.205.130.254:32166',
'repo': 'coulomb/markitect_project'
'url': gitea_url,
'token': api_token,
'repo_owner': repo_owner,
'repo_name': repo_name,
'repo': f'{repo_owner}/{repo_name}'
},
'local': {
'directory': '.markitect/issues',
@@ -88,6 +107,17 @@ class IssuePluginManager:
# Merge with defaults
merged_config = default_config.copy()
merged_config.update(config)
# Ensure gitea backend has token from main config if not overridden
if 'backends' in merged_config and 'gitea' in merged_config['backends']:
gitea_config = merged_config['backends']['gitea']
if not gitea_config.get('token'):
gitea_config['token'] = api_token
if not gitea_config.get('repo_owner'):
gitea_config['repo_owner'] = repo_owner
if not gitea_config.get('repo_name'):
gitea_config['repo_name'] = repo_name
return merged_config
except Exception:
# Return defaults if config loading fails