feat: repo_topics_update tool #18

Closed
opened 2026-05-14 08:52:42 +00:00 by mathias · 1 comment
Owner

Summary

Add a repo_topics_update tool to set/replace the topic tags on a repository. Topics are the primary way to make repos discoverable and are used by the GitHub ingestion pipeline to filter relevant repos.

Gitea API

PUT /api/v1/repos/{owner}/{repo}/topics

Tool spec

tool: repo_topics_update
params:
  owner:  string
  name:   string
  topics: []string  // replaces all existing topics

Required token permission

write:repository scope on the Gitea API token.

Risk classification

LOW — metadata only, fully reversible.

Motivation

During the GitHub ingestion pipeline design (2026-05-14): topic filtering is a key mechanism for reducing noise when ingesting starred repos. Our own repos also need consistent topics so they're correctly categorised. hyperguild new-project should set topics on newly created repos based on blueprint type (e.g. ["go", "agent", "homelab"] for agent projects).

  • Part of the repo_create + repo_update family
  • Used by hyperguild new-project after repo creation
## Summary Add a `repo_topics_update` tool to set/replace the topic tags on a repository. Topics are the primary way to make repos discoverable and are used by the GitHub ingestion pipeline to filter relevant repos. ## Gitea API `PUT /api/v1/repos/{owner}/{repo}/topics` ## Tool spec ``` tool: repo_topics_update params: owner: string name: string topics: []string // replaces all existing topics ``` ## Required token permission `write:repository` scope on the Gitea API token. ## Risk classification **LOW** — metadata only, fully reversible. ## Motivation During the GitHub ingestion pipeline design (2026-05-14): topic filtering is a key mechanism for reducing noise when ingesting starred repos. Our own repos also need consistent topics so they're correctly categorised. `hyperguild new-project` should set topics on newly created repos based on blueprint type (e.g. `["go", "agent", "homelab"]` for agent projects). ## Related - Part of the `repo_create` + `repo_update` family - Used by `hyperguild new-project` after repo creation
Author
Owner

Shipped in v0.2.3. Closing during cleanup pass.

Shipped in v0.2.3. Closing during cleanup pass.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mathias/gitea-mcp#18