mirror of
https://github.com/alibaba/higress.git
synced 2026-05-30 23:57:28 +08:00
add mcp descriptions (#2080)
This commit is contained in:
39
plugins/wasm-go/mcp-servers/mcp-github/README.md
Normal file
39
plugins/wasm-go/mcp-servers/mcp-github/README.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# GitHub MCP Server
|
||||
|
||||
An MCP server implementation of the GitHub API, supporting file operations, repository management, search, and more.
|
||||
|
||||
Source code: [https://github.com/modelcontextprotocol/servers/tree/main/src/github](https://github.com/modelcontextprotocol/servers/tree/main/src/github)
|
||||
|
||||
## Features
|
||||
|
||||
- **Automatic branch creation**: Automatically creates branches if they don't exist when creating/updating files or pushing changes
|
||||
- **Comprehensive error handling**: Provides clear error messages for common issues
|
||||
- **Git history preservation**: Operations preserve complete Git history, no force pushing
|
||||
- **Batch operations**: Supports both single file and batch file operations
|
||||
- **Advanced search**: Supports code, issues/PRs, and user search
|
||||
|
||||
## Usage Guide
|
||||
|
||||
### Get AccessToken
|
||||
[Create GitHub personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens):
|
||||
1. Visit [Personal access tokens](https://github.com/settings/tokens) (in GitHub Settings > Developer settings)
|
||||
2. Select repositories the token can access (public, all, or selected)
|
||||
3. Create token with `repo` permissions ("Full control of private repositories")
|
||||
- Or, if only using public repositories, select only `public_repo` permissions
|
||||
4. Copy the generated token
|
||||
|
||||
### Generate SSE URL
|
||||
|
||||
On the MCP Server interface, log in and enter the AccessToken to generate the URL.
|
||||
|
||||
### Configure MCP Client
|
||||
|
||||
On the user's MCP Client interface, add the generated SSE URL to the MCP Server list.
|
||||
|
||||
```json
|
||||
"mcpServers": {
|
||||
"github": {
|
||||
"url": "http://mcp.higress.ai/mcp-github/{generate_key}",
|
||||
}
|
||||
}
|
||||
```
|
||||
40
plugins/wasm-go/mcp-servers/mcp-github/README_ZH.md
Normal file
40
plugins/wasm-go/mcp-servers/mcp-github/README_ZH.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# GitHub MCP Server
|
||||
|
||||
GitHub API 的 MCP 服务器实现,支持文件操作、仓库管理、搜索等功能。
|
||||
|
||||
源码地址:[https://github.com/modelcontextprotocol/servers/tree/main/src/github](https://github.com/modelcontextprotocol/servers/tree/main/src/github)
|
||||
|
||||
## 功能
|
||||
|
||||
- **自动分支创建**: 在创建/更新文件或推送更改时,如果分支不存在会自动创建
|
||||
- **全面的错误处理**: 提供常见问题的清晰错误信息
|
||||
- **Git 历史保留**: 操作会保留完整的 Git 历史记录,不会强制推送
|
||||
- **批量操作**: 支持单文件和批量文件操作
|
||||
- **高级搜索**: 支持代码、issues/PRs 和用户的搜索
|
||||
|
||||
## 使用教程
|
||||
|
||||
### 获取 AccessToken
|
||||
[创建 GitHub 个人访问令牌](https://docs.github.com/zh/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens):
|
||||
1. 访问 [个人访问令牌](https://github.com/settings/tokens)(在 GitHub 设置 > 开发者设置中)
|
||||
2. 选择该令牌可以访问的仓库(公开、所有或选择)
|
||||
3. 创建具有 `repo` 权限的令牌("对私有仓库的完全控制")
|
||||
- 或者,如果仅使用公开仓库,选择仅 `public_repo` 权限
|
||||
4. 复制生成的令牌
|
||||
|
||||
### 生成 SSE URL
|
||||
|
||||
在 MCP Server 界面,登录后输入 AccessToken,生成URL。
|
||||
|
||||
### 配置 MCP Client
|
||||
|
||||
在用户的 MCP Client 界面,将生成的 SSE URL添加到 MCP Server列表中。
|
||||
|
||||
```json
|
||||
"mcpServers": {
|
||||
"github": {
|
||||
"url": "http://mcp.higress.ai/mcp-github/{generate_key}",
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
998
plugins/wasm-go/mcp-servers/mcp-github/mcp-server.yaml
Normal file
998
plugins/wasm-go/mcp-servers/mcp-github/mcp-server.yaml
Normal file
@@ -0,0 +1,998 @@
|
||||
server:
|
||||
name: github-mcp-server
|
||||
config:
|
||||
accessToken: ""
|
||||
|
||||
tools:
|
||||
- name: create_or_update_file
|
||||
description: 在GitHub仓库创建或更新单个文件
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: path
|
||||
type: string
|
||||
required: true
|
||||
description: "Path where to create/update the file"
|
||||
- name: content
|
||||
type: string
|
||||
required: true
|
||||
description: "Content of the file"
|
||||
- name: message
|
||||
type: string
|
||||
required: true
|
||||
description: "Commit message"
|
||||
- name: branch
|
||||
type: string
|
||||
required: true
|
||||
description: "Branch to create/update the file in"
|
||||
- name: sha
|
||||
type: string
|
||||
required: false
|
||||
description: "SHA of the file being replaced (required when updating existing files)"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/contents/{{.args.path}}"
|
||||
method: PUT
|
||||
body: |
|
||||
{
|
||||
"message": "{{.args.message}}",
|
||||
"content": "{{.args.content | b64enc}}",
|
||||
"branch": "{{.args.branch}}",
|
||||
"sha": "{{.args.sha}}"
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: search_repositories
|
||||
description: 搜索GitHub仓库
|
||||
args:
|
||||
- name: query
|
||||
type: string
|
||||
required: true
|
||||
description: "Search query (see GitHub search syntax)"
|
||||
- name: page
|
||||
type: number
|
||||
required: false
|
||||
description: "Page number for pagination (default: 1)"
|
||||
- name: perPage
|
||||
type: number
|
||||
required: false
|
||||
description: "Number of results per page (default: 30, max: 100)"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/search/repositories?q={{.args.query}}&page={{.args.page}}&per_page={{.args.perPage}}"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: create_repository
|
||||
description: 在您的账户中创建新的GitHub仓库
|
||||
args:
|
||||
- name: name
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: description
|
||||
type: string
|
||||
required: false
|
||||
description: "Repository description"
|
||||
- name: private
|
||||
type: boolean
|
||||
required: false
|
||||
description: "Whether the repository should be private"
|
||||
- name: autoInit
|
||||
type: boolean
|
||||
required: false
|
||||
description: "Initialize with README.md"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/user/repos"
|
||||
method: POST
|
||||
body: |
|
||||
{
|
||||
"name": "{{.args.name}}",
|
||||
"description": "{{.args.description}}",
|
||||
"private": {{.args.private}},
|
||||
"auto_init": {{.args.autoInit}}
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: get_file_contents
|
||||
description: 从GitHub仓库获取文件或目录内容
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: path
|
||||
type: string
|
||||
required: true
|
||||
description: "Path to the file or directory"
|
||||
- name: branch
|
||||
type: string
|
||||
required: false
|
||||
description: "Branch to get contents from"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/contents/{{.args.path}}?ref={{.args.branch}}"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: push_files
|
||||
description: 在单个提交中推送多个文件到GitHub仓库
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: branch
|
||||
type: string
|
||||
required: true
|
||||
description: "Branch to push to (e.g., 'main' or 'master')"
|
||||
- name: files
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
path:
|
||||
type: string
|
||||
content:
|
||||
type: string
|
||||
required: true
|
||||
description: "Array of files to push"
|
||||
- name: message
|
||||
type: string
|
||||
required: true
|
||||
description: "Commit message"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/git/commits"
|
||||
method: POST
|
||||
body: |
|
||||
{
|
||||
"message": "{{.args.message}}",
|
||||
"tree": "{{.args.files | toJson}}",
|
||||
"parents": ["{{.args.branch}}"]
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: create_issue
|
||||
description: 在GitHub仓库创建新Issue
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: title
|
||||
type: string
|
||||
required: true
|
||||
description: "Issue title"
|
||||
- name: body
|
||||
type: string
|
||||
required: false
|
||||
description: "Issue description"
|
||||
- name: assignees
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
required: false
|
||||
description: "Usernames to assign"
|
||||
- name: labels
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
required: false
|
||||
description: "Labels to add"
|
||||
- name: milestone
|
||||
type: number
|
||||
required: false
|
||||
description: "Milestone number"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/issues"
|
||||
method: POST
|
||||
body: |
|
||||
{
|
||||
"title": "{{.args.title}}",
|
||||
"body": "{{.args.body}}",
|
||||
"assignees": {{.args.assignees | toJson}},
|
||||
"labels": {{.args.labels | toJson}},
|
||||
"milestone": {{.args.milestone}}
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: create_pull_request
|
||||
description: 在GitHub仓库创建新的Pull Request
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: title
|
||||
type: string
|
||||
required: true
|
||||
description: "Pull request title"
|
||||
- name: body
|
||||
type: string
|
||||
required: false
|
||||
description: "Pull request body/description"
|
||||
- name: head
|
||||
type: string
|
||||
required: true
|
||||
description: "The name of the branch where your changes are implemented"
|
||||
- name: base
|
||||
type: string
|
||||
required: true
|
||||
description: "The name of the branch you want the changes pulled into"
|
||||
- name: draft
|
||||
type: boolean
|
||||
required: false
|
||||
description: "Whether to create the pull request as a draft"
|
||||
- name: maintainer_can_modify
|
||||
type: boolean
|
||||
required: false
|
||||
description: "Whether maintainers can modify the pull request"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/pulls"
|
||||
method: POST
|
||||
body: |
|
||||
{
|
||||
"title": "{{.args.title}}",
|
||||
"body": "{{.args.body}}",
|
||||
"head": "{{.args.head}}",
|
||||
"base": "{{.args.base}}",
|
||||
"draft": {{.args.draft}},
|
||||
"maintainer_can_modify": {{.args.maintainer_can_modify}}
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: fork_repository
|
||||
description: 将GitHub仓库fork到您的账户或指定组织
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: organization
|
||||
type: string
|
||||
required: false
|
||||
description: "Optional: organization to fork to (defaults to your personal account)"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/forks"
|
||||
method: POST
|
||||
body: |
|
||||
{
|
||||
"organization": "{{.args.organization}}"
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: create_branch
|
||||
description: 在GitHub仓库创建新分支
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: branch
|
||||
type: string
|
||||
required: true
|
||||
description: "Name for the new branch"
|
||||
- name: from_branch
|
||||
type: string
|
||||
required: false
|
||||
description: "Optional: source branch to create from (defaults to the repository's default branch)"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/git/refs"
|
||||
method: POST
|
||||
body: |
|
||||
{
|
||||
"ref": "refs/heads/{{.args.branch}}",
|
||||
"sha": "{{.args.from_branch}}"
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: list_commits
|
||||
description: 获取GitHub仓库分支的提交列表
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: page
|
||||
type: number
|
||||
required: false
|
||||
description: "Page number for pagination"
|
||||
- name: perPage
|
||||
type: number
|
||||
required: false
|
||||
description: "Number of results per page"
|
||||
- name: sha
|
||||
type: string
|
||||
required: false
|
||||
description: "Branch name"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/commits?page={{.args.page}}&per_page={{.args.perPage}}&sha={{.args.sha}}"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: list_issues
|
||||
description: 列出并过滤GitHub仓库的Issues
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: state
|
||||
type: string
|
||||
required: false
|
||||
description: "Filter by state ('open', 'closed', 'all')"
|
||||
- name: labels
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
required: false
|
||||
description: "Filter by labels"
|
||||
- name: sort
|
||||
type: string
|
||||
required: false
|
||||
description: "Sort by ('created', 'updated', 'comments')"
|
||||
- name: direction
|
||||
type: string
|
||||
required: false
|
||||
description: "Sort direction ('asc', 'desc')"
|
||||
- name: since
|
||||
type: string
|
||||
required: false
|
||||
description: "Filter by date (ISO 8601 timestamp)"
|
||||
- name: page
|
||||
type: number
|
||||
required: false
|
||||
description: "Page number"
|
||||
- name: per_page
|
||||
type: number
|
||||
required: false
|
||||
description: "Results per page"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/issues?state={{.args.state}}&labels={{.args.labels | join ','}}&sort={{.args.sort}}&direction={{.args.direction}}&since={{.args.since}}&page={{.args.page}}&per_page={{.args.per_page}}"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: update_issue
|
||||
description: 更新GitHub仓库中的现有Issue
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: issue_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Issue number to update"
|
||||
- name: title
|
||||
type: string
|
||||
required: false
|
||||
description: "New title"
|
||||
- name: body
|
||||
type: string
|
||||
required: false
|
||||
description: "New description"
|
||||
- name: state
|
||||
type: string
|
||||
required: false
|
||||
description: "New state ('open' or 'closed')"
|
||||
- name: labels
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
required: false
|
||||
description: "New labels"
|
||||
- name: assignees
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
required: false
|
||||
description: "New assignees"
|
||||
- name: milestone
|
||||
type: number
|
||||
required: false
|
||||
description: "New milestone number"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/issues/{{.args.issue_number}}"
|
||||
method: PATCH
|
||||
body: |
|
||||
{
|
||||
"title": "{{.args.title}}",
|
||||
"body": "{{.args.body}}",
|
||||
"state": "{{.args.state}}",
|
||||
"labels": {{.args.labels | toJson}},
|
||||
"assignees": {{.args.assignees | toJson}},
|
||||
"milestone": {{.args.milestone}}
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: add_issue_comment
|
||||
description: 在GitHub Issue中添加评论
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: issue_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Issue number to comment on"
|
||||
- name: body
|
||||
type: string
|
||||
required: true
|
||||
description: "Comment text"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/issues/{{.args.issue_number}}/comments"
|
||||
method: POST
|
||||
body: |
|
||||
{
|
||||
"body": "{{.args.body}}"
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: search_code
|
||||
description: 在GitHub仓库中搜索代码
|
||||
args:
|
||||
- name: q
|
||||
type: string
|
||||
required: true
|
||||
description: "Search query using GitHub code search syntax"
|
||||
- name: sort
|
||||
type: string
|
||||
required: false
|
||||
description: "Sort field ('indexed' only)"
|
||||
- name: order
|
||||
type: string
|
||||
required: false
|
||||
description: "Sort order ('asc' or 'desc')"
|
||||
- name: per_page
|
||||
type: number
|
||||
required: false
|
||||
description: "Results per page (max 100)"
|
||||
- name: page
|
||||
type: number
|
||||
required: false
|
||||
description: "Page number"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/search/code?q={{.args.q}}&sort={{.args.sort}}&order={{.args.order}}&per_page={{.args.per_page}}&page={{.args.page}}"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: search_issues
|
||||
description: 在GitHub仓库中搜索Issues和Pull Requests
|
||||
args:
|
||||
- name: q
|
||||
type: string
|
||||
required: true
|
||||
description: "Search query using GitHub issues search syntax"
|
||||
- name: sort
|
||||
type: string
|
||||
required: false
|
||||
description: "Sort field (comments, reactions, created, etc.)"
|
||||
- name: order
|
||||
type: string
|
||||
required: false
|
||||
description: "Sort order ('asc' or 'desc')"
|
||||
- name: per_page
|
||||
type: number
|
||||
required: false
|
||||
description: "Results per page (max 100)"
|
||||
- name: page
|
||||
type: number
|
||||
required: false
|
||||
description: "Page number"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/search/issues?q={{.args.q}}&sort={{.args.sort}}&order={{.args.order}}&per_page={{.args.per_page}}&page={{.args.page}}"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: search_users
|
||||
description: 在GitHub中搜索用户
|
||||
args:
|
||||
- name: q
|
||||
type: string
|
||||
required: true
|
||||
description: "Search query using GitHub users search syntax"
|
||||
- name: sort
|
||||
type: string
|
||||
required: false
|
||||
description: "Sort field (followers, repositories, joined)"
|
||||
- name: order
|
||||
type: string
|
||||
required: false
|
||||
description: "Sort order ('asc' or 'desc')"
|
||||
- name: per_page
|
||||
type: number
|
||||
required: false
|
||||
description: "Results per page (max 100)"
|
||||
- name: page
|
||||
type: number
|
||||
required: false
|
||||
description: "Page number"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/search/users?q={{.args.q}}&sort={{.args.sort}}&order={{.args.order}}&per_page={{.args.per_page}}&page={{.args.page}}"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: get_issue
|
||||
description: 获取GitHub仓库中特定Issue的详细信息
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: issue_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Issue number to retrieve"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/issues/{{.args.issue_number}}"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: get_pull_request
|
||||
description: 获取GitHub仓库中特定Pull Request的详细信息
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: pull_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Pull request number"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/pulls/{{.args.pull_number}}"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: list_pull_requests
|
||||
description: 列出并过滤GitHub仓库的Pull Requests
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: state
|
||||
type: string
|
||||
required: false
|
||||
description: "State of the pull requests to return"
|
||||
- name: head
|
||||
type: string
|
||||
required: false
|
||||
description: "Filter by head user or head organization and branch name"
|
||||
- name: base
|
||||
type: string
|
||||
required: false
|
||||
description: "Filter by base branch name"
|
||||
- name: sort
|
||||
type: string
|
||||
required: false
|
||||
description: "What to sort results by"
|
||||
- name: direction
|
||||
type: string
|
||||
required: false
|
||||
description: "The direction of the sort"
|
||||
- name: per_page
|
||||
type: number
|
||||
required: false
|
||||
description: "Results per page (max 100)"
|
||||
- name: page
|
||||
type: number
|
||||
required: false
|
||||
description: "Page number of the results"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/pulls?state={{.args.state}}&head={{.args.head}}&base={{.args.base}}&sort={{.args.sort}}&direction={{.args.direction}}&per_page={{.args.per_page}}&page={{.args.page}}"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: create_pull_request_review
|
||||
description: 在GitHub Pull Request上创建review
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: pull_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Pull request number"
|
||||
- name: commit_id
|
||||
type: string
|
||||
required: false
|
||||
description: "The SHA of the commit that needs a review"
|
||||
- name: body
|
||||
type: string
|
||||
required: true
|
||||
description: "The body text of the review"
|
||||
- name: event
|
||||
type: string
|
||||
required: true
|
||||
description: "The review action to perform"
|
||||
- name: comments
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
path:
|
||||
type: string
|
||||
description: "The relative path to the file being commented on"
|
||||
position:
|
||||
type: number
|
||||
description: "The position in the diff where you want to add a review comment"
|
||||
body:
|
||||
type: string
|
||||
description: "Text of the review comment"
|
||||
required: false
|
||||
description: "Comments to post as part of the review (specify either position or line, not both)"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/pulls/{{.args.pull_number}}/reviews"
|
||||
method: POST
|
||||
body: |
|
||||
{
|
||||
"body": "{{.args.body}}",
|
||||
"event": "{{.args.event}}",
|
||||
"commit_id": "{{.args.commit_id}}",
|
||||
"comments": {{.args.comments | toJson}}
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: merge_pull_request
|
||||
description: 合并GitHub Pull Request
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: pull_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Pull request number"
|
||||
- name: commit_title
|
||||
type: string
|
||||
required: false
|
||||
description: "Title for the automatic commit message"
|
||||
- name: commit_message
|
||||
type: string
|
||||
required: false
|
||||
description: "Extra detail to append to automatic commit message"
|
||||
- name: merge_method
|
||||
type: string
|
||||
required: false
|
||||
description: "Merge method to use"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/pulls/{{.args.pull_number}}/merge"
|
||||
method: PUT
|
||||
body: |
|
||||
{
|
||||
"commit_title": "{{.args.commit_title}}",
|
||||
"commit_message": "{{.args.commit_message}}",
|
||||
"merge_method": "{{.args.merge_method}}"
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: get_pull_request_files
|
||||
description: 获取GitHub Pull Request中更改的文件列表
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: pull_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Pull request number"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/pulls/{{.args.pull_number}}/files"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: get_pull_request_status
|
||||
description: 获取GitHub Pull Request的状态检查结果
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: pull_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Pull request number"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/pulls/{{.args.pull_number}}/status"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: update_pull_request_branch
|
||||
description: 使用base分支的最新更改更新Pull Request分支
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: pull_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Pull request number"
|
||||
- name: expected_head_sha
|
||||
type: string
|
||||
required: false
|
||||
description: "The expected SHA of the pull request's HEAD ref"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/pulls/{{.args.pull_number}}/update-branch"
|
||||
method: PUT
|
||||
body: |
|
||||
{
|
||||
"expected_head_sha": "{{.args.expected_head_sha}}"
|
||||
}
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: get_pull_request_comments
|
||||
description: 获取GitHub Pull Request的review评论
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: pull_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Pull request number"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/pulls/{{.args.pull_number}}/comments"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
|
||||
- name: get_pull_request_reviews
|
||||
description: 获取GitHub Pull Request的reviews
|
||||
args:
|
||||
- name: owner
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository owner (username or organization)"
|
||||
- name: repo
|
||||
type: string
|
||||
required: true
|
||||
description: "Repository name"
|
||||
- name: pull_number
|
||||
type: number
|
||||
required: true
|
||||
description: "Pull request number"
|
||||
requestTemplate:
|
||||
url: "https://api.github.com/repos/{{.args.owner}}/{{.args.repo}}/pulls/{{.args.pull_number}}/reviews"
|
||||
method: GET
|
||||
headers:
|
||||
- key: Authorization
|
||||
value: "Bearer {{.config.accessToken}}"
|
||||
- key: Accept
|
||||
value: "application/vnd.github+json"
|
||||
- key: X-GitHub-Api-Version
|
||||
value: "2022-11-28"
|
||||
Reference in New Issue
Block a user