refactor: simplify gitea config to use owner/repo format

- Remove separate GITEA_OWNER config, use owner/repo format everywhere
- Add _parse_repo() helper to extract owner and repo from combined string
- Update plugin.json schema: file -> source, author as object
- Remove redundant configuration section from cmdb-assistant plugin
- Simplify gitea_client.py by removing excessive docstrings

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-12 02:12:22 -05:00
parent b067802da8
commit 310bd34e82
8 changed files with 97 additions and 276 deletions

View File

@@ -27,31 +27,24 @@ class LabelTools:
self.gitea = gitea_client
async def get_labels(self, repo: Optional[str] = None) -> Dict[str, List[Dict]]:
"""
Get all labels (org + repo) (async wrapper).
Args:
repo: Override configured repo (for PMO multi-repo)
Returns:
Dictionary with 'org' and 'repo' label lists
"""
"""Get all labels (org + repo). Repo must be 'owner/repo' format."""
loop = asyncio.get_event_loop()
# Get org labels
target_repo = repo or self.gitea.repo
if not target_repo or '/' not in target_repo:
raise ValueError("Use 'owner/repo' format (e.g. 'bandit/support-claude-mktplace')")
org = target_repo.split('/')[0]
org_labels = await loop.run_in_executor(
None,
self.gitea.get_org_labels
lambda: self.gitea.get_org_labels(org)
)
# Get repo labels if repo is specified
repo_labels = []
if repo or self.gitea.repo:
target_repo = repo or self.gitea.repo
repo_labels = await loop.run_in_executor(
None,
lambda: self.gitea.get_labels(target_repo)
)
repo_labels = await loop.run_in_executor(
None,
lambda: self.gitea.get_labels(target_repo)
)
return {
'organization': org_labels,