@zhin.js/adapter-github 0.1.51 → 0.1.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -21
- package/lib/agent-prompt.d.ts +3 -0
- package/lib/agent-prompt.d.ts.map +1 -0
- package/lib/agent-prompt.js +84 -0
- package/lib/agent-prompt.js.map +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -25
- package/lib/index.js.map +1 -1
- package/lib/register-github-mcp.d.ts +6 -0
- package/lib/register-github-mcp.d.ts.map +1 -0
- package/lib/register-github-mcp.js +35 -0
- package/lib/register-github-mcp.js.map +1 -0
- package/package.json +4 -4
- package/skills/github/SKILL.md +16 -9
- package/src/agent-prompt.ts +100 -0
- package/src/index.ts +16 -23
- package/src/register-github-mcp.ts +60 -0
package/README.md
CHANGED
|
@@ -74,8 +74,12 @@ GITHUB_APP_ID=123456
|
|
|
74
74
|
GITHUB_WEBHOOK_SECRET=your-secret
|
|
75
75
|
GITHUB_CLIENT_ID=Iv1.xxxxxxxxxx
|
|
76
76
|
GITHUB_CLIENT_SECRET=xxxxxxxxxxxx
|
|
77
|
+
# MCP server-github(适配器自动 addMcp,与 App 认证独立)
|
|
78
|
+
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxxxxxxxxxx
|
|
77
79
|
```
|
|
78
80
|
|
|
81
|
+
或在 `zhin.config.yml` 中设置 `ai.githubMcp.token`(优先于环境变量)。
|
|
82
|
+
|
|
79
83
|
`private_key` 支持两种写法:
|
|
80
84
|
- 文件路径:`./data/github-app.pem`
|
|
81
85
|
- 直接内容:`"-----BEGIN RSA PRIVATE KEY-----\n..."`
|
|
@@ -91,27 +95,20 @@ GitHub adapter 将 Issue/PR 映射为聊天频道:
|
|
|
91
95
|
|
|
92
96
|
## AI 工具
|
|
93
97
|
|
|
94
|
-
|
|
98
|
+
### 适配器内置(Zhin 专有)
|
|
95
99
|
|
|
96
|
-
| 工具 | 说明 |
|
|
97
|
-
|
|
98
|
-
| `
|
|
99
|
-
| `
|
|
100
|
-
| `
|
|
101
|
-
| `
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
| `github.unsubscribe` | 取消订阅 | — |
|
|
109
|
-
| `github.subscriptions` | 查看订阅列表 | — |
|
|
110
|
-
| `github.bind` | 绑定 GitHub 账号 | 生成 OAuth 授权链接 |
|
|
111
|
-
| `github.unbind` | 解除绑定 | — |
|
|
112
|
-
| `github.whoami` | 查看绑定信息 | — |
|
|
113
|
-
| `github.star` | Star / Unstar 仓库 | 需要用户绑定 OAuth |
|
|
114
|
-
| `github.fork` | Fork 仓库 | 需要用户绑定 OAuth |
|
|
100
|
+
| 工具 | 说明 |
|
|
101
|
+
|------|------|
|
|
102
|
+
| `github_star` | Star / Unstar / 检查(per-user OAuth 或 Bot 默认) |
|
|
103
|
+
| `github_bind` / `github_unbind` / `github_whoami` | 用户 GitHub 账号绑定 |
|
|
104
|
+
| `github_install` | GitHub App 安装链接 |
|
|
105
|
+
| `github_subscribe` / `github_unsubscribe` / `github_subscriptions` | 频道级 Webhook 订阅 |
|
|
106
|
+
|
|
107
|
+
### MCP(`@modelcontextprotocol/server-github`)
|
|
108
|
+
|
|
109
|
+
配置 `GITHUB_PERSONAL_ACCESS_TOKEN`(或 `ai.githubMcp.token`)后,适配器通过 `orchestrator.addMcp` 注册 `github` server;AI 侧工具名为 `mcp_github_*`(如 `mcp_github_fork_repository`、`mcp_github_create_issue`)。
|
|
110
|
+
|
|
111
|
+
**BREAKING**:`github_fork` 已移除,请改用 `mcp_github_fork_repository`。
|
|
115
112
|
|
|
116
113
|
### 使用示例
|
|
117
114
|
|
|
@@ -127,7 +124,7 @@ AI: 对比 zhinjs/zhin 的 main 和 dev 分支
|
|
|
127
124
|
AI: 编辑 zhinjs/zhin 的 issue #42 标题
|
|
128
125
|
AI: 绑定我的 GitHub 账号
|
|
129
126
|
AI: star zhinjs/zhin
|
|
130
|
-
AI: fork zhinjs/zhin
|
|
127
|
+
AI: fork zhinjs/zhin # 使用 mcp_github_fork_repository
|
|
131
128
|
```
|
|
132
129
|
|
|
133
130
|
## Webhook 事件通知
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-prompt.d.ts","sourceRoot":"","sources":["../src/agent-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EAEvB,MAAM,SAAS,CAAC;AAwDjB,wBAAgB,kCAAkC,IAAI,sBAAsB,CAuC3E"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { filterTools } from 'zhin.js';
|
|
2
|
+
function isGithubDelegatedTask(query, goal) {
|
|
3
|
+
const text = `${query} ${goal}`;
|
|
4
|
+
return /github|gh_|mcp_github|\bissue\b|pull\s*request|\bpr\b/i.test(text);
|
|
5
|
+
}
|
|
6
|
+
function selectGithubDeferredTools(query, goal, deferredCatalog, maxTools) {
|
|
7
|
+
const pool = deferredCatalog.filter(t => !t.name.startsWith('mcp_filesystem') && !t.name.startsWith('mcp_icqq_'));
|
|
8
|
+
const pinned = [];
|
|
9
|
+
const bash = pool.find(t => t.name === 'bash');
|
|
10
|
+
if (bash)
|
|
11
|
+
pinned.push(bash);
|
|
12
|
+
const preferNames = [
|
|
13
|
+
...pool.filter(t => t.name.startsWith('mcp_github_')).map(t => t.name),
|
|
14
|
+
...pool.filter(t => t.name.startsWith('github_')).map(t => t.name),
|
|
15
|
+
];
|
|
16
|
+
for (const name of preferNames) {
|
|
17
|
+
if (pinned.length >= maxTools)
|
|
18
|
+
break;
|
|
19
|
+
const t = pool.find(x => x.name === name);
|
|
20
|
+
if (t && !pinned.some(p => p.name === name))
|
|
21
|
+
pinned.push(t);
|
|
22
|
+
}
|
|
23
|
+
const extra = filterTools(`${query} ${goal}`, pool, { maxTools, minScore: 0.08 })
|
|
24
|
+
.filter(t => !pinned.some(p => p.name === t.name));
|
|
25
|
+
const merged = [...pinned];
|
|
26
|
+
for (const t of extra) {
|
|
27
|
+
if (merged.length >= maxTools)
|
|
28
|
+
break;
|
|
29
|
+
merged.push(t);
|
|
30
|
+
}
|
|
31
|
+
return merged.slice(0, maxTools);
|
|
32
|
+
}
|
|
33
|
+
const ORCHESTRATOR_GITHUB = [
|
|
34
|
+
'On GitHub: use run_deferred_task with tool_query "github_" or "mcp_github_" or "gh issue"/"gh pr".',
|
|
35
|
+
'Discuss issues/PRs in chat context; do not call github_* or mcp_github_* tools on this orchestrator.',
|
|
36
|
+
'Skip tool_search when the user clearly names a repo, issue number, or PR.',
|
|
37
|
+
].join('\n');
|
|
38
|
+
const WORKER_GITHUB = [
|
|
39
|
+
'Prefer `gh` via bash for repo operations when bash is available.',
|
|
40
|
+
'Use mcp_github_* or github_* plugin tools for structured API actions.',
|
|
41
|
+
'Do not use mcp_filesystem_* or unrelated MCP servers to "discover" GitHub.',
|
|
42
|
+
'Summarize outcomes (issue link, PR state) for the orchestrator.',
|
|
43
|
+
].map(line => `- ${line}`).join('\n');
|
|
44
|
+
export function createGithubAgentPromptContributor() {
|
|
45
|
+
return {
|
|
46
|
+
platform: 'github',
|
|
47
|
+
async buildSections(ctx) {
|
|
48
|
+
if (ctx.slot === 'orchestrator') {
|
|
49
|
+
if (!ctx.toolSearch)
|
|
50
|
+
return null;
|
|
51
|
+
return [{
|
|
52
|
+
id: 'platform.github.orchestrator',
|
|
53
|
+
title: '## GitHub',
|
|
54
|
+
body: ORCHESTRATOR_GITHUB,
|
|
55
|
+
priority: 50,
|
|
56
|
+
}];
|
|
57
|
+
}
|
|
58
|
+
if (ctx.slot === 'deferred_worker') {
|
|
59
|
+
const query = ctx.deferred?.toolQuery ?? ctx.deferred?.goal ?? '';
|
|
60
|
+
const goal = ctx.deferred?.goal ?? '';
|
|
61
|
+
if (!isGithubDelegatedTask(query, goal))
|
|
62
|
+
return null;
|
|
63
|
+
return [{
|
|
64
|
+
id: 'platform.github.deferred_worker',
|
|
65
|
+
title: '## GitHub(本任务)',
|
|
66
|
+
body: WORKER_GITHUB,
|
|
67
|
+
priority: 50,
|
|
68
|
+
}];
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
},
|
|
72
|
+
matchesDeferredTask(ctx) {
|
|
73
|
+
const query = ctx.deferred?.toolQuery ?? ctx.deferred?.goal ?? ctx.userMessagePreview ?? '';
|
|
74
|
+
const goal = ctx.deferred?.goal ?? ctx.userMessagePreview ?? '';
|
|
75
|
+
return isGithubDelegatedTask(query, goal);
|
|
76
|
+
},
|
|
77
|
+
selectDeferredTools(query, goal, catalog, maxTools) {
|
|
78
|
+
if (!isGithubDelegatedTask(query, goal))
|
|
79
|
+
return null;
|
|
80
|
+
return selectGithubDeferredTools(query, goal, catalog, maxTools);
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=agent-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-prompt.js","sourceRoot":"","sources":["../src/agent-prompt.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAK7C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,QAAQ;QAChB,MAAM,EAAE,aAAa,CAAC;KACvB;IACD,UAAU,MAAM,CAAC;QACf,UAAU,QAAQ;YAChB,MAAM,EAAE,OAAO,eAAe,EAAE,MAAM,CAAC;SACxC;KACF;IACD,UAAU,MAAM;QACd,oBAAoB,EAAE;YACpB,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,OAAO,YAAY,EAAE,SAAS,EAAE,CAAC;YACzC,SAAS,EAAE,MAAM,CAAC;YAClB,WAAW,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;YAC7C,OAAO,EAAE,MAAM,CAAC;YAChB,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;QACF,aAAa,EAAE;YACb,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,OAAO,EAAE,GAAG,CAAC;SACd,CAAC;QACF,kBAAkB,EAAE,OAAO,YAAY,EAAE,eAAe,CAAC;KAC1D;CACF;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GitHub 适配器入口:类型扩展、模型、导出、注册
|
|
3
3
|
*/
|
|
4
|
-
import { usePlugin } from 'zhin.js';
|
|
4
|
+
import { usePlugin, registerAgentPromptContributor, unregisterAgentPromptContributor, } from 'zhin.js';
|
|
5
|
+
import { createGithubAgentPromptContributor } from './agent-prompt.js';
|
|
5
6
|
import { GitHubAdapter } from './adapter.js';
|
|
6
7
|
import { GhClient } from './gh-client.js';
|
|
8
|
+
import { registerGithubMcp } from './register-github-mcp.js';
|
|
7
9
|
export * from './types.js';
|
|
8
10
|
export { GitHubBot, parseMarkdown, toMarkdown } from './bot.js';
|
|
9
11
|
export { GitHubAdapter } from './adapter.js';
|
|
10
12
|
export { GhClient } from './gh-client.js';
|
|
11
13
|
const plugin = usePlugin();
|
|
12
14
|
const { provide, defineModel, useContext, logger } = plugin;
|
|
15
|
+
registerGithubMcp(plugin);
|
|
13
16
|
defineModel('github_subscriptions', {
|
|
14
17
|
id: { type: 'integer', primary: true },
|
|
15
18
|
repo: { type: 'text', nullable: false },
|
|
@@ -37,11 +40,13 @@ provide({
|
|
|
37
40
|
name: 'github',
|
|
38
41
|
description: 'GitHub Adapter — Issues/PRs as chat channels, full repo management via gh CLI',
|
|
39
42
|
mounted: async (p) => {
|
|
43
|
+
registerAgentPromptContributor(createGithubAgentPromptContributor());
|
|
40
44
|
const adapter = new GitHubAdapter(p);
|
|
41
45
|
await adapter.start();
|
|
42
46
|
return adapter;
|
|
43
47
|
},
|
|
44
48
|
dispose: async (adapter) => {
|
|
49
|
+
unregisterAgentPromptContributor('github');
|
|
45
50
|
await adapter.stop();
|
|
46
51
|
},
|
|
47
52
|
});
|
|
@@ -84,7 +89,6 @@ useContext('tool', 'github', (toolService, adapter) => {
|
|
|
84
89
|
},
|
|
85
90
|
required: ['action', 'repo'],
|
|
86
91
|
},
|
|
87
|
-
platforms: ['github'],
|
|
88
92
|
tags: ['github'],
|
|
89
93
|
execute: async (args, context) => {
|
|
90
94
|
const gh = await adapter.getUserOrDefaultAPI(context?.platform, context?.senderId);
|
|
@@ -108,29 +112,6 @@ useContext('tool', 'github', (toolService, adapter) => {
|
|
|
108
112
|
}
|
|
109
113
|
},
|
|
110
114
|
},
|
|
111
|
-
// --- Fork ---
|
|
112
|
-
{
|
|
113
|
-
name: 'github_fork',
|
|
114
|
-
description: 'Fork 一个 GitHub 仓库(使用你绑定的 GitHub 账号,未绑定则用 Bot 默认账号)',
|
|
115
|
-
parameters: {
|
|
116
|
-
type: 'object',
|
|
117
|
-
properties: {
|
|
118
|
-
repo: { type: 'string', description: 'owner/repo (必填)' },
|
|
119
|
-
},
|
|
120
|
-
required: ['repo'],
|
|
121
|
-
},
|
|
122
|
-
platforms: ['github'],
|
|
123
|
-
tags: ['github'],
|
|
124
|
-
execute: async (args, context) => {
|
|
125
|
-
const gh = await adapter.getUserOrDefaultAPI(context?.platform, context?.senderId);
|
|
126
|
-
if (!gh)
|
|
127
|
-
return '❌ 没有可用的 GitHub bot';
|
|
128
|
-
const r = await gh.forkRepo(args.repo);
|
|
129
|
-
if (!r.ok)
|
|
130
|
-
return `❌ ${r.data?.message || JSON.stringify(r.data)}`;
|
|
131
|
-
return `🍴 已 Fork ${args.repo} → ${r.data.full_name}\n🔗 ${r.data.html_url}`;
|
|
132
|
-
},
|
|
133
|
-
},
|
|
134
115
|
// --- Bind (Device Flow) ---
|
|
135
116
|
{
|
|
136
117
|
name: 'github_bind',
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-github-mcp.d.ts","sourceRoot":"","sources":["../src/register-github-mcp.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAY,MAAM,EAAE,MAAM,SAAS,CAAC;AAyBhD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA+BtD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
function resolveGithubMcpToken(ai) {
|
|
2
|
+
const fromConfig = ai?.githubMcp?.token?.trim();
|
|
3
|
+
if (fromConfig)
|
|
4
|
+
return fromConfig;
|
|
5
|
+
return (process.env.GITHUB_PERSONAL_ACCESS_TOKEN?.trim() ||
|
|
6
|
+
process.env.GITHUB_TOKEN?.trim() ||
|
|
7
|
+
undefined);
|
|
8
|
+
}
|
|
9
|
+
export function registerGithubMcp(plugin) {
|
|
10
|
+
const { useContext, root, logger } = plugin;
|
|
11
|
+
useContext('ai', (ai) => {
|
|
12
|
+
if (!ai?.isReady?.())
|
|
13
|
+
return;
|
|
14
|
+
const orchestrator = root.inject('agent');
|
|
15
|
+
if (!orchestrator)
|
|
16
|
+
return;
|
|
17
|
+
if (orchestrator.mcps.has('github'))
|
|
18
|
+
return;
|
|
19
|
+
const configService = root.inject('config');
|
|
20
|
+
const appConfig = configService?.getPrimary() || {};
|
|
21
|
+
const token = resolveGithubMcpToken(appConfig.ai);
|
|
22
|
+
if (!token) {
|
|
23
|
+
logger.debug('[MCP] server-github skipped: set GITHUB_PERSONAL_ACCESS_TOKEN or ai.githubMcp.token');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
return orchestrator.addMcp({
|
|
27
|
+
name: 'github',
|
|
28
|
+
transport: 'stdio',
|
|
29
|
+
command: 'npx',
|
|
30
|
+
args: ['-y', '@modelcontextprotocol/server-github'],
|
|
31
|
+
env: { GITHUB_PERSONAL_ACCESS_TOKEN: token },
|
|
32
|
+
}, {}, 'adapter-github');
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=register-github-mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-github-mcp.js","sourceRoot":"","sources":["../src/register-github-mcp.ts"],"names":[],"mappings":"AAkBA,SAAS,qBAAqB,CAAC,EAAa;IAC1C,MAAM,UAAU,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,EAAE;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE;QAChC,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE5C,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QACtB,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;YAAE,OAAO;QAE7B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsC,CAAC;QAC/E,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO;QAE5C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,aAAa,EAAE,UAAU,EAAqB,IAAI,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;YACpG,OAAO;QACT,CAAC;QAED,OAAO,YAAY,CAAC,MAAM,CACxB;YACE,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,qCAAqC,CAAC;YACnD,GAAG,EAAE,EAAE,4BAA4B,EAAE,KAAK,EAAE;SAC7C,EACD,EAAE,EACF,gBAAgB,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/adapter-github",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.52",
|
|
4
4
|
"description": "Zhin.js adapter for GitHub (gh CLI) — treat issues/PRs as chat channels, full repo management, webhook notifications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
"license": "MIT",
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"typescript": "^6.0.3",
|
|
44
|
-
"zhin.js": "1.0.
|
|
44
|
+
"zhin.js": "1.0.81"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@zhin.js/http": "1.0.
|
|
48
|
-
"zhin.js": "1.0.
|
|
47
|
+
"@zhin.js/http": "1.0.74",
|
|
48
|
+
"zhin.js": "1.0.81"
|
|
49
49
|
},
|
|
50
50
|
"peerDependenciesMeta": {
|
|
51
51
|
"@zhin.js/http": {
|
package/skills/github/SKILL.md
CHANGED
|
@@ -3,9 +3,9 @@ name: github
|
|
|
3
3
|
platforms:
|
|
4
4
|
- github
|
|
5
5
|
description: >-
|
|
6
|
-
GitHub
|
|
7
|
-
|
|
8
|
-
Bot 操作使用 GitHub App
|
|
6
|
+
GitHub 全功能适配器技能:内置工具处理 Star/绑定/订阅;MCP server-github 处理 Fork/PR/Issue 等 API;
|
|
7
|
+
bash + gh CLI 覆盖其余仓库自动化。
|
|
8
|
+
Bot 操作使用 GitHub App 身份;Star 等可使用用户 OAuth 绑定。
|
|
9
9
|
每个 Zhin 实例通过 GH_TOKEN 环境变量注入身份,支持多实例协同。
|
|
10
10
|
channel ID 格式:owner/repo/issues/N 或 owner/repo/pull/N。
|
|
11
11
|
keywords:
|
|
@@ -53,7 +53,6 @@ tags:
|
|
|
53
53
|
tools:
|
|
54
54
|
- bash
|
|
55
55
|
- github_star
|
|
56
|
-
- github_fork
|
|
57
56
|
- github_bind
|
|
58
57
|
- github_unbind
|
|
59
58
|
- github_whoami
|
|
@@ -71,8 +70,9 @@ requires:
|
|
|
71
70
|
|
|
72
71
|
# GitHub 全功能操作指南
|
|
73
72
|
|
|
74
|
-
|
|
73
|
+
本技能提供三种操作方式:
|
|
75
74
|
- **适配器内置工具**(`github_*`):用户交互类操作,具备账号绑定、Device Flow 授权、频道级订阅等适配器专有逻辑
|
|
75
|
+
- **MCP server-github**(`mcp_github_*`):Issue/PR/搜索/Fork 等 GitHub API(需 `GITHUB_PERSONAL_ACCESS_TOKEN` 或 `ai.githubMcp.token`)
|
|
76
76
|
- **bash + gh CLI**:仓库自动化操作,灵活覆盖 GitHub API 全场景
|
|
77
77
|
|
|
78
78
|
## 一、适配器内置工具
|
|
@@ -93,7 +93,13 @@ requires:
|
|
|
93
93
|
| 工具 | 说明 |
|
|
94
94
|
|------|------|
|
|
95
95
|
| `github_star` | Star 或取消 Star 一个仓库。优先使用用户绑定的 GitHub 账号,未绑定则降级为 Bot 默认账号 |
|
|
96
|
-
|
|
96
|
+
|
|
97
|
+
### MCP(server-github,单一 PAT)
|
|
98
|
+
|
|
99
|
+
| 工具 | 说明 |
|
|
100
|
+
|------|------|
|
|
101
|
+
| `mcp_github_fork_repository` | Fork 仓库(替代已移除的 `github_fork`) |
|
|
102
|
+
| `mcp_github_create_issue` 等 | Issue/PR/搜索/文件等,见 MCP 工具列表 |
|
|
97
103
|
|
|
98
104
|
### Webhook 订阅(频道级)
|
|
99
105
|
|
|
@@ -105,9 +111,10 @@ requires:
|
|
|
105
111
|
|
|
106
112
|
### 内置工具执行规则
|
|
107
113
|
|
|
108
|
-
1. `github_star`
|
|
109
|
-
2.
|
|
110
|
-
3.
|
|
114
|
+
1. `github_star` 优先使用用户绑定的 GitHub 账号,未绑定则降级为 Bot 默认账号
|
|
115
|
+
2. Fork 与通用 API 使用 `mcp_github_*`(Bot PAT,非 per-user OAuth)
|
|
116
|
+
3. 当用户想操作自己的 GitHub 账号进行 Star 时,先引导用户使用 `github_bind` 绑定
|
|
117
|
+
4. Webhook 订阅关联到当前聊天通道,仅在该通道接收事件通知
|
|
111
118
|
|
|
112
119
|
---
|
|
113
120
|
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AgentPromptBuildContext,
|
|
3
|
+
AgentPromptContributor,
|
|
4
|
+
AgentPromptSection,
|
|
5
|
+
} from 'zhin.js';
|
|
6
|
+
import type { AgentTool } from 'zhin.js';
|
|
7
|
+
import { filterTools } from 'zhin.js';
|
|
8
|
+
|
|
9
|
+
function isGithubDelegatedTask(query: string, goal: string): boolean {
|
|
10
|
+
const text = `${query} ${goal}`;
|
|
11
|
+
return /github|gh_|mcp_github|\bissue\b|pull\s*request|\bpr\b/i.test(text);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function selectGithubDeferredTools(
|
|
15
|
+
query: string,
|
|
16
|
+
goal: string,
|
|
17
|
+
deferredCatalog: AgentTool[],
|
|
18
|
+
maxTools: number,
|
|
19
|
+
): AgentTool[] {
|
|
20
|
+
const pool = deferredCatalog.filter(
|
|
21
|
+
t => !t.name.startsWith('mcp_filesystem') && !t.name.startsWith('mcp_icqq_'),
|
|
22
|
+
);
|
|
23
|
+
const pinned: AgentTool[] = [];
|
|
24
|
+
const bash = pool.find(t => t.name === 'bash');
|
|
25
|
+
if (bash) pinned.push(bash);
|
|
26
|
+
|
|
27
|
+
const preferNames = [
|
|
28
|
+
...pool.filter(t => t.name.startsWith('mcp_github_')).map(t => t.name),
|
|
29
|
+
...pool.filter(t => t.name.startsWith('github_')).map(t => t.name),
|
|
30
|
+
];
|
|
31
|
+
for (const name of preferNames) {
|
|
32
|
+
if (pinned.length >= maxTools) break;
|
|
33
|
+
const t = pool.find(x => x.name === name);
|
|
34
|
+
if (t && !pinned.some(p => p.name === name)) pinned.push(t);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const extra = filterTools(`${query} ${goal}`, pool, { maxTools, minScore: 0.08 })
|
|
38
|
+
.filter(t => !pinned.some(p => p.name === t.name));
|
|
39
|
+
|
|
40
|
+
const merged = [...pinned];
|
|
41
|
+
for (const t of extra) {
|
|
42
|
+
if (merged.length >= maxTools) break;
|
|
43
|
+
merged.push(t);
|
|
44
|
+
}
|
|
45
|
+
return merged.slice(0, maxTools);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const ORCHESTRATOR_GITHUB = [
|
|
49
|
+
'On GitHub: use run_deferred_task with tool_query "github_" or "mcp_github_" or "gh issue"/"gh pr".',
|
|
50
|
+
'Discuss issues/PRs in chat context; do not call github_* or mcp_github_* tools on this orchestrator.',
|
|
51
|
+
'Skip tool_search when the user clearly names a repo, issue number, or PR.',
|
|
52
|
+
].join('\n');
|
|
53
|
+
|
|
54
|
+
const WORKER_GITHUB = [
|
|
55
|
+
'Prefer `gh` via bash for repo operations when bash is available.',
|
|
56
|
+
'Use mcp_github_* or github_* plugin tools for structured API actions.',
|
|
57
|
+
'Do not use mcp_filesystem_* or unrelated MCP servers to "discover" GitHub.',
|
|
58
|
+
'Summarize outcomes (issue link, PR state) for the orchestrator.',
|
|
59
|
+
].map(line => `- ${line}`).join('\n');
|
|
60
|
+
|
|
61
|
+
export function createGithubAgentPromptContributor(): AgentPromptContributor {
|
|
62
|
+
return {
|
|
63
|
+
platform: 'github',
|
|
64
|
+
|
|
65
|
+
async buildSections(ctx: AgentPromptBuildContext): Promise<AgentPromptSection[] | null> {
|
|
66
|
+
if (ctx.slot === 'orchestrator') {
|
|
67
|
+
if (!ctx.toolSearch) return null;
|
|
68
|
+
return [{
|
|
69
|
+
id: 'platform.github.orchestrator',
|
|
70
|
+
title: '## GitHub',
|
|
71
|
+
body: ORCHESTRATOR_GITHUB,
|
|
72
|
+
priority: 50,
|
|
73
|
+
}];
|
|
74
|
+
}
|
|
75
|
+
if (ctx.slot === 'deferred_worker') {
|
|
76
|
+
const query = ctx.deferred?.toolQuery ?? ctx.deferred?.goal ?? '';
|
|
77
|
+
const goal = ctx.deferred?.goal ?? '';
|
|
78
|
+
if (!isGithubDelegatedTask(query, goal)) return null;
|
|
79
|
+
return [{
|
|
80
|
+
id: 'platform.github.deferred_worker',
|
|
81
|
+
title: '## GitHub(本任务)',
|
|
82
|
+
body: WORKER_GITHUB,
|
|
83
|
+
priority: 50,
|
|
84
|
+
}];
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
matchesDeferredTask(ctx: AgentPromptBuildContext): boolean {
|
|
90
|
+
const query = ctx.deferred?.toolQuery ?? ctx.deferred?.goal ?? ctx.userMessagePreview ?? '';
|
|
91
|
+
const goal = ctx.deferred?.goal ?? ctx.userMessagePreview ?? '';
|
|
92
|
+
return isGithubDelegatedTask(query, goal);
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
selectDeferredTools(query, goal, catalog, maxTools) {
|
|
96
|
+
if (!isGithubDelegatedTask(query, goal)) return null;
|
|
97
|
+
return selectGithubDeferredTools(query, goal, catalog, maxTools);
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GitHub 适配器入口:类型扩展、模型、导出、注册
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
usePlugin,
|
|
6
|
+
type Plugin,
|
|
7
|
+
type Context,
|
|
8
|
+
type ToolFeature,
|
|
9
|
+
type Tool,
|
|
10
|
+
type ToolContext,
|
|
11
|
+
registerAgentPromptContributor,
|
|
12
|
+
unregisterAgentPromptContributor,
|
|
13
|
+
} from 'zhin.js';
|
|
14
|
+
import { createGithubAgentPromptContributor } from './agent-prompt.js';
|
|
5
15
|
import { GitHubAdapter } from './adapter.js';
|
|
6
16
|
import { GhClient } from './gh-client.js';
|
|
17
|
+
import { registerGithubMcp } from './register-github-mcp.js';
|
|
7
18
|
import type { EventType } from './types.js';
|
|
8
19
|
|
|
9
20
|
declare module 'zhin.js' {
|
|
@@ -43,6 +54,8 @@ export { GhClient } from './gh-client.js';
|
|
|
43
54
|
const plugin = usePlugin();
|
|
44
55
|
const { provide, defineModel, useContext, logger } = plugin;
|
|
45
56
|
|
|
57
|
+
registerGithubMcp(plugin);
|
|
58
|
+
|
|
46
59
|
defineModel('github_subscriptions', {
|
|
47
60
|
id: { type: 'integer', primary: true },
|
|
48
61
|
repo: { type: 'text', nullable: false },
|
|
@@ -73,11 +86,13 @@ provide({
|
|
|
73
86
|
name: 'github',
|
|
74
87
|
description: 'GitHub Adapter — Issues/PRs as chat channels, full repo management via gh CLI',
|
|
75
88
|
mounted: async (p: Plugin) => {
|
|
89
|
+
registerAgentPromptContributor(createGithubAgentPromptContributor());
|
|
76
90
|
const adapter = new GitHubAdapter(p);
|
|
77
91
|
await adapter.start();
|
|
78
92
|
return adapter;
|
|
79
93
|
},
|
|
80
94
|
dispose: async (adapter: GitHubAdapter) => {
|
|
95
|
+
unregisterAgentPromptContributor('github');
|
|
81
96
|
await adapter.stop();
|
|
82
97
|
},
|
|
83
98
|
} as Context<'github'>);
|
|
@@ -121,7 +136,6 @@ useContext('tool', 'github', (toolService: ToolFeature, adapter: GitHubAdapter)
|
|
|
121
136
|
},
|
|
122
137
|
required: ['action', 'repo'],
|
|
123
138
|
},
|
|
124
|
-
platforms: ['github'],
|
|
125
139
|
tags: ['github'],
|
|
126
140
|
execute: async (args: Record<string, any>, context?: ToolContext) => {
|
|
127
141
|
const gh = await adapter.getUserOrDefaultAPI(context?.platform, context?.senderId);
|
|
@@ -144,27 +158,6 @@ useContext('tool', 'github', (toolService: ToolFeature, adapter: GitHubAdapter)
|
|
|
144
158
|
}
|
|
145
159
|
},
|
|
146
160
|
},
|
|
147
|
-
// --- Fork ---
|
|
148
|
-
{
|
|
149
|
-
name: 'github_fork',
|
|
150
|
-
description: 'Fork 一个 GitHub 仓库(使用你绑定的 GitHub 账号,未绑定则用 Bot 默认账号)',
|
|
151
|
-
parameters: {
|
|
152
|
-
type: 'object' as const,
|
|
153
|
-
properties: {
|
|
154
|
-
repo: { type: 'string' as const, description: 'owner/repo (必填)' },
|
|
155
|
-
},
|
|
156
|
-
required: ['repo'],
|
|
157
|
-
},
|
|
158
|
-
platforms: ['github'],
|
|
159
|
-
tags: ['github'],
|
|
160
|
-
execute: async (args: Record<string, any>, context?: ToolContext) => {
|
|
161
|
-
const gh = await adapter.getUserOrDefaultAPI(context?.platform, context?.senderId);
|
|
162
|
-
if (!gh) return '❌ 没有可用的 GitHub bot';
|
|
163
|
-
const r = await gh.forkRepo(args.repo);
|
|
164
|
-
if (!r.ok) return `❌ ${r.data?.message || JSON.stringify(r.data)}`;
|
|
165
|
-
return `🍴 已 Fork ${args.repo} → ${r.data.full_name}\n🔗 ${r.data.html_url}`;
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
161
|
// --- Bind (Device Flow) ---
|
|
169
162
|
{
|
|
170
163
|
name: 'github_bind',
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register @modelcontextprotocol/server-github when a PAT is available.
|
|
3
|
+
*/
|
|
4
|
+
import type { AIConfig, Plugin } from 'zhin.js';
|
|
5
|
+
|
|
6
|
+
interface GithubMcpServerEntry {
|
|
7
|
+
name: string;
|
|
8
|
+
transport: 'stdio';
|
|
9
|
+
command: string;
|
|
10
|
+
args: string[];
|
|
11
|
+
env: Record<string, string>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
interface AgentOrchestratorLike {
|
|
15
|
+
mcps: { has(name: string): boolean };
|
|
16
|
+
addMcp(config: GithubMcpServerEntry, scope?: object, source?: string): () => void;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function resolveGithubMcpToken(ai?: AIConfig): string | undefined {
|
|
20
|
+
const fromConfig = ai?.githubMcp?.token?.trim();
|
|
21
|
+
if (fromConfig) return fromConfig;
|
|
22
|
+
return (
|
|
23
|
+
process.env.GITHUB_PERSONAL_ACCESS_TOKEN?.trim() ||
|
|
24
|
+
process.env.GITHUB_TOKEN?.trim() ||
|
|
25
|
+
undefined
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function registerGithubMcp(plugin: Plugin): void {
|
|
30
|
+
const { useContext, root, logger } = plugin;
|
|
31
|
+
|
|
32
|
+
useContext('ai', (ai) => {
|
|
33
|
+
if (!ai?.isReady?.()) return;
|
|
34
|
+
|
|
35
|
+
const orchestrator = root.inject('agent') as AgentOrchestratorLike | undefined;
|
|
36
|
+
if (!orchestrator) return;
|
|
37
|
+
|
|
38
|
+
if (orchestrator.mcps.has('github')) return;
|
|
39
|
+
|
|
40
|
+
const configService = root.inject('config');
|
|
41
|
+
const appConfig = configService?.getPrimary<{ ai?: AIConfig }>() || {};
|
|
42
|
+
const token = resolveGithubMcpToken(appConfig.ai);
|
|
43
|
+
if (!token) {
|
|
44
|
+
logger.debug('[MCP] server-github skipped: set GITHUB_PERSONAL_ACCESS_TOKEN or ai.githubMcp.token');
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return orchestrator.addMcp(
|
|
49
|
+
{
|
|
50
|
+
name: 'github',
|
|
51
|
+
transport: 'stdio',
|
|
52
|
+
command: 'npx',
|
|
53
|
+
args: ['-y', '@modelcontextprotocol/server-github'],
|
|
54
|
+
env: { GITHUB_PERSONAL_ACCESS_TOKEN: token },
|
|
55
|
+
},
|
|
56
|
+
{},
|
|
57
|
+
'adapter-github',
|
|
58
|
+
);
|
|
59
|
+
});
|
|
60
|
+
}
|