GitHub Topics for Team Identification
Shoehorn can automatically identify team ownership of repositories using GitHub topics. This provides a zero-configuration way to establish ownership without requiring manual manifest files.
How It Works
Section titled “How It Works”- Add an ownership topic to your GitHub repository
- Shoehorn’s crawler discovers the topic during repository scanning
- The repository is automatically assigned to the matching team
Topic Convention
Section titled “Topic Convention”Shoehorn supports both owner and team topic prefixes:
| Pattern | Example | Behavior |
|---|---|---|
owner-<team-slug> | owner-platform-team | Explicit ownership topic |
owner:<team-slug> | owner:platform-team | Also supported |
team-<team-slug> | team-beta-team | Team ownership topic |
team:<team-slug> | team:beta-team | Also supported |
Recommended for new repositories:
- Use
owner-<team-slug>when the topic is your primary ownership declaration. - Use
team-<team-slug>when you want a lighter convention that still maps cleanly.
Setting Topics on GitHub
Section titled “Setting Topics on GitHub”- Go to your repository on GitHub
- Click the gear icon next to About
- In the Topics field, add your team topic
- Click Save changes
Or via the GitHub API:
curl -X PUT https://api.github.com/repos/<owner>/<repo>/topics \ -H "Authorization: token <github-token>" \ -H "Accept: application/vnd.github+json" \ -d '{"names": ["owner-platform-team", "golang", "microservice"]}'Scorecard Integration
Section titled “Scorecard Integration”The scorecard rule team-topic checks if a repository has an ownership topic assigned. This contributes to the ownership category score.
Priority
Section titled “Priority”GitHub topics have lower priority than direct ownership annotations:
- Manifest
ownerfield (highest) - Kubernetes annotation
shoehorn.dev/owner - GitHub topic
owner-*/owner:*/team-*/team:*(lowest)
If a manifest explicitly sets an owner, the GitHub topic is ignored for ownership purposes but still tracked as metadata.
Multiple Topics
Section titled “Multiple Topics”A repository can have multiple topics. Only topics matching the ownership patterns above are used for ownership. All other topics are treated as regular tags and imported into the entity’s tag list.
See Also
Section titled “See Also”- Repository Ownership - Topic, manifest, and Forge ownership rules
- Teams - Team directory and ownership views