[ { "name": "add_comment_to_pending_review", "description": "Add review comment to the requester's latest pending pull request review. A pending review needs to already exist to call this (check with the user if not sure).", "parameters": { "type": "object", "properties": { "body": { "type": "string", "description": "The text of the review comment" }, "line": { "type": "number", "description": "The line of the blob in the pull request diff that the comment applies to. For multi-line comments, the last line of the range" }, "owner": { "type": "string", "description": "Repository owner" }, "path": { "type": "string", "description": "The relative path to the file that necessitates a comment" }, "pullNumber": { "type": "number", "description": "Pull request number" }, "repo": { "type": "string", "description": "Repository name" }, "side": { "type": "string", "enum": ["LEFT", "RIGHT"], "description": "The side of the diff to comment on. LEFT indicates the previous state, RIGHT indicates the new state" }, "startLine": { "type": "number", "description": "For multi-line comments, the first line of the range that the comment applies to" }, "startSide": { "type": "string", "enum": ["LEFT", "RIGHT"], "description": "For multi-line comments, the starting side of the diff that the comment applies to" }, "subjectType": { "type": "string", "enum": ["FILE", "LINE"], "description": "The level at which the comment is targeted" } }, "required": ["owner", "repo", "pullNumber", "path", "body", "subjectType"] } }, { "name": "add_issue_comment", "description": "Add a comment to a specific issue in a GitHub repository. Use this tool to add comments to pull requests as well (in this case pass pull request number as issue_number), but only if user is not asking specifically to add review comments.", "parameters": { "type": "object", "properties": { "body": { "type": "string", "description": "Comment content" }, "issue_number": { "type": "number", "description": "Issue number to comment on" }, "owner": { "type": "string", "description": "Repository owner" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo", "issue_number", "body"] } }, { "name": "add_reply_to_pull_request_comment", "description": "Add a reply to an existing pull request comment. This creates a new comment that is linked as a reply to the specified comment.", "parameters": { "type": "object", "properties": { "body": { "type": "string", "description": "The text of the reply" }, "commentId": { "type": "number", "description": "The ID of the comment to reply to" }, "owner": { "type": "string", "description": "Repository owner" }, "pullNumber": { "type": "number", "description": "Pull request number" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo", "pullNumber", "commentId", "body"] } }, { "name": "assign_copilot_to_issue", "description": "Assign Copilot to a specific issue in a GitHub repository.\n\nThis tool can help with the following outcomes:\n- a Pull Request created with source code changes to resolve the issue\n\n\nMore information can be found at:\n- https://docs.github.com/en/copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-tasks/about-assigning-tasks-to-copilot\n", "parameters": { "type": "object", "properties": { "base_ref": { "type": "string", "description": "Git reference (e.g., branch) that the agent will start its work from. If not specified, defaults to the repository's default branch" }, "custom_instructions": { "type": "string", "description": "Optional custom instructions to guide the agent beyond the issue body." }, "issue_number": { "type": "number", "description": "Issue number" }, "owner": { "type": "string", "description": "Repository owner" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo", "issue_number"] } }, { "name": "create_branch", "description": "Create a new branch in a GitHub repository", "parameters": { "type": "object", "properties": { "branch": { "type": "string", "description": "Name for new branch" }, "from_branch": { "type": "string", "description": "Source branch (defaults to repo default)" }, "owner": { "type": "string", "description": "Repository owner" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo", "branch"] } }, { "name": "create_or_update_file", "description": "Create or update a single file in a GitHub repository.\nIf updating, you should provide the SHA of the file you want to update. Use this tool to create or update a file in a GitHub repository remotely; do not use it for local file operations.\n\nIn order to obtain the SHA of original file version before updating, use the following git command:\ngit rev-parse :\n\nSHA MUST be provided for existing file updates.\n", "parameters": { "type": "object", "properties": { "branch": { "type": "string", "description": "Branch to create/update the file in" }, "content": { "type": "string", "description": "Content of the file" }, "message": { "type": "string", "description": "Commit message" }, "owner": { "type": "string", "description": "Repository owner (username or organization)" }, "path": { "type": "string", "description": "Path where to create/update the file" }, "repo": { "type": "string", "description": "Repository name" }, "sha": { "type": "string", "description": "The blob SHA of the file being replaced. Required if the file already exists." } }, "required": ["owner", "repo", "path", "content", "message", "branch"] } }, { "name": "create_pull_request", "description": "Create a new pull request in a GitHub repository.", "parameters": { "type": "object", "properties": { "base": { "type": "string", "description": "Branch to merge into" }, "body": { "type": "string", "description": "PR description" }, "draft": { "type": "boolean", "description": "Create as draft PR" }, "head": { "type": "string", "description": "Branch containing changes" }, "maintainer_can_modify": { "type": "boolean", "description": "Allow maintainer edits" }, "owner": { "type": "string", "description": "Repository owner" }, "repo": { "type": "string", "description": "Repository name" }, "title": { "type": "string", "description": "PR title" } }, "required": ["owner", "repo", "title", "head", "base"] } }, { "name": "create_repository", "description": "Create a new GitHub repository in your account or specified organization", "parameters": { "type": "object", "properties": { "autoInit": { "type": "boolean", "description": "Initialize with README" }, "description": { "type": "string", "description": "Repository description" }, "name": { "type": "string", "description": "Repository name" }, "organization": { "type": "string", "description": "Organization to create the repository in (omit to create in your personal account)" }, "private": { "type": "boolean", "description": "Whether repo should be private" } }, "required": ["name"] } }, { "name": "delete_file", "description": "Delete a file from a GitHub repository", "parameters": { "type": "object", "properties": { "branch": { "type": "string", "description": "Branch to delete the file from" }, "message": { "type": "string", "description": "Commit message" }, "owner": { "type": "string", "description": "Repository owner (username or organization)" }, "path": { "type": "string", "description": "Path to the file to delete" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo", "path", "message", "branch"] } }, { "name": "fork_repository", "description": "Fork a GitHub repository to your account or specified organization", "parameters": { "type": "object", "properties": { "organization": { "type": "string", "description": "Organization to fork to" }, "owner": { "type": "string", "description": "Repository owner" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo"] } }, { "name": "get_commit", "description": "Get details for a commit from a GitHub repository", "parameters": { "type": "object", "properties": { "include_diff": { "type": "boolean", "default": true, "description": "Whether to include file diffs and stats in the response. Default is true." }, "owner": { "type": "string", "description": "Repository owner" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "repo": { "type": "string", "description": "Repository name" }, "sha": { "type": "string", "description": "Commit SHA, branch name, or tag name" } }, "required": ["owner", "repo", "sha"] } }, { "name": "get_file_contents", "description": "Get the contents of a file or directory from a GitHub repository", "parameters": { "type": "object", "properties": { "owner": { "type": "string", "description": "Repository owner (username or organization)" }, "path": { "type": "string", "default": "/", "description": "Path to file/directory" }, "ref": { "type": "string", "description": "Accepts optional git refs such as `refs/tags/{tag}`, `refs/heads/{branch}` or `refs/pull/{pr_number}/head`" }, "repo": { "type": "string", "description": "Repository name" }, "sha": { "type": "string", "description": "Accepts optional commit SHA. If specified, it will be used instead of ref" } }, "required": ["owner", "repo"] } }, { "name": "get_label", "description": "Get a specific label from a repository.", "parameters": { "type": "object", "properties": { "name": { "type": "string", "description": "Label name." }, "owner": { "type": "string", "description": "Repository owner (username or organization name)" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo", "name"] } }, { "name": "get_latest_release", "description": "Get the latest release in a GitHub repository", "parameters": { "type": "object", "properties": { "owner": { "type": "string", "description": "Repository owner" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo"] } }, { "name": "get_me", "description": "Get details of the authenticated GitHub user. Use this when a request is about the user's own profile for GitHub. Or when information is missing to build other tool calls.", "parameters": { "type": "object", "properties": {} } }, { "name": "get_release_by_tag", "description": "Get a specific release by its tag name in a GitHub repository", "parameters": { "type": "object", "properties": { "owner": { "type": "string", "description": "Repository owner" }, "repo": { "type": "string", "description": "Repository name" }, "tag": { "type": "string", "description": "Tag name (e.g., 'v1.0.0')" } }, "required": ["owner", "repo", "tag"] } }, { "name": "get_tag", "description": "Get details about a specific git tag in a GitHub repository", "parameters": { "type": "object", "properties": { "owner": { "type": "string", "description": "Repository owner" }, "repo": { "type": "string", "description": "Repository name" }, "tag": { "type": "string", "description": "Tag name" } }, "required": ["owner", "repo", "tag"] } }, { "name": "get_team_members", "description": "Get member usernames of a specific team in an organization. Limited to organizations accessible with current credentials", "parameters": { "type": "object", "properties": { "org": { "type": "string", "description": "Organization login (owner) that contains the team." }, "team_slug": { "type": "string", "description": "Team slug" } }, "required": ["org", "team_slug"] } }, { "name": "get_teams", "description": "Get details of the teams the user is a member of. Limited to organizations accessible with current credentials", "parameters": { "type": "object", "properties": { "user": { "type": "string", "description": "Username to get teams for. If not provided, uses the authenticated user." } } } }, { "name": "issue_read", "description": "Get information about a specific issue in a GitHub repository.", "parameters": { "type": "object", "properties": { "issue_number": { "type": "number", "description": "The number of the issue" }, "method": { "type": "string", "enum": ["get", "get_comments", "get_sub_issues", "get_labels"], "description": "1. get - Get details of a specific issue. 2. get_comments - Get issue comments. 3. get_sub_issues - Get sub-issues of the issue. 4. get_labels - Get labels assigned to the issue." }, "owner": { "type": "string", "description": "The owner of the repository" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "repo": { "type": "string", "description": "The name of the repository" } }, "required": ["method", "owner", "repo", "issue_number"] } }, { "name": "issue_write", "description": "Create a new or update an existing issue in a GitHub repository.", "parameters": { "type": "object", "properties": { "assignees": { "type": "array", "items": { "type": "string" }, "description": "Usernames to assign to this issue" }, "body": { "type": "string", "description": "Issue body content" }, "duplicate_of": { "type": "number", "description": "Issue number that this issue is a duplicate of. Only used when state_reason is 'duplicate'." }, "issue_number": { "type": "number", "description": "Issue number to update" }, "labels": { "type": "array", "items": { "type": "string" }, "description": "Labels to apply to this issue" }, "method": { "type": "string", "enum": ["create", "update"], "description": "'create' creates a new issue. 'update' updates an existing issue." }, "milestone": { "type": "number", "description": "Milestone number" }, "owner": { "type": "string", "description": "Repository owner" }, "repo": { "type": "string", "description": "Repository name" }, "state": { "type": "string", "enum": ["open", "closed"], "description": "New state" }, "state_reason": { "type": "string", "enum": ["completed", "not_planned", "duplicate"], "description": "Reason for the state change. Ignored unless state is changed." }, "title": { "type": "string", "description": "Issue title" }, "type": { "type": "string", "description": "Type of this issue. Only use if the repository has issue types configured." } }, "required": ["method", "owner", "repo"] } }, { "name": "list_branches", "description": "List branches in a GitHub repository", "parameters": { "type": "object", "properties": { "owner": { "type": "string", "description": "Repository owner" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo"] } }, { "name": "list_commits", "description": "Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100).", "parameters": { "type": "object", "properties": { "author": { "type": "string", "description": "Author username or email address to filter commits by" }, "owner": { "type": "string", "description": "Repository owner" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "path": { "type": "string", "description": "Only commits containing this file path will be returned" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "repo": { "type": "string", "description": "Repository name" }, "sha": { "type": "string", "description": "Commit SHA, branch or tag name to list commits of. Defaults to the default branch." }, "since": { "type": "string", "description": "Only commits after this date (ISO 8601)" }, "until": { "type": "string", "description": "Only commits before this date (ISO 8601)" } }, "required": ["owner", "repo"] } }, { "name": "list_issue_types", "description": "List supported issue types for repository owner (organization).", "parameters": { "type": "object", "properties": { "owner": { "type": "string", "description": "The organization owner of the repository" } }, "required": ["owner"] } }, { "name": "list_issues", "description": "List issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter.", "parameters": { "type": "object", "properties": { "after": { "type": "string", "description": "Cursor for pagination." }, "direction": { "type": "string", "enum": ["ASC", "DESC"], "description": "Order direction. Requires 'orderBy' too." }, "labels": { "type": "array", "items": { "type": "string" }, "description": "Filter by labels" }, "orderBy": { "type": "string", "enum": ["CREATED_AT", "UPDATED_AT", "COMMENTS"], "description": "Order issues by field. Requires 'direction' too." }, "owner": { "type": "string", "description": "Repository owner" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "repo": { "type": "string", "description": "Repository name" }, "since": { "type": "string", "description": "Filter by date (ISO 8601 timestamp)" }, "state": { "type": "string", "enum": ["OPEN", "CLOSED"], "description": "Filter by state" } }, "required": ["owner", "repo"] } }, { "name": "list_pull_requests", "description": "List pull requests in a GitHub repository. If the user specifies an author, then DO NOT use this tool and use the search_pull_requests tool instead.", "parameters": { "type": "object", "properties": { "base": { "type": "string", "description": "Filter by base branch" }, "direction": { "type": "string", "enum": ["asc", "desc"], "description": "Sort direction" }, "head": { "type": "string", "description": "Filter by head user/org and branch" }, "owner": { "type": "string", "description": "Repository owner" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "repo": { "type": "string", "description": "Repository name" }, "sort": { "type": "string", "enum": ["created", "updated", "popularity", "long-running"], "description": "Sort by" }, "state": { "type": "string", "enum": ["open", "closed", "all"], "description": "Filter by state" } }, "required": ["owner", "repo"] } }, { "name": "list_releases", "description": "List releases in a GitHub repository", "parameters": { "type": "object", "properties": { "owner": { "type": "string", "description": "Repository owner" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo"] } }, { "name": "list_repository_collaborators", "description": "List collaborators of a GitHub repository. Results are paginated; the response includes `nextPage`, `prevPage`, `firstPage`, and `lastPage` fields. To get the next page, use the `nextPage` value as the `page` parameter.", "parameters": { "type": "object", "properties": { "affiliation": { "type": "string", "enum": ["outside", "direct", "all"], "description": "Filter by affiliation. Default: 'all'" }, "owner": { "type": "string", "description": "Repository owner" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (default 1, min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (default 30, min 1, max 100)" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo"] } }, { "name": "list_tags", "description": "List git tags in a GitHub repository", "parameters": { "type": "object", "properties": { "owner": { "type": "string", "description": "Repository owner" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo"] } }, { "name": "merge_pull_request", "description": "Merge a pull request in a GitHub repository.", "parameters": { "type": "object", "properties": { "commit_message": { "type": "string", "description": "Extra detail for merge commit" }, "commit_title": { "type": "string", "description": "Title for merge commit" }, "merge_method": { "type": "string", "enum": ["merge", "squash", "rebase"], "description": "Merge method" }, "owner": { "type": "string", "description": "Repository owner" }, "pullNumber": { "type": "number", "description": "Pull request number" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo", "pullNumber"] } }, { "name": "pull_request_read", "description": "Get information on a specific pull request in GitHub repository.", "parameters": { "type": "object", "properties": { "after": { "type": "string", "description": "Cursor for pagination, used only by get_review_comments." }, "method": { "type": "string", "enum": ["get", "get_diff", "get_status", "get_files", "get_review_comments", "get_reviews", "get_comments", "get_check_runs"], "description": "1. get 2. get_diff 3. get_status 4. get_files 5. get_review_comments 6. get_reviews 7. get_comments 8. get_check_runs" }, "owner": { "type": "string", "description": "Repository owner" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "pullNumber": { "type": "number", "description": "Pull request number" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["method", "owner", "repo", "pullNumber"] } }, { "name": "pull_request_review_write", "description": "Create and/or submit, delete review of a pull request.\n\n- create: Create a new review of a pull request. If \"event\" is provided, the review is submitted; if omitted, a pending review is created.\n- submit_pending: Submit an existing pending review.\n- delete_pending: Delete an existing pending review.\n- resolve_thread / unresolve_thread: only need \"threadId\".", "parameters": { "type": "object", "properties": { "body": { "type": "string", "description": "Review comment text" }, "commitID": { "type": "string", "description": "SHA of commit to review" }, "event": { "type": "string", "enum": ["APPROVE", "REQUEST_CHANGES", "COMMENT"], "description": "Review action to perform." }, "method": { "type": "string", "enum": ["create", "submit_pending", "delete_pending", "resolve_thread", "unresolve_thread"] }, "owner": { "type": "string", "description": "Repository owner" }, "pullNumber": { "type": "number", "description": "Pull request number" }, "repo": { "type": "string", "description": "Repository name" }, "threadId": { "type": "string", "description": "Node ID of the review thread (e.g., PRRT_kwDOxxx). Required for resolve/unresolve_thread." } }, "required": ["method", "owner", "repo", "pullNumber"] } }, { "name": "push_files", "description": "Push multiple files to a GitHub repository in a single commit", "parameters": { "type": "object", "properties": { "branch": { "type": "string", "description": "Branch to push to" }, "files": { "type": "array", "description": "Array of file objects to push, each object with path (string) and content (string)", "items": { "type": "object", "additionalProperties": false, "properties": { "content": { "type": "string", "description": "file content" }, "path": { "type": "string", "description": "path to the file" } }, "required": ["path", "content"] } }, "message": { "type": "string", "description": "Commit message" }, "owner": { "type": "string", "description": "Repository owner" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo", "branch", "files", "message"] } }, { "name": "request_copilot_review", "description": "Request a GitHub Copilot code review for a pull request. Use this for automated feedback on pull requests, usually before requesting a human reviewer.", "parameters": { "type": "object", "properties": { "owner": { "type": "string", "description": "Repository owner" }, "pullNumber": { "type": "number", "description": "Pull request number" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo", "pullNumber"] } }, { "name": "search_code", "description": "Fast and precise code search across ALL GitHub repositories using GitHub's native search engine. Best for finding exact symbols, functions, classes, or specific code patterns.", "parameters": { "type": "object", "properties": { "order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order for results" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "query": { "type": "string", "description": "Search query (GitHub code search REST). Supports OR/NOT/quoted phrases and qualifiers repo:/org:/user:/language:/path:/filename:/extension:/in:file/in:path/size:/is:archived/is:fork. Max 256 chars." }, "sort": { "type": "string", "description": "Sort field ('indexed' only)" } }, "required": ["query"] } }, { "name": "search_commits", "description": "Search for commits across GitHub repositories using GitHub's commit search syntax. Searches the default branch only.", "parameters": { "type": "object", "properties": { "order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "query": { "type": "string", "description": "Commit search query. Scope with repo:/org:/user:. Other qualifiers: author:, committer:, author-date:, merge:, hash:, tree:, parent:, is:public." }, "sort": { "type": "string", "enum": ["author-date", "committer-date"], "description": "Sort by author or committer date (defaults to best match)" } }, "required": ["query"] } }, { "name": "search_issues", "description": "Search for issues in GitHub repositories using issues search syntax already scoped to is:issue", "parameters": { "type": "object", "properties": { "order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order" }, "owner": { "type": "string", "description": "Optional repository owner. If provided with repo, only issues for this repository are listed." }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "query": { "type": "string", "description": "Search query using GitHub issues search syntax" }, "repo": { "type": "string", "description": "Optional repository name. If provided with owner, only issues for this repository are listed." }, "sort": { "type": "string", "enum": ["comments", "reactions", "reactions-+1", "reactions--1", "reactions-smile", "reactions-thinking_face", "reactions-heart", "reactions-tada", "interactions", "created", "updated"], "description": "Sort field by number of matches of categories, defaults to best match" } }, "required": ["query"] } }, { "name": "search_pull_requests", "description": "Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr", "parameters": { "type": "object", "properties": { "order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order" }, "owner": { "type": "string", "description": "Optional repository owner. If provided with repo, only pull requests for this repository are listed." }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "query": { "type": "string", "description": "Search query using GitHub pull request search syntax" }, "repo": { "type": "string", "description": "Optional repository name. If provided with owner, only pull requests for this repository are listed." }, "sort": { "type": "string", "enum": ["comments", "reactions", "reactions-+1", "reactions--1", "reactions-smile", "reactions-thinking_face", "reactions-heart", "reactions-tada", "interactions", "created", "updated"], "description": "Sort field by number of matches of categories, defaults to best match" } }, "required": ["query"] } }, { "name": "search_repositories", "description": "Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub.", "parameters": { "type": "object", "properties": { "minimal_output": { "type": "boolean", "default": true, "description": "Return minimal repository information (default: true). When false, returns full GitHub API repository objects." }, "order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "query": { "type": "string", "description": "Repository search query. Examples: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'." }, "sort": { "type": "string", "enum": ["stars", "forks", "help-wanted-issues", "updated"], "description": "Sort repositories by field, defaults to best match" } }, "required": ["query"] } }, { "name": "search_users", "description": "Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members.", "parameters": { "type": "object", "properties": { "order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order" }, "page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" }, "perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" }, "query": { "type": "string", "description": "User search query. Examples: 'john smith', 'location:seattle', 'followers:>100'. Search is automatically scoped to type:user." }, "sort": { "type": "string", "enum": ["followers", "repositories", "joined"], "description": "Sort users by number of followers or repositories, or when the person joined GitHub." } }, "required": ["query"] } }, { "name": "update_pull_request", "description": "Update an existing pull request in a GitHub repository.", "parameters": { "type": "object", "properties": { "base": { "type": "string", "description": "New base branch name" }, "body": { "type": "string", "description": "New description" }, "draft": { "type": "boolean", "description": "Mark pull request as draft (true) or ready for review (false)" }, "maintainer_can_modify": { "type": "boolean", "description": "Allow maintainer edits" }, "owner": { "type": "string", "description": "Repository owner" }, "pullNumber": { "type": "number", "description": "Pull request number to update" }, "repo": { "type": "string", "description": "Repository name" }, "reviewers": { "type": "array", "items": { "type": "string" }, "description": "GitHub usernames to request reviews from" }, "state": { "type": "string", "enum": ["open", "closed"], "description": "New state" }, "title": { "type": "string", "description": "New title" } }, "required": ["owner", "repo", "pullNumber"] } }, { "name": "update_pull_request_branch", "description": "Update the branch of a pull request with the latest changes from the base branch.", "parameters": { "type": "object", "properties": { "expectedHeadSha": { "type": "string", "description": "The expected SHA of the pull request's HEAD ref" }, "owner": { "type": "string", "description": "Repository owner" }, "pullNumber": { "type": "number", "description": "Pull request number" }, "repo": { "type": "string", "description": "Repository name" } }, "required": ["owner", "repo", "pullNumber"] } }, { "name": "sub_issue_write", "description": "Add a sub-issue to a parent issue in a GitHub repository.", "parameters": { "type": "object", "properties": { "after_id": { "type": "number", "description": "The ID of the sub-issue to be prioritized after (either after_id OR before_id should be specified)" }, "before_id": { "type": "number", "description": "The ID of the sub-issue to be prioritized before (either after_id OR before_id should be specified)" }, "issue_number": { "type": "number", "description": "The number of the parent issue" }, "method": { "type": "string", "description": "'add' - add a sub-issue to a parent issue. 'remove' - remove a sub-issue from a parent issue. 'reprioritize' - change the order of sub-issues within a parent issue, using 'after_id' or 'before_id'." }, "owner": { "type": "string", "description": "Repository owner" }, "replace_parent": { "type": "boolean", "description": "When true, replaces the sub-issue's current parent issue. Use with 'add' method only." }, "repo": { "type": "string", "description": "Repository name" }, "sub_issue_id": { "type": "number", "description": "The ID of the sub-issue to add. ID is not the same as issue number" } }, "required": ["method", "owner", "repo", "issue_number", "sub_issue_id"] } } ]