Repository
Generated automatically at build time from the madtea repository - do not edit here. Source: docs/reference/repo.md.
CLI Commands
madtea project disable
Disable projects for the current repository
madtea project enable
Enable projects for the current repository
| Flag | Type | Default | Description |
|---|---|---|---|
--mode | string | Projects mode: repo, owner, or all |
madtea project status
Show project settings for the current repository
madtea repo activity
Get activity feed
madtea repo archive
Download a repository archive
| Flag | Type | Default | Description |
|---|---|---|---|
--format | string | tar.gz | Archive format: tar.gz or zip |
--output | string | Output file path (defaults to |
madtea repo assignees
List available assignees
madtea repo avatar delete
Delete repository avatar
madtea repo avatar upload
Upload repository avatar
madtea repo collaborators
Collaborator operations
madtea repo collaborators add
Add a collaborator
| Flag | Type | Default | Description |
|---|---|---|---|
--permission | string | Permission level: read, write, admin (default: write) |
madtea repo collaborators check
Check collaborator permission
madtea repo collaborators list
List collaborators
| Flag | Type | Default | Description |
|---|---|---|---|
--limit | int | 0 | Maximum number of items to return (0 = server default) |
--page | int | 0 | Page number for pagination (0 = first page) |
madtea repo collaborators remove
Remove a collaborator
madtea repo convert
Convert fork to regular repo
madtea repo create
Create a new repository
| Flag | Type | Default | Description |
|---|---|---|---|
--auto-init | bool | false | Initialize repository with README, .gitignore, and license |
--default-branch | string | Set default branch name | |
--description | string | Repository description | |
--gitignores | string | Gitignore template (e.g. Go, Python, Node) | |
--license | string | License template (e.g. MIT, Apache-2.0, GPL-3.0) | |
--object-format | string | Object format: sha1 or sha256 (Forgejo) | |
--org | string | Organization to create the repository under | |
--private | bool | false | Make repository private |
--readme | string | README template | |
--template | bool | false | Create as a template repository |
--trust-model | string | Trust model for signing (default, collaborator, committer, collaboratorcommitter) |
madtea repo delete
Delete a repository (refused — use the forge web UI)
madtea repo edit
Edit repository settings
| Flag | Type | Default | Description |
|---|---|---|---|
--allow-ff-only | string | Allow fast-forward-only merging (true/false) | |
--allow-merge | string | Allow merge commits (true/false) | |
--allow-rebase | string | Allow rebase merging (true/false) | |
--allow-squash | string | Allow squash merging (true/false) | |
--archived | string | Archive or unarchive repository (true/false) | |
--default-branch | string | Default branch name | |
--default-merge-style | string | Default merge style (merge, rebase, squash, rebase-merge) | |
--description | string | Repository description | |
--name | string | Repository name | |
--no-actions | bool | false | Disable actions |
--no-issues | bool | false | Disable issues |
--no-packages | bool | false | Disable packages |
--no-pull-requests | bool | false | Disable pull requests |
--no-releases | bool | false | Disable releases |
--no-wiki | bool | false | Disable wiki |
--private | string | Make repository private (true/false) | |
--website | string | Repository website URL |
madtea repo editorconfig
Get editorconfig for a file
madtea repo flags add
Add a flag to a repository
madtea repo flags get
Check if a flag is set
madtea repo flags list
List repository flags
madtea repo flags remove
Remove a flag from a repository
madtea repo fork
Fork a repository
madtea repo forks
List repository forks
| Flag | Type | Default | Description |
|---|---|---|---|
--limit | int | 30 | Max items per page |
--page | int | 1 | Page number |
madtea repo generate
Generate repo from template
| Flag | Type | Default | Description |
|---|---|---|---|
--description | string | Description for the new repository | |
--name | string | Name for the new repository | |
--org | string | Organization to create the new repository under (defaults to the authenticated user) | |
--private | bool | false | Make the new repository private |
madtea repo get
Get repository details
madtea repo git-hooks delete
Delete a git hook
madtea repo git-hooks edit
Edit a git hook
| Flag | Type | Default | Description |
|---|---|---|---|
--content | string | Hook script content |
madtea repo git-hooks get
Get a git hook
madtea repo git-hooks list
List server-side git hooks
madtea repo hooks
Webhook operations
madtea repo hooks create
Create a webhook
| Flag | Type | Default | Description |
|---|---|---|---|
--authorization-header | string | Authorization header value sent with webhook requests | |
--branch-filter | string | Branch filter glob pattern (e.g. main, release/*) | |
--content-type | string | Content type: json or form (default: json) | |
--events | stringSlice | [] | Events to trigger on (can be repeated or comma-separated; default: push) |
--secret | string | Webhook secret | |
--url | string | Webhook target URL (required) |
madtea repo hooks delete
Delete a webhook
madtea repo hooks get
Get webhook details
madtea repo hooks list
List webhooks
madtea repo hooks test
Test a webhook
madtea repo issue-config
Get issue config
madtea repo issue-config validate
Validate issue config
madtea repo keys
Deploy key operations
madtea repo keys add
Add a deploy key
| Flag | Type | Default | Description |
|---|---|---|---|
--key | string | Public key content (required) | |
--read-only | bool | false | Make the key read-only |
--title | string | Key title/name (required) |
madtea repo keys delete
Delete a deploy key
madtea repo keys get
Get deploy key details
madtea repo keys list
List deploy keys
madtea repo languages
Get language breakdown
madtea repo licenses
Get detected licenses
madtea repo list
List your repositories
| Flag | Type | Default | Description |
|---|---|---|---|
--check-metadata | bool | false | Audit repos for missing description, topics, or website |
--limit | int | 0 | Maximum number of repositories to return |
--org | string | List repositories for this organization |
madtea repo media
Get media file content
| Flag | Type | Default | Description |
|---|---|---|---|
--ref | string | Git ref (branch, tag, or SHA) |
madtea repo merge-upstream
Merge upstream into fork (Gitea)
| Flag | Type | Default | Description |
|---|---|---|---|
--branch | string | Branch to merge upstream into |
madtea repo mirror create
Create a mirror repository
| Flag | Type | Default | Description |
|---|---|---|---|
--name | string | Repository name (defaults to URL base name) | |
--org | string | Organization to create the mirror under (defaults to authenticated user) |
madtea repo mirror sync
Trigger mirror sync
| Flag | Type | Default | Description |
|---|---|---|---|
--repo | string | Repository in owner/repo format (defaults to current repo) |
madtea repo notifications
List repo notifications
| Flag | Type | Default | Description |
|---|---|---|---|
--limit | int | 30 | Max notifications |
madtea repo notifications-read
Mark all repo notifications as read
madtea repo protect
Manage branch protection rules
madtea repo protect create
Create a branch protection rule
| Flag | Type | Default | Description |
|---|---|---|---|
--block-admin-merge-override | bool | false | Block admin merge override (Forgejo) |
--block-on-official-review-requests | bool | false | Block merge on official review requests |
--block-on-outdated-branch | bool | false | Block merge if branch is outdated |
--dismiss-stale | bool | false | Dismiss stale approvals on push |
--enable-force-push | bool | false | Enable force push (Forgejo) |
--enable-force-push-whitelist | bool | false | Enable force push whitelist (Forgejo) |
--enable-merge-whitelist | bool | false | Enable merge whitelist |
--enable-push | bool | false | Enable push to protected branch |
--enable-push-whitelist | bool | false | Enable push whitelist |
--enable-status-check | bool | false | Enable required status checks |
--force-push-whitelist-usernames | stringSlice | [] | Usernames allowed to force push (Forgejo, comma-separated or repeated) |
--merge-whitelist-usernames | stringSlice | [] | Usernames allowed to merge (comma-separated or repeated) |
--push-whitelist-usernames | stringSlice | [] | Usernames allowed to push (comma-separated or repeated) |
--require-signed | bool | false | Require signed commits |
--required-approvals | int | 0 | Number of required approvals |
--status-check-contexts | stringSlice | [] | Required status check contexts (comma-separated or repeated) |
madtea repo protect delete
Delete a branch protection rule
madtea repo protect get
Get branch protection rule details
madtea repo protect update
Update a branch protection rule
| Flag | Type | Default | Description |
|---|---|---|---|
--block-admin-merge-override | bool | false | Block admin merge override (Forgejo) |
--block-on-official-review-requests | bool | false | Block merge on official review requests |
--block-on-outdated-branch | bool | false | Block merge if branch is outdated |
--dismiss-stale | bool | false | Dismiss stale approvals on push |
--enable-force-push | bool | false | Enable force push (Forgejo) |
--enable-force-push-whitelist | bool | false | Enable force push whitelist (Forgejo) |
--enable-merge-whitelist | bool | false | Enable merge whitelist |
--enable-push | bool | false | Enable push to protected branch |
--enable-push-whitelist | bool | false | Enable push whitelist |
--enable-status-check | bool | false | Enable required status checks |
--force-push-whitelist-usernames | stringSlice | [] | Usernames allowed to force push (Forgejo, comma-separated or repeated) |
--merge-whitelist-usernames | stringSlice | [] | Usernames allowed to merge (comma-separated or repeated) |
--push-whitelist-usernames | stringSlice | [] | Usernames allowed to push (comma-separated or repeated) |
--require-signed | bool | false | Require signed commits |
--required-approvals | int | 0 | Number of required approvals |
--status-check-contexts | stringSlice | [] | Required status check contexts (comma-separated or repeated) |
madtea repo protect-priority
Reorder branch protection rules
madtea repo push-mirrors create
Create a push mirror
| Flag | Type | Default | Description |
|---|---|---|---|
--interval | string | Sync interval (e.g. 8h0m0s) | |
--remote-address | string | URL of the remote to push to | |
--remote-password | string | Password/token for authentication | |
--remote-username | string | Username for authentication | |
--sync-on-commit | bool | false | Sync on every commit |
madtea repo push-mirrors delete
Delete a push mirror
madtea repo push-mirrors get
Get push mirror details
madtea repo push-mirrors list
List push mirrors
madtea repo push-mirrors sync
Trigger push mirror sync
madtea repo raw
Get raw file content
| Flag | Type | Default | Description |
|---|---|---|---|
--ref | string | Git ref (branch, tag, or SHA) |
madtea repo reviewers
List available reviewers
madtea repo search
Search repositories
| Flag | Type | Default | Description |
|---|---|---|---|
--archived | string | Filter archived repos: true or false | |
--check-metadata | bool | false | Audit repos for missing description, topics, or website |
--exclusive | string | Match only given conditions: true or false | |
--include-desc | string | Include description in search: true or false | |
--limit | int | 0 | Maximum number of results |
--mode | string | Filter by mode: source, fork, mirror, collaborative | |
--order | string | Sort order: asc or desc | |
--org | string | Filter by organization (resolves org name to UID) | |
--page | int | 0 | Page number for pagination |
--private | string | Filter private repos: true or false | |
--sort | string | Sort field: alpha, created, updated, size, id, etc. | |
--starred-by | int | 0 | Filter repos starred by this user ID |
--template | string | Filter template repos: true or false | |
--topic | string | Limit search to topics: true or false |
madtea repo stargazers
List repository stargazers
| Flag | Type | Default | Description |
|---|---|---|---|
--limit | int | 30 | Max items per page |
--page | int | 1 | Page number |
madtea repo subscribers
List repository subscribers
| Flag | Type | Default | Description |
|---|---|---|---|
--limit | int | 30 | Max items per page |
--page | int | 1 | Page number |
madtea repo sync-fork
Sync fork with upstream
| Flag | Type | Default | Description |
|---|---|---|---|
--branch | string | Branch to sync |
madtea repo tag-protect create
Create a tag protection rule
| Flag | Type | Default | Description |
|---|---|---|---|
--whitelist-teams | stringSlice | [] | Teams allowed to create matching tags |
--whitelist-users | stringSlice | [] | Users allowed to create matching tags |
madtea repo tag-protect delete
Delete a tag protection rule
madtea repo tag-protect edit
Edit a tag protection rule
madtea repo tag-protect get
Get tag protection rule details
madtea repo tag-protect list
List tag protection rules
madtea repo teams add
Add team access
madtea repo teams check
Check if a team has access
madtea repo teams list
List teams with access
madtea repo teams remove
Remove team access
madtea repo templates
List issue templates
madtea repo templates list
List issue templates
madtea repo times
List tracked time for the repo
| Flag | Type | Default | Description |
|---|---|---|---|
--limit | int | 0 | Maximum number of items to return (0 = server default) |
--page | int | 0 | Page number for pagination (0 = first page) |
--user | string | Filter by username |
madtea repo topics get
Get repository topics
madtea repo topics set
Set repository topics
madtea repo transfer
Transfer a repository to a new owner
| Flag | Type | Default | Description |
|---|---|---|---|
--repo | string | Repository to transfer in owner/repo format (defaults to current repo) |
madtea repo transfer-accept
Accept pending transfer
madtea repo transfer-reject
Reject pending transfer
madtea repo unwatch
Unwatch the repository
madtea repo watch
Watch the repository
madtea repo watch-status
Check watch status
MCP Tools
madt_hooks
Manage repository webhooks (current repo by default; requires madt_enable(domains=[“hooks”])): list, get, create, delete, test deliveries.
Output schema: declared
One tool, action-dispatched. Set action to one of:
action="create"
Create a webhook on the current repository.
Required: url
Optional: events, secret, content_type, branch_filter, authorization_header
action="delete"
Delete one or more webhooks. Pass id for a single hook or ids for a batch.
One of: id | ids
action="get"
Get webhook details by ID. Formatted output omits branch_filter (and the server-redacted authorization_header); set raw_json=true to verify branch_filter.
Required: id
action="list"
List webhooks for the current repository.
action="test"
Trigger a test delivery for a webhook.
Required: id
madt_project
Toggle the repository projects feature (current repo by default; requires madt_enable(domains=[“project”])): status, enable, disable. Project board CONTENT — boards, columns, cards — has no Forgejo/Gitea REST API and can only be managed in the web UI; do not look for it here or via madt_api_call.
Output schema: declared
One tool, action-dispatched. Set action to one of:
action="disable"
Disable projects on the current repository.
action="enable"
Enable projects on the current repository.
Optional: mode
action="status"
Show current project settings (enabled flag and mode).
madt_repos
Manage repositories: list/search, create/get/edit, fork, transfer, mirror, archive, topics, teams, social (watch/star), avatar, flags, raw file content, languages, activity, forks, licenses, issue templates, generate from template, fork sync/upstream merge, collaborators, deploy keys, tag protection rules, and push mirrors. Irreversible repo deletion is not a madtea operation on any surface — delete a repository in the forge web UI.
Output schema: declared
One tool, action-dispatched. Set action to one of:
action="activity"
Get the activity feed for the repository.
Optional: owner_repo
action="archive"
Download a repository archive for a given ref; returns the downloaded file path. To archive/unarchive the repo itself, use action=edit archived=true|false.
Required: ref
Optional: owner_repo, format, output
action="assignees"
List users available as issue assignees.
Optional: owner_repo
action="avatar_delete"
Delete the repository’s avatar.
Optional: owner_repo
action="avatar_upload"
Upload an avatar image for the repository.
Required: file
Optional: owner_repo
action="collaborators_add"
Add a user as a collaborator. Default permission is write.
Required: collaborator
Optional: owner_repo, collaborator_permission
action="collaborators_check"
Check a user’s permission level on the repository.
Required: collaborator
Optional: owner_repo
action="collaborators_list"
List collaborators on the repository.
Optional: owner_repo, limit, page
action="collaborators_remove"
Remove collaborator(s) from the repository.
Required: collaborators
Optional: owner_repo
action="convert"
Convert a forked repository to a regular repository.
Optional: owner_repo
action="create"
Create a new repository. Creates under the authenticated user by default, or under an organization when org is set. name may be “org/name” as a shortcut.
Required: name
Optional: org, description, private, auto_init, default_branch, gitignores, license, readme, template, trust_model, object_format
action="deploy_keys_add"
Add a deploy key to the repository.
Required: deploy_key_title, deploy_key_content
Optional: owner_repo, deploy_key_readonly
action="deploy_keys_delete"
Delete deploy key(s) by ID.
Required: deploy_key_ids
Optional: owner_repo
action="deploy_keys_get"
Get a deploy key by ID.
Required: deploy_key_id
Optional: owner_repo
action="deploy_keys_list"
List deploy keys for the repository.
Optional: owner_repo
action="edit"
Update repository settings, including rename (set name) and archive/unarchive (set archived). Pass at least one field.
Optional: owner_repo, description, name, private, default_branch, website, has_wiki, has_issues, has_pull_requests, has_packages, has_actions, has_releases, allow_merge_commits, allow_rebase, allow_squash_merge, allow_rebase_update, default_merge_style, archived
action="flags_add"
Add a flag to a repository (Forgejo admin only).
Required: owner_repo, flag
action="flags_get"
Check if a flag is set on a repository (Forgejo admin only).
Required: owner_repo, flag
action="flags_list"
List flags on a repository (Forgejo admin only).
Required: owner_repo
action="flags_remove"
Remove a flag from a repository (Forgejo admin only).
Required: owner_repo, flag
action="fork"
Fork a repository to the authenticated user.
Required: owner_repo
action="forks"
List forks of the repository.
Optional: owner_repo, limit, page
action="generate"
Create a new repository from a template repository. Creates under the authenticated user by default, or under an organization when org is set.
Required: template_owner, template_repo, name
Optional: owner_repo, org, description, private
action="get"
Get repository details. Defaults to the current repo; set owner_repo to target another.
Optional: owner_repo
action="git_hooks_delete"
Delete a server-side git hook. Requires admin access.
Required: git_hook_id
Optional: owner_repo
action="git_hooks_edit"
Update the content of a server-side git hook. Requires admin access.
Required: git_hook_id, git_hook_content
Optional: owner_repo
action="git_hooks_get"
Get a server-side git hook by ID (pre-receive, update, post-receive). Requires admin access.
Required: git_hook_id
Optional: owner_repo
action="git_hooks_list"
List server-side git hooks (pre-receive, update, post-receive). Requires admin access.
Optional: owner_repo
action="issue_config"
Get or validate the issue config (contact links, blank issue settings).
Optional: owner_repo, validate
action="languages"
Get language breakdown (byte counts) for the repository.
Optional: owner_repo
action="licenses"
Get detected licenses for the repository.
Optional: owner_repo
action="list"
List repositories. Lists the authenticated user’s repos by default, or an organization’s repos when org is set. Paginated: limit default 30 (max 200), page is 1-based. Set check_metadata=true to audit repos for missing description, topics, or website.
Optional: org, limit, page, check_metadata
action="merge_upstream"
Merge upstream changes into a fork branch via the Gitea /merge-upstream endpoint. On Forgejo, or when unsure of the platform, use sync_fork instead.
Optional: owner_repo, branch
action="mirror_create"
Create a mirror repository from an external URL.
Required: clone_addr
Optional: name, org
action="mirror_sync"
Trigger a sync on a mirror repository. Defaults to the current repo.
Optional: owner_repo
action="push_mirrors_create"
Create a push mirror to replicate the repository to another remote.
Required: push_mirror_address
Optional: owner_repo, push_mirror_remote_username, push_mirror_remote_password, push_mirror_interval, push_mirror_sync_on_commit
action="push_mirrors_delete"
Delete a push mirror by name.
Required: push_mirror_id
Optional: owner_repo
action="push_mirrors_get"
Get a push mirror by name.
Required: push_mirror_id
Optional: owner_repo
action="push_mirrors_list"
List push mirrors configured for the repository.
Optional: owner_repo
action="push_mirrors_sync"
Trigger a sync of all push mirrors for the repository.
Optional: owner_repo
action="raw"
Get raw file content from the repository.
Required: path
Optional: owner_repo, ref
action="reviewers"
List users available as PR reviewers.
Optional: owner_repo
action="search"
Search repositories. sort: alpha|created|updated|size|id|stars|forks. Filter by org, mode, archived/private status. Paginated: limit default 30 (max 200), page is 1-based. Set check_metadata=true to audit repos for missing description, topics, or website.
Required: q
Optional: sort, order, limit, page, org, topic, include_desc, archived, private, mode, template, starred_by, exclusive, check_metadata
action="stargazers"
List users who starred the repository. Defaults to the current repo; set owner_repo to target another.
Optional: owner_repo, limit, page
action="subscribers"
List users who watch the repository. Defaults to the current repo; set owner_repo to target another.
Optional: owner_repo, limit, page
action="sync_fork"
Sync a forked repository with its upstream. Platform-aware (uses /sync_fork on Forgejo, /merge-upstream on Gitea) — works on both; prefer this.
Optional: owner_repo, branch
action="tag_protect_create"
Create a tag protection rule with a glob pattern and optional whitelists.
Required: name_pattern
Optional: owner_repo, whitelist_usernames, whitelist_teams
action="tag_protect_delete"
Delete a tag protection rule by ID.
Required: tag_protect_id
Optional: owner_repo
action="tag_protect_get"
Get a tag protection rule by ID.
Required: tag_protect_id
Optional: owner_repo
action="tag_protect_list"
List tag protection rules for the repository.
Optional: owner_repo
action="tag_protect_update"
Update a tag protection rule. Pass any of name_pattern, whitelist_usernames, whitelist_teams.
Required: tag_protect_id
Optional: owner_repo, name_pattern, whitelist_usernames, whitelist_teams
action="teams_add"
Add a team to the repository.
Required: team
Optional: owner_repo
action="teams_check"
Check whether a team has access to the repository. Returns the team if access exists, otherwise an API error.
Required: team
Optional: owner_repo
action="teams_list"
List teams with access to the repository.
Optional: owner_repo
action="teams_remove"
Remove a team from the repository.
Required: team
Optional: owner_repo
action="templates"
List issue templates configured for the repository.
Optional: owner_repo
action="templates_list"
List issue templates configured for the repository. Mirrors madtea repo templates list.
Optional: owner_repo
action="topics_get"
Get repository topics.
Optional: owner_repo
action="topics_search"
Search topics globally. Mirrors madtea topics search.
Required: q
Optional: limit, page
action="topics_set"
Replace the full topic list (overwrites all existing topics). To add or remove a single topic, call topics_get first and pass the merged list.
Required: topics
Optional: owner_repo
action="transfer"
Transfer a repository to a new owner (user or organization). If you do not control new_owner, the transfer stays pending until the recipient accepts.
Required: owner_repo, new_owner
Optional: team_ids
action="transfer_accept"
Accept a pending repository transfer. Must be run with the receiving owner’s credentials.
Optional: owner_repo
action="transfer_reject"
Reject a pending repository transfer. Must be run with the receiving owner’s credentials.
Optional: owner_repo
action="unwatch"
Unwatch the repository. Defaults to the current repo; set owner_repo to target another.
Optional: owner_repo
action="watch"
Watch the repository. Defaults to the current repo; set owner_repo to target another.
Optional: owner_repo
action="watch_status"
Check if the current user watches the repository. Defaults to the current repo; set owner_repo to target another.
Optional: owner_repo
Canonical source: docs/reference/repo.md in the madtea repo.