Skip to content

MCP tool reference

The Codebahn MCP server exposes 102 tools across 9 groups. Each tool's name matches what your AI assistant calls directly.

User

get_my_user_info

Get current user info

No parameters.

Repo

create_repo

Create repo

NameTypeRequiredDefaultDescription
namestringYesRepo name
descriptionstringNoDescription
ownerstringNoOwner/org name
privatebooleanNoPrivate repo
issue_labelsstringNoIssue label set
auto_initbooleanNoAuto-initialize
templatebooleanNoTemplate repo
gitignoresstringNoGitignore templates
licensestringNoLicense
readmestringNoREADME content
default_branchstringNoDefault branch

list_my_repos

List my repos

NameTypeRequiredDefaultDescription
pagenumberYes1Page number (1-based)
limitnumberYes100Page size

update_repo

Update repository settings (common subset): name, description, website, default_branch, private, archived, has_issues, has_pull_requests, has_releases, has_packages, has_actions, allow_merge_commits, allow_rebase, allow_squash_merge, default_merge_style, default_delete_branch_after_merge. All fields optional; omitted fields are left unchanged. Accepts the full Forgejo EditRepoOption surface beyond the common subset.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
namestringNoNew repository name
descriptionstringNoDescription
websitestringNoWebsite URL
default_branchstringNoDefault branch
default_merge_stylestringNoDefault merge style (merge, rebase, rebase-merge, squash, fast-forward-only)
mirror_intervalstringNoMirror sync interval (e.g. 8h, 0 to disable)
external_tracker_urlstringNoExternal issue tracker URL
external_tracker_formatstringNoExternal issue tracker URL format
external_tracker_stylestringNoExternal issue tracker numbering style
external_tracker_regexp_patternstringNoExternal issue tracker regexp pattern
external_wiki_urlstringNoExternal wiki URL
privatebooleanNoPrivate repo
templatebooleanNoTemplate repo
archivedbooleanNoArchived (read-only)
has_issuesbooleanNoEnable issue tracker
has_wikibooleanNoEnable wiki
has_pull_requestsbooleanNoEnable pull requests
has_projectsbooleanNoEnable projects
has_releasesbooleanNoEnable releases
has_packagesbooleanNoEnable package registry
has_actionsbooleanNoEnable Actions CI
ignore_whitespace_conflictsbooleanNoIgnore whitespace-only conflicts when merging
allow_merge_commitsbooleanNoAllow merge commits
allow_rebasebooleanNoAllow rebase merging
allow_rebase_explicitbooleanNoAllow rebase with explicit merge commit
allow_rebase_updatebooleanNoAllow rebase of PR head branch when behind base
allow_squash_mergebooleanNoAllow squash merging
allow_fast_forward_only_mergebooleanNoAllow fast-forward-only merging
default_delete_branch_after_mergebooleanNoDelete head branch by default after merge
default_allow_maintainer_editbooleanNoAllow maintainer edits on PRs by default
enable_prunebooleanNoEnable automatic pruning of obsolete mirror branches

get_file_content

Get file content as plain text by default. Set with_metadata=true for binary files, or when you need the SHA/encoding/links from the full ContentsResponse (e.g. before a follow-up update_file call). Optional start_line and end_line request a 1-indexed inclusive line range; out-of-range values clamp to the file extent. Range parameters are ignored when with_metadata=true.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
refstringYesRef (branch/tag/commit)
filePathstringYesFile path
with_metadatabooleanNoReturn the full ContentsResponse (sha, encoding, links, type, size, base64 content) instead of plain text.
start_linenumberNoOptional 1-indexed first line of the slice (inclusive). Defaults to 1 when only end_line is set.
end_linenumberNoOptional 1-indexed last line of the slice (inclusive). Defaults to the file's last line when only start_line is set.

create_file

Create file

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
filePathstringYesFile path
contentstringYesContent (plain text, base64-encoded automatically)
messagestringYesCommit message
branch_namestringYesBranch name
new_branch_namestringNoNew branch name

update_file

Update file

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
filePathstringYesFile path
contentstringYesContent (plain text, base64-encoded automatically)
messagestringYesCommit message
branch_namestringYesBranch name
shastringYesFile SHA
new_branch_namestringNoNew branch name

delete_fileDestructive

Delete file

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
filePathstringYesFile path
messagestringYesCommit message
branch_namestringYesBranch name
shastringYesFile SHA
new_branch_namestringNoNew branch name

create_branch

Create branch

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
branchstringYesBranch name
old_branchstringYesSource branch

delete_branchDestructive

Delete branch

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
branchstringYesBranch name

list_branches

List branches

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
pagenumberYes1Page number (1-based)
limitnumberYes100Page size

list_repo_commits

List commits, newest first, starting from sha (a branch, tag or commit; defaults to the default branch). Set path to a file or directory to get only the commits that touched it: file-scoped history shows who changed a file recently and how often, which tells you how much scrutiny a change there deserves.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
pathstringNoOptional file or directory path. Only commits that touched it are returned.
shastringNoBranch, tag or commit SHA to start from (default: the default branch)
pagenumberYes1Page number (1-based)
limitnumberYes100Page size

get_commit_diff

Get the unified diff of a single commit (its changes against its first parent). Pass an optional file_path to receive only the hunks for that file (match is exact on either the pre- or post-rename path). Pair with list_pr_commits to review a pull request commit by commit instead of only its squashed diff.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
shastringYesCommit SHA (full or abbreviated)
file_pathstringNoOptional. Return only the diff section for this file (matched on the diff --git boundary). Omit for the full diff.

compare_refs

Compare two refs (branches, tags or commit SHAs) as base...head: the commits reachable from head but not from base (newest first), and the files those commits touched with their status. No pull request is needed, so use it to preview a PR before it exists, to check what actually landed between two releases or deploys, or to measure how far two branches have diverged. For the hunks themselves use get_commit_diff on the listed commits.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
basestringYesBase ref (branch, tag or commit SHA)
headstringYesHead ref (branch, tag or commit SHA); the result is what head has that base does not

list_repo_contents

List the files and directories at a given path in a repository. Use path="" to list the repository root. Returns one level of entries at the specified path; for a full recursive file tree use get_repo_tree with recursive=true.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
refstringYesRef (branch/tag/commit)
pathstringYesDirectory path within the repository (empty string lists the repository root)

get_repo_tree

Get the Git tree of a repository. With recursive=true, returns the complete file tree in a single response (subject to the server's tree-endpoint size cap); use this when you need all paths at once. With recursive=false (default), returns only the top-level entries of the tree.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
refstringYesRef (branch/tag/commit)
recursivebooleanNoReturn the complete file tree in one response (subject to server cap); default false returns top-level entries only
pagenumberYes1Page number (1-based)
limitnumberYes1000Page size

Issue

get_issue_by_index

Get issue by index

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesIssue index

list_repo_issues

List repo issues

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
statestringNoopenState (open|closed|all)
typestringNoType (issues|pulls)
milestonesstringNoMilestone names/IDs (comma-separated)
labelsstringNoLabels (comma-separated)
pagenumberNo1Page number (1-based)
limitnumberNo20Page size

create_issue

Create issue

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
titlestringYesTitle
bodystringNoContent body

create_issue_comment

Create issue comment

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesIssue/PR index
bodystringYesContent body

update_issue

Update issue

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesIssue index
titlestringNoTitle
bodystringNoContent body
assigneestringNoAssignee username (convenience for a single user; equivalent to a one-element 'assignees')
assigneesstringNoAssignee usernames (comma-separated). Overrides 'assignee' if both are set. Pass an empty string to clear all assignees.
milestonestringNoMilestone ID

add_issue_labels

Add labels to issue

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesIssue index
labelsstringYesLabels to add (comma-separated)

remove_issue_labelsDestructive

Remove labels from issue

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesIssue index
labelsstringYesLabels to remove (comma-separated label IDs)

issue_state_change

Change issue state

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesIssue index
statestringYesState (open|closed)

list_issue_comments

List issue/PR comments. Returns all comments; the API does not support pagination for this endpoint.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesIssue/PR index
sincestringNoAfter (RFC 3339)
beforestringNoBefore (RFC 3339)

get_issue_comment

Get comment by ID

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
comment_idnumberYesComment ID

edit_issue_comment

Edit issue/PR comment

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
comment_idnumberYesComment ID
bodystringYesContent body

delete_issue_commentDestructive

Delete issue/PR comment

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
comment_idnumberYesComment ID

list_repo_milestones

List repository milestones

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
pagenumberNo1Page number (1-based)
limitnumberNo100Page size
statestringNoopenMilestone state (open|closed|all)

list_repo_labels

List repository labels. When the owner is an organization and include_org_labels is true (default), org-level labels are merged into the response. Each label carries a scope field of "repo" or "org".

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
pagenumberNo1Page number (1-based)
limitnumberNo100Page size
include_org_labelsbooleanNotrueMerge org-level labels into the response when the owner is an organization. Default true.

create_label

Create a label on a repository or organization

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner or organization name
namestringYesLabel name
colorstringYesLabel color hex code (e.g. #00aabb)
repostringNoRepository name. Omit to create an org-level label.
descriptionstringNoLabel description
exclusivebooleanNofalseWhether this label is exclusive (only one label with the same scope can be applied)

edit_label

Edit a label on a repository or organization

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner or organization name
idnumberYesLabel ID
repostringNoRepository name. Omit to edit an org-level label.
namestringNoNew label name
colorstringNoNew label color hex code
descriptionstringNoNew label description
exclusivebooleanNoWhether this label is exclusive

delete_labelDestructive

Delete a label from a repository or organization

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner or organization name
idnumberYesLabel ID
repostringNoRepository name. Omit to delete an org-level label.

PR

get_pull_request_by_index

Get pull request by index

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index

list_repo_pull_requests

List repo pull requests

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
statestringNoopenState (open|closed|all)
sortstringNoSort (oldest|recentupdate|leastupdate|mostcomment)
milestonestringNoMilestone ID
labelsstringNoLabel IDs
pagenumberNo1Page number (1-based)
limitnumberNo20Page size

create_pull_request

Create pull request

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
headstringYesHead branch
basestringYesBase branch
titlestringYesTitle
bodystringNoContent body

update_pull_request

Update pull request

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
titlestringNoTitle
bodystringNoContent body
basestringNoBase branch
assigneestringNoAssignee username
milestonestringNoMilestone ID

list_pull_reviews

List reviews for a pull request

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
pagenumberNo1Page number (1-based)
limitnumberNo20Page size

get_pull_review

Get a specific pull request review

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
idnumberYesReview ID

list_pull_review_comments

List comments on a pull request review

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
idnumberYesReview ID

merge_pull_request

Merge a pull request

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
stylestringYesMerge style (merge, rebase, rebase-merge, squash)
titlestringNoMerge commit title
messagestringNoMerge commit message
delete_branch_after_mergebooleanNoDelete head branch after merge
force_mergebooleanNoForce merge even if checks have not passed
merge_when_checks_succeedbooleanNoSchedule merge for when all checks succeed

list_pull_request_files

List changed files in a pull request

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
pagenumberNo1Page number (1-based)
limitnumberNo50Page size

get_pull_request_diff

Get the unified diff of a pull request. Pass an optional file_path to receive only the hunks for that file (match is exact on either the pre- or post-rename path). Use list_pull_request_files first to discover the file paths in the PR.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
file_pathstringNoOptional. Return only the diff section for this file (matched on the diff --git boundary). Omit for the full diff.

list_pr_commits

List the individual commits of a pull request, newest first, with SHA, message, author and date. Use it to review a PR commit by commit (pair with get_commit_diff), and to spot fixup commits, commits that do not belong, or changes introduced and then reverted within the PR, none of which are visible in the squashed diff.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
pagenumberNo1Page number (1-based)
limitnumberNo50Page size

create_pull_review

Create a pull request review with optional inline comments

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
statestringYesReview state (APPROVED, REQUEST_CHANGES, COMMENT)
bodystringNoReview body
commentsstringNoInline comments as JSON array, e.g. [{"path":"file.go","body":"Fix this","new_position":10}]

submit_pull_review

Submit a pending pull request review

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
idnumberYesReview ID
statestringYesReview state (APPROVED, REQUEST_CHANGES, COMMENT)
bodystringNoReview body

dismiss_pull_review

Dismiss a pull request review

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
idnumberYesReview ID
messagestringYesDismissal message

delete_pull_reviewDestructive

Delete a pending pull request review

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
idnumberYesReview ID

create_review_requests

Request reviews from specific users or teams

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
reviewersstringNoReviewer usernames (comma-separated)
team_reviewersstringNoTeam reviewer names (comma-separated)

delete_review_requestsDestructive

Cancel pending review requests

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
indexnumberYesPR index
reviewersstringNoReviewer usernames (comma-separated)
team_reviewersstringNoTeam reviewer names (comma-separated)

Search across all types (code, repos, issues, users, organizations). Returns hit counts and a preview of results for each type. Use search_code or search_repos for paginated results.

NameTypeRequiredDefaultDescription
keywordstringYesSearch keyword

search_code

Search code across all accessible repositories

NameTypeRequiredDefaultDescription
keywordstringYesSearch keyword
languagestringNoFilter by programming language
filenamestringNoFilter by filename or path
modestringNoexactSearch mode: exact, union, fuzzy
pagenumberNo1Page number (1-based)
limitnumberNo30Page size

search_repos

Search repositories by name or description

NameTypeRequiredDefaultDescription
keywordstringYesSearch keyword
pagenumberNo1Page number (1-based)
limitnumberNo30Page size

CI

dispatch_workflow

Trigger a workflow run. Returns the run ID.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
workflowstringYesWorkflow file (e.g. ci.yml)
refstringNoGit ref to build (branch/tag). Defaults to repo default branch.
inputsstringNoWorkflow inputs as JSON object, e.g. {"key": "value"}

list_workflow_runs

List workflow runs for a repository

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
statusstringNoFilter by status (waiting, running, success, failure, cancelled)
eventstringNoFilter by event (push, pull_request, workflow_dispatch)
run_numbernumberNoFilter by run number
head_shastringNoFilter by HEAD SHA
pagenumberNo1Page number (1-based)
limitnumberNo30Page size

get_workflow_run

Get details of a specific workflow run

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
run_idnumberYesRun ID

get_job_logs

Get logs for a CI build run, grouped by job

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
run_idnumberYesWorkflow run ID
jobstringNoFilter logs to a specific job name
tail_linesnumberNoMax log lines per job (default 200, max 500)

cancel_buildDestructive

Cancel a running CI build

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
run_idnumberYesWorkflow run ID

list_secrets

List repository Actions secret names (values are write-only and never returned)

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
pagenumberYes1Page number (1-based)
limitnumberYes30Page size

set_secret

Create or update a repository Actions secret. Secrets are write-only: there is no get_secret tool because the value cannot be read back.

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
secret_namestringYesSecret name
datastringYesSecret value. Write-only: there is no way to read it back once set.

delete_secretDestructive

Delete a repository Actions secret

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
secret_namestringYesSecret name

list_variables

List repository Actions variables

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
pagenumberYes1Page number (1-based)
limitnumberYes30Page size

get_variable

Get a repository Actions variable

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
variable_namestringYesVariable name

create_variable

Create a repository Actions variable

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
variable_namestringYesVariable name
valuestringYesVariable value

update_variable

Update a repository Actions variable

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
variable_namestringYesVariable name
valuestringYesVariable value

delete_variableDestructive

Delete a repository Actions variable

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
variable_namestringYesVariable name

list_org_secrets

List organization Actions secret names (values are write-only and never returned)

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
pagenumberYes1Page number (1-based)
limitnumberYes30Page size

set_org_secret

Create or update an organization Actions secret. Secrets are write-only: there is no get_org_secret tool because the value cannot be read back.

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
secret_namestringYesSecret name
datastringYesSecret value. Write-only: there is no way to read it back once set.

delete_org_secretDestructive

Delete an organization Actions secret

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
secret_namestringYesSecret name

list_org_variables

List organization Actions variables

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
pagenumberYes1Page number (1-based)
limitnumberYes30Page size

get_org_variable

Get an organization Actions variable

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
variable_namestringYesVariable name

create_org_variable

Create an organization Actions variable

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
variable_namestringYesVariable name
valuestringYesVariable value

update_org_variable

Update an organization Actions variable

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
variable_namestringYesVariable name
valuestringYesVariable value

delete_org_variableDestructive

Delete an organization Actions variable

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
variable_namestringYesVariable name

Release

list_releases

List releases for a repository

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
pagenumberYes1Page number (1-based)
limitnumberYes30Page size

create_release

Create a release

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
tag_namestringYesTag name for the release
target_commitishstringNoTarget branch or commit SHA (defaults to the repo default branch)
namestringNoRelease title
bodystringNoRelease notes body
draftbooleanNoCreate as a draft release
prereleasebooleanNoMark as a prerelease

get_release

Get a release by ID

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
idnumberYesRelease ID

get_latest_release

Get the latest release

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name

get_release_by_tag

Get a release by tag name

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
tagstringYesTag name

update_release

Update a release

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
idnumberYesRelease ID
tag_namestringNoTag name for the release
target_commitishstringNoTarget branch or commit SHA
namestringNoRelease title
bodystringNoRelease notes body
draftbooleanNoMark as a draft release
prereleasebooleanNoMark as a prerelease

delete_releaseDestructive

Delete a release

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
idnumberYesRelease ID

list_release_attachments

List attachments (assets) of a release

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
idnumberYesRelease ID

delete_release_attachmentDestructive

Delete a release attachment (asset)

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
idnumberYesRelease ID
attachment_idnumberYesAttachment (asset) ID

list_tags

List tags for a repository

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
pagenumberYes1Page number (1-based)
limitnumberYes30Page size

create_tag

Create a tag

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
tag_namestringYesTag name
targetstringNoTarget branch or commit SHA (defaults to the repo default branch)
messagestringNoTag message

delete_tagDestructive

Delete a tag

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
tagstringYesTag name

Webhook

list_hooks

List webhooks for a repository

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
pagenumberYes1Page number (1-based)
limitnumberYes30Page size

get_hook

Get a repository webhook by ID

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
idnumberYesWebhook ID

create_hook

Create a repository webhook

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
typestringYesgiteaWebhook type (e.g. gitea, slack, discord)
urlstringYesTarget URL the webhook payload is delivered to
content_typestringNojsonPayload content type (json or form)
secretstringNoSecret used to sign the payload
eventsstringYesEvents that trigger the webhook (comma-separated, e.g. push,pull_request)
activebooleanNoWhether the webhook is active
branch_filterstringNoGlob pattern restricting which branches trigger the webhook
authorization_headerstringNoAuthorization header value sent with each delivery

update_hook

Update a repository webhook

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
idnumberYesWebhook ID
typestringNoWebhook type (e.g. gitea, slack, discord)
urlstringNoTarget URL the webhook payload is delivered to
content_typestringNoPayload content type (json or form)
secretstringNoSecret used to sign the payload
eventsstringNoEvents that trigger the webhook (comma-separated, e.g. push,pull_request)
activebooleanNoWhether the webhook is active
branch_filterstringNoGlob pattern restricting which branches trigger the webhook
authorization_headerstringNoAuthorization header value sent with each delivery

delete_hookDestructive

Delete a repository webhook

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
idnumberYesWebhook ID

test_hook

Send a test delivery to a repository webhook

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
idnumberYesWebhook ID

list_org_hooks

List webhooks for an organization

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
pagenumberYes1Page number (1-based)
limitnumberYes30Page size

get_org_hook

Get an organization webhook by ID

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
idnumberYesWebhook ID

create_org_hook

Create an organization webhook

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
typestringYesgiteaWebhook type (e.g. gitea, slack, discord)
urlstringYesTarget URL the webhook payload is delivered to
content_typestringNojsonPayload content type (json or form)
secretstringNoSecret used to sign the payload
eventsstringYesEvents that trigger the webhook (comma-separated, e.g. push,pull_request)
activebooleanNoWhether the webhook is active
branch_filterstringNoGlob pattern restricting which branches trigger the webhook
authorization_headerstringNoAuthorization header value sent with each delivery

update_org_hook

Update an organization webhook

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
idnumberYesWebhook ID
typestringNoWebhook type (e.g. gitea, slack, discord)
urlstringNoTarget URL the webhook payload is delivered to
content_typestringNoPayload content type (json or form)
secretstringNoSecret used to sign the payload
eventsstringNoEvents that trigger the webhook (comma-separated, e.g. push,pull_request)
activebooleanNoWhether the webhook is active
branch_filterstringNoGlob pattern restricting which branches trigger the webhook
authorization_headerstringNoAuthorization header value sent with each delivery

delete_org_hookDestructive

Delete an organization webhook

NameTypeRequiredDefaultDescription
ownerstringYesOrganization name
idnumberYesWebhook ID

Protection

list_branch_protections

List branch protection rules for a repository

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name

get_branch_protection

Get a branch protection rule by name

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
namestringYesBranch protection rule name (glob pattern)

create_branch_protection

Create a branch protection rule

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
rule_namestringYesBranch name glob pattern this rule protects
enable_pushbooleanNoAllow whitelisted users/teams to push directly
enable_push_whitelistbooleanNoRestrict direct pushes to the push whitelist
push_whitelist_usernamesstringNoUsernames allowed to push directly (comma-separated)
push_whitelist_teamsstringNoTeams allowed to push directly (comma-separated)
push_whitelist_deploy_keysbooleanNoAllow deploy keys to push directly
enable_merge_whitelistbooleanNoRestrict merging to the merge whitelist
merge_whitelist_usernamesstringNoUsernames allowed to merge (comma-separated)
merge_whitelist_teamsstringNoTeams allowed to merge (comma-separated)
enable_status_checkbooleanNoRequire status checks to pass before merging
status_check_contextsstringNoRequired status check contexts (comma-separated)
required_approvalsnumberNoMinimum number of approving reviews required
enable_approvals_whitelistbooleanNoRestrict qualifying approvals to the approvals whitelist
approvals_whitelist_usernamestringNoUsernames whose approvals count (comma-separated)
approvals_whitelist_teamsstringNoTeams whose approvals count (comma-separated)
block_on_rejected_reviewsbooleanNoBlock merging when there are pending rejected reviews
block_on_official_review_requestsbooleanNoBlock merging when there are pending official review requests
block_on_outdated_branchbooleanNoBlock merging when the head branch is outdated
dismiss_stale_approvalsbooleanNoDismiss approvals when new commits are pushed
require_signed_commitsbooleanNoRequire commits to be signed
protected_file_patternsstringNoGlob patterns of files that cannot be changed directly (semicolon-separated)
unprotected_file_patternsstringNoGlob patterns of files exempt from protection (semicolon-separated)

update_branch_protection

Update a branch protection rule

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
namestringYesBranch protection rule name (glob pattern)
enable_pushbooleanNoAllow whitelisted users/teams to push directly
enable_push_whitelistbooleanNoRestrict direct pushes to the push whitelist
push_whitelist_usernamesstringNoUsernames allowed to push directly (comma-separated)
push_whitelist_teamsstringNoTeams allowed to push directly (comma-separated)
push_whitelist_deploy_keysbooleanNoAllow deploy keys to push directly
enable_merge_whitelistbooleanNoRestrict merging to the merge whitelist
merge_whitelist_usernamesstringNoUsernames allowed to merge (comma-separated)
merge_whitelist_teamsstringNoTeams allowed to merge (comma-separated)
enable_status_checkbooleanNoRequire status checks to pass before merging
status_check_contextsstringNoRequired status check contexts (comma-separated)
required_approvalsnumberNoMinimum number of approving reviews required
enable_approvals_whitelistbooleanNoRestrict qualifying approvals to the approvals whitelist
approvals_whitelist_usernamestringNoUsernames whose approvals count (comma-separated)
approvals_whitelist_teamsstringNoTeams whose approvals count (comma-separated)
block_on_rejected_reviewsbooleanNoBlock merging when there are pending rejected reviews
block_on_official_review_requestsbooleanNoBlock merging when there are pending official review requests
block_on_outdated_branchbooleanNoBlock merging when the head branch is outdated
dismiss_stale_approvalsbooleanNoDismiss approvals when new commits are pushed
require_signed_commitsbooleanNoRequire commits to be signed
protected_file_patternsstringNoGlob patterns of files that cannot be changed directly (semicolon-separated)
unprotected_file_patternsstringNoGlob patterns of files exempt from protection (semicolon-separated)

delete_branch_protectionDestructive

Delete a branch protection rule

NameTypeRequiredDefaultDescription
ownerstringYesRepository owner
repostringYesRepository name
namestringYesBranch protection rule name (glob pattern)