781439bbdb
- Full Gitea REST API coverage for repos, issues, PRs, branches, files, releases, webhooks, orgs, notifications - Multi-instance support via config.json - pyproject.toml with pinned dependencies (mcp[cli], httpx) - config.example.json as credentials template (config.json is gitignored)
105 lines
4.4 KiB
Markdown
105 lines
4.4 KiB
Markdown
---
|
|
name: gitea
|
|
description: >
|
|
Use this skill when the user asks to work with their Gitea server:
|
|
"покажи мои репозитории", "создай репозиторий", "открой issue", "закрой issue",
|
|
"создай pull request", "смерджи PR", "добавь вебхук", "покажи релизы",
|
|
"создай ветку", "покажи коммиты", "сравни ветки", "список организаций",
|
|
"переключись на work gitea", "gitea", "list repos", "create issue",
|
|
"open PR", "merge pull request", "create release", "add webhook",
|
|
"list branches", "gitea notifications", "check gitea connection".
|
|
metadata:
|
|
version: "0.2.0"
|
|
---
|
|
|
|
# Gitea Platform Assistant
|
|
|
|
Full Gitea REST API integration. All tools: `mcp__gitea__<tool_name>`.
|
|
|
|
## First Use
|
|
|
|
Always start by checking the connection and listing available instances:
|
|
```
|
|
mcp__gitea__list_instances() → shows configured instances + default
|
|
mcp__gitea__get_current_user() → verifies auth works
|
|
```
|
|
|
|
If these fail, tell the user to fill in `config.json` in the plugin folder.
|
|
|
|
## Instance Selection
|
|
|
|
Every tool has an optional `instance` parameter (defaults to `""` = use default from config).
|
|
|
|
When user says "на work" / "на home" / "on the work server" → pass `instance="work"` (or relevant name).
|
|
When no instance is specified → pass `instance=""` (uses config default).
|
|
|
|
## Tool Categories
|
|
|
|
### Meta & Health
|
|
- `list_instances()` — show all configured instances
|
|
- `get_server_info(instance)` — Gitea version
|
|
- `get_current_user(instance)` — authenticated user
|
|
|
|
### Repositories
|
|
- `list_my_repos(limit, page, instance)`
|
|
- `search_repos(query, instance)`
|
|
- `get_repo(owner, repo, instance)`
|
|
- `create_repo(name, description, private, auto_init, default_branch, instance)`
|
|
- `create_org_repo(org, name, ..., instance)`
|
|
- `update_repo(owner, repo, ..., instance)`
|
|
- `delete_repo(owner, repo, instance)` ⚠️ permanent
|
|
- `fork_repo(owner, repo, organization, new_repo_name, instance)`
|
|
- `set_repo_topics(owner, repo, topics, instance)`
|
|
|
|
### Branches & Tags
|
|
- `list_branches(owner, repo, instance)`
|
|
- `get_branch(owner, repo, branch, instance)`
|
|
- `create_branch(owner, repo, new_branch_name, old_branch_name, instance)`
|
|
- `delete_branch(owner, repo, branch, instance)` ⚠️
|
|
- `list_tags(owner, repo, instance)`
|
|
|
|
### Files
|
|
- `list_directory(owner, repo, path, ref, instance)` — browse repo tree
|
|
- `get_file(owner, repo, filepath, ref, instance)` — returns content + sha
|
|
- `create_file(owner, repo, filepath, content, message, branch, instance)` — plain text input, auto-encoded
|
|
- `update_file(owner, repo, filepath, content, message, sha, branch, instance)` — requires sha from get_file
|
|
- `delete_file(owner, repo, filepath, message, sha, branch, instance)` — requires sha
|
|
|
|
### Issues
|
|
- `list_issues(owner, repo, state, type, labels, assignee, limit, instance)`
|
|
- `get_issue(owner, repo, index, instance)`
|
|
- `create_issue(owner, repo, title, body, assignees, labels, instance)`
|
|
- `update_issue(owner, repo, index, title, body, state, instance)`
|
|
- `close_issue / reopen_issue(owner, repo, index, instance)`
|
|
- `list_issue_comments / add_issue_comment / edit_issue_comment / delete_issue_comment`
|
|
|
|
### Labels & Milestones
|
|
- `list_labels / create_label(name, color #rrggbb) / add_issue_labels`
|
|
- `list_milestones / create_milestone(title, due_on)`
|
|
|
|
### Pull Requests
|
|
- `list_pull_requests(owner, repo, state, instance)`
|
|
- `get_pull_request(owner, repo, index, instance)`
|
|
- `create_pull_request(owner, repo, title, head, base, body, instance)`
|
|
- `merge_pull_request(owner, repo, index, merge_style, instance)` — merge_style: merge|rebase|squash
|
|
- `get_pr_diff(owner, repo, index, instance)` — returns diff text
|
|
- `list_pr_reviews / create_pr_review(state: APPROVED|COMMENT|REQUEST_CHANGES)`
|
|
|
|
### Releases
|
|
- `list_releases / get_latest_release / create_release / delete_release`
|
|
|
|
### Webhooks
|
|
- `list_repo_webhooks / create_repo_webhook(url, events) / delete_repo_webhook`
|
|
|
|
### Users & Organizations
|
|
- `get_current_user / get_user(username) / search_users(query)`
|
|
- `list_my_orgs / get_org / list_org_repos / list_org_members / list_org_teams`
|
|
|
|
### Commits & Activity
|
|
- `list_commits(owner, repo, sha, path, limit)`
|
|
- `compare_branches(owner, repo, base, head)` — diff + commit list
|
|
- `list_repo_contributors`
|
|
|
|
### Notifications
|
|
- `list_notifications(all) / mark_all_notifications_read`
|