references/commits.md cited overview.md as the authority for a scope-gating claim, but no such file exists in this skill's package — the only overview.md is an external research doc not shipped with the skill. Repoint to branches.md's own Token scope section, which states and confirms the same principle, and drop the unverifiable write:repository enumeration detail no file in this skill actually makes. Found by an independent post-closure audit of #99 (agent-audit + skill-audit re-run against every changed skill/agent).
74 lines
3.1 KiB
Markdown
74 lines
3.1 KiB
Markdown
---
|
|
topic: commits
|
|
source_keys:
|
|
- gitea-mcp-repo
|
|
- gitea-mcp-slim-go
|
|
---
|
|
|
|
# Commit operations
|
|
|
|
Read-only commit history, scoped to a repo (optionally to one branch or one path). Call signatures
|
|
below were verified live against the deployed `gitea-mcp` server via `ToolSearch` at authoring time,
|
|
not copied from research docs, for the same drift-avoidance reason noted in `references/branches.md`.
|
|
|
|
This domain has no prior skill precedent — it's new coverage added alongside branches because commit
|
|
history is naturally scoped to a branch (a "what happened on this branch" question), not because it
|
|
shares any tool family with branch create/delete.
|
|
|
|
## `list_commits`
|
|
|
|
**Parameters:**
|
|
- `owner` (string, required)
|
|
- `repo` (string, required)
|
|
- `sha` (string, optional) — starting SHA or branch name; if omitted, gitea-mcp uses the repo's
|
|
default branch
|
|
- `path` (string, optional) — restrict results to commits that touched this file/path
|
|
- `page` (number, optional, default: `1`, minimum: `1`)
|
|
- `per_page` (number, optional, default: `30`, minimum: `1`)
|
|
|
|
**Call:**
|
|
```
|
|
list_commits owner: <owner> repo: <repo> sha: <branch-or-sha> path: <optional-path>
|
|
```
|
|
|
|
Dispatch defaults:
|
|
- "commits on `<branch>`" → pass `<branch>` as `sha`.
|
|
- "commits touching `<path>`" (no branch mentioned) → pass `path` alone, `sha` omitted (defaults to
|
|
the repo's default branch).
|
|
- Both given → pass both; the result is history for that path, walked from that branch/SHA.
|
|
- Neither given → omit both; this returns default-branch history, which is a reasonable default for
|
|
an open-ended "what's the recent history here" question.
|
|
|
|
**Response:** one object per commit: `sha`, `html_url`, `created`, `message` (when available),
|
|
`author` (`{name, email, date}`, when available).
|
|
|
|
Paginate per the pagination Gotcha in SKILL.md if you need more than one page of history.
|
|
|
|
## `get_commit`
|
|
|
|
**Parameters:**
|
|
- `owner` (string, required)
|
|
- `repo` (string, required)
|
|
- `sha` (string, required)
|
|
|
|
**Call:**
|
|
```
|
|
get_commit owner: <owner> repo: <repo> sha: <commit-sha>
|
|
```
|
|
|
|
**Response:** same shape as a `list_commits` entry, but always fully populated (`message` and
|
|
`author` are guaranteed present, not conditional). Use this when the user asks about one specific
|
|
commit by SHA rather than browsing history — `list_commits` entries may omit `message`/`author` in
|
|
edge cases, `get_commit` will not.
|
|
|
|
## Token scope
|
|
|
|
Both tools are believed to require `write:repository`, even though they're read-only — inferred by
|
|
analogy with the scope-gating principle confirmed for branch operations in `branches.md`'s Token
|
|
scope section (Gitea gates reads behind write scope for repo-scoped operations), not a claim any
|
|
doc in this skill makes for commits by name: nothing here enumerates commits under
|
|
`write:repository` explicitly. An earlier version of this doc claimed `write:issue` alone worked, based on
|
|
empirical testing under a token that held both `write:issue` and `write:repository`
|
|
simultaneously — that test didn't isolate the variable either. Treat this as unverified until
|
|
tested under a token scoped to `write:issue` only (no `write:repository`).
|