The deep-module split in plugins/gitea/ (ADR 0011) already covers every domain the old plugins/bin/skills/gitea/ flat skill handled. Move its token-access.md into plugins/gitea/references/ first, since it held empirical scope-test results (Actions/CI, Wiki, Notifications, Packages, User/Org) not reproduced anywhere in the new plugin, then drop the old skill and fix a stale cross-reference pointing at it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
5.8 KiB
5.8 KiB
topic, description
| topic | description |
|---|---|
| token-access | Gitea MCP token scope inventory — what works with the configured token vs. what requires additional scopes |
Gitea MCP Token Access
Current token scope
- write:issue
- write:repository
What works
Repository discovery
| Tool | Works | Notes |
|---|---|---|
search_repos |
✅ | Finds repos by keyword |
list_my_repos |
❌ | Needs read:user |
list_org_repos |
❌ | Needs read:user (inferred from get_user_orgs failure) |
get_repository_tree |
✅ | With write:repository |
get_dir_contents |
✅ | With write:repository |
get_file_contents |
✅ | With write:repository |
create_or_update_file |
✅ | Core write:repository op |
delete_file |
✅ | Core write:repository op |
Issues
| Tool | Works | Notes |
|---|---|---|
list_issues |
✅ | Full list with state filter |
search_issues |
✅ | Cross-repo search |
issue_read (get) |
✅ | |
issue_read (get_comments) |
✅ | |
issue_read (get_labels) |
✅ | |
issue_write (create) |
✅ | Core write:issue op |
issue_write (update) |
✅ | |
issue_write (add_comment) |
✅ | |
issue_write (edit_comment) |
✅ | |
issue_write (add_labels, remove_label, replace_labels, clear_labels) |
✅ | |
label_read |
✅ | |
label_write |
✅ | |
milestone_read |
✅ | |
milestone_write |
✅ |
Pull Requests
| Tool | Works | Notes |
|---|---|---|
list_pull_requests |
✅ | |
pull_request_read (get, get_diff, get_files, get_status, get_reviews) |
✅ | |
pull_request_write (create, update, close, reopen, merge, update_branch) |
✅ | Needs write:repository |
pull_request_review_write |
✅ |
Branches & Commits
| Tool | Works | Notes |
|---|---|---|
list_branches |
✅ | |
create_branch |
✅ | write:repository |
delete_branch |
✅ | write:repository |
list_commits |
✅ | |
get_commit |
✅ |
Releases & Tags
| Tool | Works | Notes |
|---|---|---|
list_releases, get_release, get_latest_release |
✅ | |
create_release, delete_release |
✅ | write:repository |
list_tags, get_tag, create_tag, delete_tag |
✅ | write:repository |
Actions (CI)
| Tool | Works | Notes |
|---|---|---|
actions_config_read (list_repo_secrets) |
❌ | "user should be the owner of the repo" — token auth not accepted for secrets |
actions_config_write |
untested (write — not tested to avoid side effects) | |
actions_run_read (list_workflows) |
✅ empty | No workflows defined; returns {total_count:0,workflows:[]} |
actions_run_read (list_runs) |
❌ | "user should be the owner of the repo" — 403 |
actions_run_write |
untested (write — not tested to avoid side effects) |
User & Identity
| Tool | Works | Notes |
|---|---|---|
get_me |
❌ | Needs read:user |
search_users |
❌ | Needs read:user |
get_user_orgs |
❌ | Needs read:user and read:organization |
Other
| Tool | Works | Notes |
|---|---|---|
wiki_read |
❌ | 404 — wiki not enabled for this repo |
wiki_write |
untested (write — not tested to avoid side effects) | |
notification_read |
❌ | Needs read:notification scope |
notification_write |
untested (write — not tested to avoid side effects) | |
timetracking_read (list_repo_times) |
✅ empty | No tracked times; returns string message |
timetracking_write |
untested (write — not tested to avoid side effects) | |
package_read |
❌ | Needs read:package scope |
package_write |
untested (write — not tested to avoid side effects) |