gi-工具
用于编码代理的 GitHub 工具: 问题、项目板、拉取请求、, 储存、释放和行动。 一次执行,每次执行 用最适合它的方式使用.
| 节奏 | 交付 | 被钉住 |
|---|---|---|
| 打开代码 V2 | 本地插件( npm 包, 有技能) | 软件包中的版本 |
| 打开代码 V1 | 本地插件( npm 软件包, 无技能) | 软件包中的版本 |
| 克劳德代码 | 插件: MCP 服务器和技能 | 释放标记,作为参考 |
| 代码 | 插件: MCP 服务器和技能 | 释放标记,作为参考 |
| Grok 构建 | 插件: MCP 服务器和技能 | 释放标签, 如 @ref |
| 反重力 | 插件: MCP 服务器和技能 | 释放标记树 URL |
| 赫尔墨斯探员 | 本地插件( Python, 调用命令行) | 释放承诺,如SHA |
| 其他 MCP 主机 | Npm 的 MCP 服务器 | 软件包中的版本 |
0.3.0 从 craftsamo/agent-github 改为 craft-agent/github-tools 并重新命名为: npm @craftsamo/github-tools (曾经是) @craftsamo/agent-github,现在从 npm 中删除),插件和 MCP 服务器 github-tools,程序 github-tools 财务报告和审定财务报表 github-tools-cli,设置 GITHUB_TOOLS_*。允许规则、插件安装和MCP配置,以0.2.0修改;工具ID不修改.
工具需要 节点.js 24岁或以后
GitHub 缩写被认证为你.
docs/conventions.md 描述工具的名称
他们的行为.
安装
从释放中安装, 绝不从默认分支安装: 释放是一个标签
承诺背负建造 dist/,而默认分支则没有。 在那个
下方的命令, <version> 是一个发行版本( e)1.2.3和 <sha> 这是
输入标签名称 :
gh api repos/craft-agent/github-tools/commits/v<version> --jq .sha
打开代码
OpenCode V2 在 opencode.json数字 :
{
"plugins": [
{
"package": "@craftsamo/github-tools@<version>",
"options": { "toolsets": ["issues", "pull_requests", "projects"] }
}
],
"permissions": [{ "action": "github_*", "resource": "*", "effect": "ask" }]
}
OpenCode V1 将软件包作为字符串,或与其选项相配:
{
"plugin": [["@craftsamo/github-tools@<version>", { "toolsets": ["issues", "pull_requests", "projects"] }]],
"permission": { "github_*": "ask" }
}
OpenCode 允许任何没有规则名的动作, 因此该插件的请求获得批准
除非规则说 ask。阅读工具从不问,所以 github_* 阴影
这是安全的.
V1没有技能。 解开包并复制其 skills/* 文件夹进入
~/.config/opencode/skills/数字 :
npm pack @craftsamo/github-tools@<version>
tar -xzf craftsamo-github-tools-<version>.tgz
mkdir -p ~/.config/opencode/skills
cp -r package/skills/* ~/.config/opencode/skills/
rm -rf package craftsamo-github-tools-<version>.tgz
克劳德代码
claude plugin marketplace add craft-agent/github-tools#v<version>
claude plugin install github-tools@craft-agent
代码
codex plugin marketplace add craft-agent/github-tools --ref v<version>
codex plugin add github-tools@craft-agent
代码旋转 - 输入 _ 在服务器名称中,它显示为
mcp__github_tools__github_issue_*在插件中启动 MCP 服务器
安装目录, 因此名称问题为 owner/repo#N 或通过 repo (空数)
却有一条话说不通.
Grok 构建
grok plugin install craft-agent/github-tools@v<version> --trust
Grok 在会话工作目录中启动 MCP 服务器, 因此在克隆内部 一个空的发号 命名了一个寄存器的问题.
反重力
从释放标记的树上安装, 绝不从默认分支中安装, 而该分支
没有构建 dist/; 反重力克隆标记
~/.gemini/config/plugins/github-tools。 。 。 .
agy plugin install https://github.com/craft-agent/github-tools/tree/v<version>
赫尔墨斯探员
Hermes 安装承诺而非标记,插件安装禁用:
hermes plugins install craft-agent/github-tools --ref <sha>
hermes plugins enable github-tools
如果一个 Hermes 网关已经运行, 请重新启动它(hermes gateway restart改为:
装入插件.
任何其他 MCP 主机
将服务器添加到主机的MCP配置中. 旗帜进入 args数字 :
{
"mcpServers": {
"github-tools": {
"command": "npx",
"args": ["-y", "@craftsamo/github-tools@<version>", "--toolsets", "issues,pull_requests,projects"]
}
}
}
工具和技能
每个工具箱都有一个技能 告诉一个特工如何使用工具.
问题issues(中文(简体) )
| 工具 | 它会做什么 | 类 |
|---|---|---|
github_issue_read | view 全文,或 list 寄存器的问题或父子的问题,及其问题领域 | 读取 |
github_issue_create | 创建与同类、标签、受让人、里程碑、母体和被封禁的问题、问题字段和董事会有关的问题 | 添加 |
github_issue_edit | 更改标题、正文(或附件)、类型、标签、受让人、里程碑或发行字段 | 覆盖 |
github_issue_comment | 关于某一问题的评论 | 添加 |
github_issue_close | 与理由相近(completed, (中文(简体) ), not_planned, (中文(简体) ), duplicate(中文(简体) ) | 覆盖 |
github_issue_reopen | 重新讨论一个已解决的问题 | 覆盖 |
github_issue_relate | 设置父、子问题、被阻断和阻断问题,只发送不同之处 | 专有 |
github_issue_develop | 在 GitHub 上创建链接到问题的分支, 或返回已经链接的分支 | 专有 |
技术是 github-issues,显示为
github-tools:github-issues 在克劳德法典和 github-tools:issues 在赫尔墨斯.
问题的类型是组织在定义名称时的问题类型
一个,否则 type:<kind> 标签。 问题领域(优先、努力、开始)
日期、目标日期和任何其他日期)是该组织的,所以只有一个
各组织的储存库有这些设备; list 由一个过滤器
field.<name>:<value> 内 query。 。 。 .
拖动请求和堆栈( R)pull_requests(中文(简体) )
| 工具 | 它会做什么 | 类 |
|---|---|---|
github_pr_read | view 一个拉动请求完全, list 一个仓库的拉动请求,读取它的 checks (最多45秒,工作日志失效) diff | 读取 |
github_pr_create | 打开一个被推动的分支的拉动请求,其中包含标签、受让人、审查者、里程碑、结账问题、董事会和附件 | 添加 |
github_pr_edit | 更改标题、正文(或附件)、基底、标签、受让人、审查人、里程碑或结账问题 | 覆盖 |
github_pr_comment | 注释,附有附件 | 添加 |
github_pr_review | 核准、请求修改或评论,并附上行评论 | 添加 |
github_pr_ready | 标记已准备好供审查,或改为草案 | 专有 |
github_pr_close | 关闭 | 覆盖 |
github_pr_reopen | 重开闭合拉动请求 | 覆盖 |
github_pr_merge | 合并, 当被问及时, 其下方的开口层以堆栈形式 | 行政 |
github_stack_read | view 以数字表示的本地堆栈或其中的拉取请求,或 list 仓库堆栈 | 读取 |
github_stack_link | 将请求合并到一个堆栈中, 或添加到一个上方 | 专有 |
github_stack_unlink | 溶解堆栈, 打开拖放请求 | 覆盖 |
技术是
github-pull-requests,显示为
github-tools:github-pull-requests 在克劳德法典和
github-tools:pull-requests 在赫尔墨斯。 工具不推动: 推动分支
首先通过承诺 它被推为 head_sha,所以拉请求打开,是
检查或合并了确切的承诺。 结 论 保留为 Closes #N 因为GitHub没有其他方法可以把它们连接起来 堆栈使用
GitHub 的 REST 堆栈端点, 所以 gh stack 不需要扩展.
附文需要gh 2.99 或更新.
项目委员会projects(中文(简体) )
| 工具 | 它会做什么 | 类 |
|---|---|---|
github_project_read | view 具有其领域和观点的董事会, list 董事会,或 item_list a 董事会项目 | 读取 |
github_project_create | 创建有标准字段和视图的棋盘, 或重用该标题之一 | 专有 |
github_project_field_ensure | 添加字段,或者缺少单个选择的选项 | 专有 |
github_project_view_ensure | 添加保存的视图及其字段、列、组和排序 | 专有 |
github_project_link | 将棋盘链接到同一所有者的仓库 | 专有 |
github_project_unlink | 解除棋盘与寄存器的联系 | 专有 |
github_project_item_add | 向棋盘上放出问题或拉出请求,或以字段值返回其项目 | 专有 |
github_project_item_create | 创建带有字段值的项目草稿 | 添加 |
github_project_item_edit | 设置或清晰的字段值,并修改草案的标题和正文 | 覆盖 |
github_project_item_archive | 归档项目 | 覆盖 |
github_project_item_unarchive | 将存档项目带回 | 覆盖 |
github_project_item_convert | 将草案变成一个问题,包括此类问题、标签和里程碑 | 添加 |
技术是
github-projects,显示为
github-tools:github-projects 在克劳德法典和 github-tools:projects 内
赫尔墨斯 董事会由它的号码命名, owner/N、 URL 或标题 (Roadmap 何时
在与储存库相连的板块中发现,然后是储存库
组织,然后是观众。 标志需要 project 范围
(单位:千美元)gh auth refresh -s project) (中文(简体) ). 没有 API 设置路线图视图的日期字段, 所以
之后 github_project_create 设置路线图视图的“日期字段”以启动和
目标在网络UI。 反映一个组织的问题领域的一栏是
读取和任何其他一样,但它的价值是问题本身:董事会工具拒绝
设置或清除它,以及 github_issue_edit 两者兼有.
github_project_field_ensure 与 issue_field: true 添加这样的一栏,以及
github_project_create 与 dates: "issue_fields" 开始
日期和目标日期作为组织理事会的日期.
仓库( R)repos(中文(简体) )
| 工具 | 它会做什么 | 类 |
|---|---|---|
github_repo_read | view 寄存器的设置、特性、合并设置和查看器的权限,或 list 拥有者的仓库 | 读取 |
github_repo_create | 创建仓库, 空的或从模板创建 | 行政 |
github_repo_edit | 更改描述、主页、默认分支、主题、特性或合并设置 | 覆盖 |
github_repo_visibility | * 公开、私人或内部储存库 | 行政 |
github_repo_archive | 归档仓库 | 行政 |
github_repo_unarchive | 取消仓库的存档 | 覆盖 |
github_label_read | list 仓库的标签 | 读取 |
github_label_create | 创建标签 | 添加 |
github_label_edit | 重命名、重彩或重写标签 | 覆盖 |
github_label_delete | 删除标签, 从每期中删除并拉动请求 | 行政 |
github_milestone_read | list 存储器的里程碑, 并有进展 | 读取 |
github_milestone_create | 创建一个里程碑 | 添加 |
github_milestone_edit | 更改里程碑的标题、到期日期或描述,或关闭或重新打开 | 覆盖 |
github_ruleset_read | list 规则和经典分支保护,或 view 一个规则 | 读取 |
github_ruleset_create | 创建一个带有参考、规则和绕行角色的规则集 | 行政 |
github_ruleset_edit | 替换规则片段,停止为 stale 当它被读到后改变了 | 行政 |
github_ruleset_delete | 删除规则集 | 行政 |
工具集默认关闭: 添加 repos 改为 toolsets技术是
github-repos,显示为
github-tools:github-repos 在克劳德法典和 github-tools:repos 在赫尔墨斯.
大多数设置更改需要寄存器上的管理员权限,以及规则
私人仓库需要付费计划。 删除、更名、转让或
伪造寄存器留给用户.
释放(releases(中文(简体) )
| 工具 | 它会做什么 | 类 |
|---|---|---|
github_release_read | list 储存库的释放,包括草稿,或 view 随笔记和承诺 | 读取 |
github_release_create | 创建草稿发布, 可选择使用生成的注释 | 添加 |
github_release_edit | 更改标题、注释、预释旗帜、最新状况或草案目标 | 覆盖 |
github_release_publish | 发布草稿,停止为 stale 当它的行为不同于 head_sha | 行政 |
github_release_delete | 删除释放及其资产,保留其标记 | 行政 |
工具集默认关闭: 添加 releases 改为 toolsets技术是
github-releases,显示为
github-tools:github-releases 在克劳德法典和 github-tools:releases 内
赫尔墨斯 新的释放总是草案;资产尚未涵盖.
行动( E)actions(中文(简体) )
| 工具 | 它会做什么 | 类 |
|---|---|---|
github_workflow_read | list 存储库的工作流程,包括已禁用的工作流程,或 view 一个在分行或标签上的文件 | 读取 |
github_run_read | list 按分支、工作流程、状况、事件或承诺运行的工作流程,或 view 一个有它的工作和失败的日志,在它运行时等待 | 读取 |
github_workflow_run | 随输入手动启动工作流程,停止为 stale 当裁判与 head_sha | 行政 |
github_run_rerun | 重新运行一个完成的运行失败的工作, 每个工作, 或者一个工作 | 行政 |
github_run_cancel | 取消已队列或运行的运行 | 行政 |
工具集默认关闭: 添加 actions 改为 toolsets技术是
github-actions,显示为
github-tools:github-actions 在克劳德法典和 github-tools:actions 内
赫尔墨斯 每个动作每次都会问,因为一个工作流程可以部署或
出版它的名字。 启用或取消工作流程,删除 a
运行和下载的文物尚未覆盖.
阅读和写作
每个读取的工具都命名 github_<domain>_read。阅读可以不经询问运行;写入
被绳子所证实.
| 节奏 | 阅读而不询问 |
|---|---|
| 打开代码 | 总是; 插件仅在写前询问 |
| 克劳德代码 | 规则 mcp__plugin_github-tools_github-tools__*_read 内 permissions.allow 联 合 国 ~/.claude/settings.json 或项目 |
| 代码 | 总是; Codex 运行宣布的工具 readOnlyHint 未询问, 如读取工具所做的 |
| Grok 构建 | grok --allow 'MCPTool(github-tools__*_read)' --allow 'MCPTool(github_*_read)' (两项规则;见下文) |
| 反重力 | 规则 mcp(github-tools_github-tools/github_issue_read) 内 permissions.allow 联 合 国 ~/.gemini/antigravity-cli/settings.json,每个已读工具一个 |
| 赫尔墨斯 | 总是; 插件仅在写前询问 |
凡所问之作文,而所不取之作文:
- 打开代码 不允许任何动作没有规则名称, 因此未询问写入运行, 除非
规则要求:
github_*规则如下 打开代码。 。 。 . - 代码 下级
codex exec,以及 Grok 构建 下级grok -p,拒绝 除非事前允许,否则他们不能写信询问. - Grok 构建 通过插件调用工具
use_tool工具,以及 代理机常常在不先使用其服务器的情况下命名工具( s)github_project_read) (中文(简体) ). Grok根据给定的名字检查规则,所以服务器合格规则 单枪匹马和第一次通话不相符grok -p拒绝就停下来 而不是让代理重试github-tools__github_project_read。 。 。 . 第二条规则与短名相匹配;一则写法仍然不匹配. - 反重力 在任何 MCP 工具之前询问 规则不允许、 读取包含,以及
命名插件的服务器
github-tools_github-tools(插图,然后是服务器).agy -p拒绝它不能要求的工具;--dangerously-skip-permissions运行所有未询问的工具. - 赫尔墨斯
hermes chat -q拒绝它不能要求的写作;hermes -z财务报告和审定财务报表--yolo跳过批准, 所以写然后运行未询问.
设置
每个切入点都采用相同的设置. 旗帜胜过环境 变量,而选项或设置也胜过变量.
| 设置 | 旗帜 | 变量 | 含义 |
|---|---|---|---|
toolsets | --toolsets | GITHUB_TOOLS_TOOLSETS | issues, (中文(简体) ), pull_requests, (中文(简体) ), projects, (中文(简体) ), repos, (中文(简体) ), releases, (中文(简体) ), actions 或者说 all; 默认 issues, (中文(简体) ), pull_requests 财务报告和审定财务报表 projects |
read_only | --read-only | GITHUB_TOOLS_READ_ONLY | 没有记录写入的工具; 胜过其他设置 |
tools | --tools | GITHUB_TOOLS_TOOLS | 用 ID 添加的单个工具, 不管它们的工具集 |
exclude_tools | --exclude-tools | GITHUB_TOOLS_EXCLUDE_TOOLS | 用 ID 删除的单一工具; 胜出 tools 财务报告和审定财务报表 toolsets |
confirm | --confirm | GITHUB_TOOLS_CONFIRM | 只有 MCP 服务器 : harness (违约)或 elicitation,作为 docs/conventions.md 描述 |
列表在旗帜或变量中被逗号分隔. GitHub 动作不允许
隐藏或配置变量被命名 GITHUB_*,所以在一个工作流程 通过一个
通过数值 env: 从另一个名字的秘密,例如.
GITHUB_TOOLS_READ_ONLY: ${{ secrets.TOOLS_READ_ONLY }} (设立这样一个机构)
环境变量 env: 页:1 每根绳子都会读出:
-
打开代码 选择插件
options列表为数组和read_only像个布尔人 回到变量上 V2 运行插件在 其背景服务,它维持它开始的环境:a 变量设置opencode run在服务生效前启动无效 在此环境中重新开始( e)opencode service restart。 V1 运行插件 在自己的过程中. -
赫尔墨斯 带
plugins.entries.github-tools.settings内config.yaml数字 :plugins: entries: github-tools: settings: toolsets: [issues, pull_requests, projects] read_only: false exclude_tools: [github_pr_merge]插件将自己的环境传递到它运行的命令行,所以 变量也起作用。 运行的网关保持它开始的环境; 重新启动( e)
hermes gateway restart) 在换了后. -
Claude Code, Grok 建筑和反重力 启动插件的服务器,无需 标记并传递客户端的环境,所以将变量设置在 环境 绳子运行在.
-
代码 仅通过插件的 MCP 服务器的几个基本变量( 如
PATH财务报告和审定财务报表HOME)和插件的显示名称,即 以上变量:将其设置在环境代码运行中。 变量 除设置外还读取的工具TOOL_VARIABLES内src/entry/settings.ts· ;pnpm run manifests在仪表上加载它 设置变量。 传递旗帜,或给服务器一个变量 软件包不命名, 将服务器添加到[mcp_servers]在代码x中config.toml而不是使用插件: 标记进入args, (中文(简体) ),env_vars命名要从 Codex 环境中转发的变量,以及env套装 固定值.[mcp_servers.github-tools] command = "npx" args = ["-y", "@craftsamo/github-tools@<version>", "--toolsets", "issues,pull_requests,projects"] env_vars = ["GITHUB_TOOLS_READ_ONLY"]
版式
src/core/工具,没有绳子.src/mcp/—— MCP 服务器,用于dist/mcp.js运行于github-tools。 。 。 .src/opencode/—— OpenCode 插件,构建为dist/opencode.js。 。 。 .src/cli/——赫尔墨斯插件调用的命令行,构建为dist/cli.js运行于github-tools-cli。 。 。 .src/hermes/, (中文(简体) ),plugin.yaml财务报告和审定财务报表__init__.py——赫尔墨斯插件.skills/- 每个工具箱一个技能,skills/<name>/SKILL.md,每个 从软件包或插件根取出技能负载的绳索..claude-plugin/, (中文(简体) ),.codex-plugin/, (中文(简体) ),.agents/plugins/, (中文(简体) ),.mcp.json, (中文(简体) ),.antigravity-plugin/财务报告和审定财务报表mcp_config.json——插件显示 其他绳子。 代码读取.codex-plugin/plugin.json; 一个根plugin.json使其装入插件为代理插件,其工具 预算隐藏了超过固定大小的工具。 词根.mcp.json这是 配置 Grok 构建读取( 使用${CLAUDE_PLUGIN_ROOT}变量 grok Build 和 Claude 代码扩展) Claude Code 拒绝它从文件提供的MCP服务器项目.
如何释放是在 RELEASING.md。 。 。 .