@kryptosai/mcp-observatory 1.28.2 → 1.28.3
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/CONTRIBUTORS.md +4 -1
- package/README.md +109 -14
- package/README.zh-CN.md +654 -0
- package/dist/src/adapters/http.js +13 -4
- package/dist/src/adapters/http.js.map +1 -1
- package/dist/src/checks/runtime-profile.d.ts +5 -0
- package/dist/src/checks/runtime-profile.js +214 -0
- package/dist/src/checks/runtime-profile.js.map +1 -0
- package/dist/src/checks/security-rules.js +18 -0
- package/dist/src/checks/security-rules.js.map +1 -1
- package/dist/src/checks/security.js +33 -65
- package/dist/src/checks/security.js.map +1 -1
- package/dist/src/checks/skill-scan.d.ts +46 -0
- package/dist/src/checks/skill-scan.js +665 -0
- package/dist/src/checks/skill-scan.js.map +1 -0
- package/dist/src/cli.js +15 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/enforce.d.ts +12 -0
- package/dist/src/commands/enforce.js +187 -0
- package/dist/src/commands/enforce.js.map +1 -0
- package/dist/src/commands/helpers.d.ts +2 -1
- package/dist/src/commands/helpers.js +9 -1
- package/dist/src/commands/helpers.js.map +1 -1
- package/dist/src/commands/legacy.js +3 -0
- package/dist/src/commands/legacy.js.map +1 -1
- package/dist/src/commands/risk-graph.d.ts +2 -0
- package/dist/src/commands/risk-graph.js +64 -0
- package/dist/src/commands/risk-graph.js.map +1 -0
- package/dist/src/commands/scan.js +36 -9
- package/dist/src/commands/scan.js.map +1 -1
- package/dist/src/commands/score.js.map +1 -1
- package/dist/src/commands/skill-scan.d.ts +6 -0
- package/dist/src/commands/skill-scan.js +62 -0
- package/dist/src/commands/skill-scan.js.map +1 -0
- package/dist/src/commands/test.js +13 -0
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/commands/watch.js +13 -8
- package/dist/src/commands/watch.js.map +1 -1
- package/dist/src/discovery.d.ts +15 -1
- package/dist/src/discovery.js +251 -35
- package/dist/src/discovery.js.map +1 -1
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/receipt.d.ts +4 -1
- package/dist/src/receipt.js +85 -0
- package/dist/src/receipt.js.map +1 -1
- package/dist/src/reporters/markdown.js +39 -0
- package/dist/src/reporters/markdown.js.map +1 -1
- package/dist/src/reporters/terminal.d.ts +2 -0
- package/dist/src/reporters/terminal.js +55 -2
- package/dist/src/reporters/terminal.js.map +1 -1
- package/dist/src/risk-graph.d.ts +64 -0
- package/dist/src/risk-graph.js +452 -0
- package/dist/src/risk-graph.js.map +1 -0
- package/dist/src/runner.js +6 -0
- package/dist/src/runner.js.map +1 -1
- package/dist/src/server.d.ts +1 -3
- package/dist/src/server.js +29 -645
- package/dist/src/server.js.map +1 -1
- package/dist/src/storage.js +13 -9
- package/dist/src/storage.js.map +1 -1
- package/dist/src/telemetry.d.ts +7 -0
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/tools/check-server.d.ts +27 -0
- package/dist/src/tools/check-server.js +46 -0
- package/dist/src/tools/check-server.js.map +1 -0
- package/dist/src/tools/ci-report.d.ts +21 -0
- package/dist/src/tools/ci-report.js +38 -0
- package/dist/src/tools/ci-report.js.map +1 -0
- package/dist/src/tools/diff-runs.d.ts +28 -0
- package/dist/src/tools/diff-runs.js +39 -0
- package/dist/src/tools/diff-runs.js.map +1 -0
- package/dist/src/tools/get-history.d.ts +21 -0
- package/dist/src/tools/get-history.js +37 -0
- package/dist/src/tools/get-history.js.map +1 -0
- package/dist/src/tools/get-last-run.d.ts +21 -0
- package/dist/src/tools/get-last-run.js +47 -0
- package/dist/src/tools/get-last-run.js.map +1 -0
- package/dist/src/tools/helpers.d.ts +8 -0
- package/dist/src/tools/helpers.js +32 -0
- package/dist/src/tools/helpers.js.map +1 -0
- package/dist/src/tools/lock-verify.d.ts +21 -0
- package/dist/src/tools/lock-verify.js +47 -0
- package/dist/src/tools/lock-verify.js.map +1 -0
- package/dist/src/tools/record.d.ts +23 -0
- package/dist/src/tools/record.js +48 -0
- package/dist/src/tools/record.js.map +1 -0
- package/dist/src/tools/replay.d.ts +21 -0
- package/dist/src/tools/replay.js +54 -0
- package/dist/src/tools/replay.js.map +1 -0
- package/dist/src/tools/scan.d.ts +18 -0
- package/dist/src/tools/scan.js +43 -0
- package/dist/src/tools/scan.js.map +1 -0
- package/dist/src/tools/score-server.d.ts +23 -0
- package/dist/src/tools/score-server.js +53 -0
- package/dist/src/tools/score-server.js.map +1 -0
- package/dist/src/tools/suggest-servers.d.ts +21 -0
- package/dist/src/tools/suggest-servers.js +114 -0
- package/dist/src/tools/suggest-servers.js.map +1 -0
- package/dist/src/tools/verify-tool.d.ts +25 -0
- package/dist/src/tools/verify-tool.js +48 -0
- package/dist/src/tools/verify-tool.js.map +1 -0
- package/dist/src/tools/watch.d.ts +23 -0
- package/dist/src/tools/watch.js +67 -0
- package/dist/src/tools/watch.js.map +1 -0
- package/dist/src/types.d.ts +26 -1
- package/dist/src/utils/security.d.ts +3 -0
- package/dist/src/utils/security.js +37 -0
- package/dist/src/utils/security.js.map +1 -0
- package/dist/src/validate.d.ts +1 -0
- package/dist/src/validate.js +119 -35
- package/dist/src/validate.js.map +1 -1
- package/docs/agent-tasks.md +1 -1
- package/docs/commercial-boundary.md +9 -1
- package/docs/contributor-recognition.md +2 -0
- package/docs/demo.svg +1 -59
- package/docs/mcp-receipts.md +9 -0
- package/docs/mcp-server-safety-index.md +21 -16
- package/docs/metrics-dashboard.md +17 -1
- package/docs/private-mcp-fleet-risk-graph.md +69 -0
- package/docs/receipt-graph.md +118 -31
- package/docs/safety-index/artifacts/chrome-devtools-mcp-server.json +1745 -0
- package/docs/safety-index/artifacts/chrome-devtools-mcp-server.md +169 -0
- package/docs/safety-index/artifacts/filesystem-mcp-server.json +786 -0
- package/docs/safety-index/artifacts/filesystem-mcp-server.md +169 -0
- package/docs/safety-index/artifacts/github-mcp-server.json +1707 -0
- package/docs/safety-index/artifacts/github-mcp-server.md +169 -0
- package/docs/safety-index/mcp-risk-graph.html +167 -0
- package/docs/safety-index/mcp-risk-graph.json +669 -0
- package/docs/safety-index/mcp-risk-graph.md +47 -0
- package/docs/safety-index/targets.json +57 -0
- package/docs/sample-private-fleet-risk-graph.md +90 -0
- package/package.json +21 -11
|
@@ -0,0 +1,1707 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifactType": "run",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"gate": "pass",
|
|
5
|
+
"runId": "run_2026-07-08T213518919Z_6d8ffd44",
|
|
6
|
+
"createdAt": "2026-07-08T21:35:18.919Z",
|
|
7
|
+
"toolVersion": "1.28.2",
|
|
8
|
+
"target": {
|
|
9
|
+
"targetId": "github-mcp-server",
|
|
10
|
+
"adapter": "local-process",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"@modelcontextprotocol/server-github"
|
|
15
|
+
],
|
|
16
|
+
"cwd": ".",
|
|
17
|
+
"metadata": {
|
|
18
|
+
"package": "@modelcontextprotocol/server-github",
|
|
19
|
+
"purpose": "mcp-safety-index",
|
|
20
|
+
"riskClass": "Repository mutation and PR control",
|
|
21
|
+
"failureClass": "Write/merge tool boundary",
|
|
22
|
+
"whyItMatters": "Exposes 26 tools to agents, including file writes, branch creation, issue/PR creation, and PR merges across any repo a token can reach — high-stakes write access that needs a visible boundary before an agent is trusted with it."
|
|
23
|
+
},
|
|
24
|
+
"serverName": "github-mcp-server",
|
|
25
|
+
"serverVersion": "0.6.2"
|
|
26
|
+
},
|
|
27
|
+
"environment": {
|
|
28
|
+
"platform": "win32 10.0.26200",
|
|
29
|
+
"nodeVersion": "v24.15.0"
|
|
30
|
+
},
|
|
31
|
+
"summary": {
|
|
32
|
+
"total": 8,
|
|
33
|
+
"pass": 2,
|
|
34
|
+
"fail": 0,
|
|
35
|
+
"partial": 4,
|
|
36
|
+
"unsupported": 2,
|
|
37
|
+
"flaky": 0,
|
|
38
|
+
"skipped": 0,
|
|
39
|
+
"gate": "pass"
|
|
40
|
+
},
|
|
41
|
+
"checks": [
|
|
42
|
+
{
|
|
43
|
+
"id": "tools",
|
|
44
|
+
"capability": "tools",
|
|
45
|
+
"status": "pass",
|
|
46
|
+
"durationMs": 4.374199999998382,
|
|
47
|
+
"message": "Advertised capability responded with the minimal expected shape (26 items).",
|
|
48
|
+
"evidence": [
|
|
49
|
+
{
|
|
50
|
+
"endpoint": "tools/list",
|
|
51
|
+
"advertised": true,
|
|
52
|
+
"responded": true,
|
|
53
|
+
"minimalShapePresent": true,
|
|
54
|
+
"itemCount": 26,
|
|
55
|
+
"identifiers": [
|
|
56
|
+
"create_or_update_file",
|
|
57
|
+
"search_repositories",
|
|
58
|
+
"create_repository",
|
|
59
|
+
"get_file_contents",
|
|
60
|
+
"push_files",
|
|
61
|
+
"create_issue",
|
|
62
|
+
"create_pull_request",
|
|
63
|
+
"fork_repository",
|
|
64
|
+
"create_branch",
|
|
65
|
+
"list_commits",
|
|
66
|
+
"list_issues",
|
|
67
|
+
"update_issue",
|
|
68
|
+
"add_issue_comment",
|
|
69
|
+
"search_code",
|
|
70
|
+
"search_issues",
|
|
71
|
+
"search_users",
|
|
72
|
+
"get_issue",
|
|
73
|
+
"get_pull_request",
|
|
74
|
+
"list_pull_requests",
|
|
75
|
+
"create_pull_request_review",
|
|
76
|
+
"merge_pull_request",
|
|
77
|
+
"get_pull_request_files",
|
|
78
|
+
"get_pull_request_status",
|
|
79
|
+
"update_pull_request_branch",
|
|
80
|
+
"get_pull_request_comments",
|
|
81
|
+
"get_pull_request_reviews"
|
|
82
|
+
],
|
|
83
|
+
"diagnostics": [
|
|
84
|
+
"GitHub MCP Server running on stdio"
|
|
85
|
+
],
|
|
86
|
+
"schemas": {
|
|
87
|
+
"create_or_update_file": {
|
|
88
|
+
"type": "object",
|
|
89
|
+
"properties": {
|
|
90
|
+
"owner": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"description": "Repository owner (username or organization)"
|
|
93
|
+
},
|
|
94
|
+
"repo": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"description": "Repository name"
|
|
97
|
+
},
|
|
98
|
+
"path": {
|
|
99
|
+
"type": "string",
|
|
100
|
+
"description": "Path where to create/update the file"
|
|
101
|
+
},
|
|
102
|
+
"content": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"description": "Content of the file"
|
|
105
|
+
},
|
|
106
|
+
"message": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"description": "Commit message"
|
|
109
|
+
},
|
|
110
|
+
"branch": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"description": "Branch to create/update the file in"
|
|
113
|
+
},
|
|
114
|
+
"sha": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"description": "SHA of the file being replaced (required when updating existing files)"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"required": [
|
|
120
|
+
"owner",
|
|
121
|
+
"repo",
|
|
122
|
+
"path",
|
|
123
|
+
"content",
|
|
124
|
+
"message",
|
|
125
|
+
"branch"
|
|
126
|
+
],
|
|
127
|
+
"additionalProperties": false,
|
|
128
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
129
|
+
},
|
|
130
|
+
"search_repositories": {
|
|
131
|
+
"type": "object",
|
|
132
|
+
"properties": {
|
|
133
|
+
"query": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"description": "Search query (see GitHub search syntax)"
|
|
136
|
+
},
|
|
137
|
+
"page": {
|
|
138
|
+
"type": "number",
|
|
139
|
+
"description": "Page number for pagination (default: 1)"
|
|
140
|
+
},
|
|
141
|
+
"perPage": {
|
|
142
|
+
"type": "number",
|
|
143
|
+
"description": "Number of results per page (default: 30, max: 100)"
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"required": [
|
|
147
|
+
"query"
|
|
148
|
+
],
|
|
149
|
+
"additionalProperties": false,
|
|
150
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
151
|
+
},
|
|
152
|
+
"create_repository": {
|
|
153
|
+
"type": "object",
|
|
154
|
+
"properties": {
|
|
155
|
+
"name": {
|
|
156
|
+
"type": "string",
|
|
157
|
+
"description": "Repository name"
|
|
158
|
+
},
|
|
159
|
+
"description": {
|
|
160
|
+
"type": "string",
|
|
161
|
+
"description": "Repository description"
|
|
162
|
+
},
|
|
163
|
+
"private": {
|
|
164
|
+
"type": "boolean",
|
|
165
|
+
"description": "Whether the repository should be private"
|
|
166
|
+
},
|
|
167
|
+
"autoInit": {
|
|
168
|
+
"type": "boolean",
|
|
169
|
+
"description": "Initialize with README.md"
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"required": [
|
|
173
|
+
"name"
|
|
174
|
+
],
|
|
175
|
+
"additionalProperties": false,
|
|
176
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
177
|
+
},
|
|
178
|
+
"get_file_contents": {
|
|
179
|
+
"type": "object",
|
|
180
|
+
"properties": {
|
|
181
|
+
"owner": {
|
|
182
|
+
"type": "string",
|
|
183
|
+
"description": "Repository owner (username or organization)"
|
|
184
|
+
},
|
|
185
|
+
"repo": {
|
|
186
|
+
"type": "string",
|
|
187
|
+
"description": "Repository name"
|
|
188
|
+
},
|
|
189
|
+
"path": {
|
|
190
|
+
"type": "string",
|
|
191
|
+
"description": "Path to the file or directory"
|
|
192
|
+
},
|
|
193
|
+
"branch": {
|
|
194
|
+
"type": "string",
|
|
195
|
+
"description": "Branch to get contents from"
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"required": [
|
|
199
|
+
"owner",
|
|
200
|
+
"repo",
|
|
201
|
+
"path"
|
|
202
|
+
],
|
|
203
|
+
"additionalProperties": false,
|
|
204
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
205
|
+
},
|
|
206
|
+
"push_files": {
|
|
207
|
+
"type": "object",
|
|
208
|
+
"properties": {
|
|
209
|
+
"owner": {
|
|
210
|
+
"type": "string",
|
|
211
|
+
"description": "Repository owner (username or organization)"
|
|
212
|
+
},
|
|
213
|
+
"repo": {
|
|
214
|
+
"type": "string",
|
|
215
|
+
"description": "Repository name"
|
|
216
|
+
},
|
|
217
|
+
"branch": {
|
|
218
|
+
"type": "string",
|
|
219
|
+
"description": "Branch to push to (e.g., 'main' or 'master')"
|
|
220
|
+
},
|
|
221
|
+
"files": {
|
|
222
|
+
"type": "array",
|
|
223
|
+
"items": {
|
|
224
|
+
"type": "object",
|
|
225
|
+
"properties": {
|
|
226
|
+
"path": {
|
|
227
|
+
"type": "string"
|
|
228
|
+
},
|
|
229
|
+
"content": {
|
|
230
|
+
"type": "string"
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
"required": [
|
|
234
|
+
"path",
|
|
235
|
+
"content"
|
|
236
|
+
],
|
|
237
|
+
"additionalProperties": false
|
|
238
|
+
},
|
|
239
|
+
"description": "Array of files to push"
|
|
240
|
+
},
|
|
241
|
+
"message": {
|
|
242
|
+
"type": "string",
|
|
243
|
+
"description": "Commit message"
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"required": [
|
|
247
|
+
"owner",
|
|
248
|
+
"repo",
|
|
249
|
+
"branch",
|
|
250
|
+
"files",
|
|
251
|
+
"message"
|
|
252
|
+
],
|
|
253
|
+
"additionalProperties": false,
|
|
254
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
255
|
+
},
|
|
256
|
+
"create_issue": {
|
|
257
|
+
"type": "object",
|
|
258
|
+
"properties": {
|
|
259
|
+
"owner": {
|
|
260
|
+
"type": "string"
|
|
261
|
+
},
|
|
262
|
+
"repo": {
|
|
263
|
+
"type": "string"
|
|
264
|
+
},
|
|
265
|
+
"title": {
|
|
266
|
+
"type": "string"
|
|
267
|
+
},
|
|
268
|
+
"body": {
|
|
269
|
+
"type": "string"
|
|
270
|
+
},
|
|
271
|
+
"assignees": {
|
|
272
|
+
"type": "array",
|
|
273
|
+
"items": {
|
|
274
|
+
"type": "string"
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"milestone": {
|
|
278
|
+
"type": "number"
|
|
279
|
+
},
|
|
280
|
+
"labels": {
|
|
281
|
+
"type": "array",
|
|
282
|
+
"items": {
|
|
283
|
+
"type": "string"
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
"required": [
|
|
288
|
+
"owner",
|
|
289
|
+
"repo",
|
|
290
|
+
"title"
|
|
291
|
+
],
|
|
292
|
+
"additionalProperties": false,
|
|
293
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
294
|
+
},
|
|
295
|
+
"create_pull_request": {
|
|
296
|
+
"type": "object",
|
|
297
|
+
"properties": {
|
|
298
|
+
"owner": {
|
|
299
|
+
"type": "string",
|
|
300
|
+
"description": "Repository owner (username or organization)"
|
|
301
|
+
},
|
|
302
|
+
"repo": {
|
|
303
|
+
"type": "string",
|
|
304
|
+
"description": "Repository name"
|
|
305
|
+
},
|
|
306
|
+
"title": {
|
|
307
|
+
"type": "string",
|
|
308
|
+
"description": "Pull request title"
|
|
309
|
+
},
|
|
310
|
+
"body": {
|
|
311
|
+
"type": "string",
|
|
312
|
+
"description": "Pull request body/description"
|
|
313
|
+
},
|
|
314
|
+
"head": {
|
|
315
|
+
"type": "string",
|
|
316
|
+
"description": "The name of the branch where your changes are implemented"
|
|
317
|
+
},
|
|
318
|
+
"base": {
|
|
319
|
+
"type": "string",
|
|
320
|
+
"description": "The name of the branch you want the changes pulled into"
|
|
321
|
+
},
|
|
322
|
+
"draft": {
|
|
323
|
+
"type": "boolean",
|
|
324
|
+
"description": "Whether to create the pull request as a draft"
|
|
325
|
+
},
|
|
326
|
+
"maintainer_can_modify": {
|
|
327
|
+
"type": "boolean",
|
|
328
|
+
"description": "Whether maintainers can modify the pull request"
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
"required": [
|
|
332
|
+
"owner",
|
|
333
|
+
"repo",
|
|
334
|
+
"title",
|
|
335
|
+
"head",
|
|
336
|
+
"base"
|
|
337
|
+
],
|
|
338
|
+
"additionalProperties": false,
|
|
339
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
340
|
+
},
|
|
341
|
+
"fork_repository": {
|
|
342
|
+
"type": "object",
|
|
343
|
+
"properties": {
|
|
344
|
+
"owner": {
|
|
345
|
+
"type": "string",
|
|
346
|
+
"description": "Repository owner (username or organization)"
|
|
347
|
+
},
|
|
348
|
+
"repo": {
|
|
349
|
+
"type": "string",
|
|
350
|
+
"description": "Repository name"
|
|
351
|
+
},
|
|
352
|
+
"organization": {
|
|
353
|
+
"type": "string",
|
|
354
|
+
"description": "Optional: organization to fork to (defaults to your personal account)"
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
"required": [
|
|
358
|
+
"owner",
|
|
359
|
+
"repo"
|
|
360
|
+
],
|
|
361
|
+
"additionalProperties": false,
|
|
362
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
363
|
+
},
|
|
364
|
+
"create_branch": {
|
|
365
|
+
"type": "object",
|
|
366
|
+
"properties": {
|
|
367
|
+
"owner": {
|
|
368
|
+
"type": "string",
|
|
369
|
+
"description": "Repository owner (username or organization)"
|
|
370
|
+
},
|
|
371
|
+
"repo": {
|
|
372
|
+
"type": "string",
|
|
373
|
+
"description": "Repository name"
|
|
374
|
+
},
|
|
375
|
+
"branch": {
|
|
376
|
+
"type": "string",
|
|
377
|
+
"description": "Name for the new branch"
|
|
378
|
+
},
|
|
379
|
+
"from_branch": {
|
|
380
|
+
"type": "string",
|
|
381
|
+
"description": "Optional: source branch to create from (defaults to the repository's default branch)"
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
"required": [
|
|
385
|
+
"owner",
|
|
386
|
+
"repo",
|
|
387
|
+
"branch"
|
|
388
|
+
],
|
|
389
|
+
"additionalProperties": false,
|
|
390
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
391
|
+
},
|
|
392
|
+
"list_commits": {
|
|
393
|
+
"type": "object",
|
|
394
|
+
"properties": {
|
|
395
|
+
"owner": {
|
|
396
|
+
"type": "string"
|
|
397
|
+
},
|
|
398
|
+
"repo": {
|
|
399
|
+
"type": "string"
|
|
400
|
+
},
|
|
401
|
+
"sha": {
|
|
402
|
+
"type": "string"
|
|
403
|
+
},
|
|
404
|
+
"page": {
|
|
405
|
+
"type": "number"
|
|
406
|
+
},
|
|
407
|
+
"perPage": {
|
|
408
|
+
"type": "number"
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
"required": [
|
|
412
|
+
"owner",
|
|
413
|
+
"repo"
|
|
414
|
+
],
|
|
415
|
+
"additionalProperties": false,
|
|
416
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
417
|
+
},
|
|
418
|
+
"list_issues": {
|
|
419
|
+
"type": "object",
|
|
420
|
+
"properties": {
|
|
421
|
+
"owner": {
|
|
422
|
+
"type": "string"
|
|
423
|
+
},
|
|
424
|
+
"repo": {
|
|
425
|
+
"type": "string"
|
|
426
|
+
},
|
|
427
|
+
"direction": {
|
|
428
|
+
"type": "string",
|
|
429
|
+
"enum": [
|
|
430
|
+
"asc",
|
|
431
|
+
"desc"
|
|
432
|
+
]
|
|
433
|
+
},
|
|
434
|
+
"labels": {
|
|
435
|
+
"type": "array",
|
|
436
|
+
"items": {
|
|
437
|
+
"type": "string"
|
|
438
|
+
}
|
|
439
|
+
},
|
|
440
|
+
"page": {
|
|
441
|
+
"type": "number"
|
|
442
|
+
},
|
|
443
|
+
"per_page": {
|
|
444
|
+
"type": "number"
|
|
445
|
+
},
|
|
446
|
+
"since": {
|
|
447
|
+
"type": "string"
|
|
448
|
+
},
|
|
449
|
+
"sort": {
|
|
450
|
+
"type": "string",
|
|
451
|
+
"enum": [
|
|
452
|
+
"created",
|
|
453
|
+
"updated",
|
|
454
|
+
"comments"
|
|
455
|
+
]
|
|
456
|
+
},
|
|
457
|
+
"state": {
|
|
458
|
+
"type": "string",
|
|
459
|
+
"enum": [
|
|
460
|
+
"open",
|
|
461
|
+
"closed",
|
|
462
|
+
"all"
|
|
463
|
+
]
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
"required": [
|
|
467
|
+
"owner",
|
|
468
|
+
"repo"
|
|
469
|
+
],
|
|
470
|
+
"additionalProperties": false,
|
|
471
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
472
|
+
},
|
|
473
|
+
"update_issue": {
|
|
474
|
+
"type": "object",
|
|
475
|
+
"properties": {
|
|
476
|
+
"owner": {
|
|
477
|
+
"type": "string"
|
|
478
|
+
},
|
|
479
|
+
"repo": {
|
|
480
|
+
"type": "string"
|
|
481
|
+
},
|
|
482
|
+
"issue_number": {
|
|
483
|
+
"type": "number"
|
|
484
|
+
},
|
|
485
|
+
"title": {
|
|
486
|
+
"type": "string"
|
|
487
|
+
},
|
|
488
|
+
"body": {
|
|
489
|
+
"type": "string"
|
|
490
|
+
},
|
|
491
|
+
"assignees": {
|
|
492
|
+
"type": "array",
|
|
493
|
+
"items": {
|
|
494
|
+
"type": "string"
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
"milestone": {
|
|
498
|
+
"type": "number"
|
|
499
|
+
},
|
|
500
|
+
"labels": {
|
|
501
|
+
"type": "array",
|
|
502
|
+
"items": {
|
|
503
|
+
"type": "string"
|
|
504
|
+
}
|
|
505
|
+
},
|
|
506
|
+
"state": {
|
|
507
|
+
"type": "string",
|
|
508
|
+
"enum": [
|
|
509
|
+
"open",
|
|
510
|
+
"closed"
|
|
511
|
+
]
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
"required": [
|
|
515
|
+
"owner",
|
|
516
|
+
"repo",
|
|
517
|
+
"issue_number"
|
|
518
|
+
],
|
|
519
|
+
"additionalProperties": false,
|
|
520
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
521
|
+
},
|
|
522
|
+
"add_issue_comment": {
|
|
523
|
+
"type": "object",
|
|
524
|
+
"properties": {
|
|
525
|
+
"owner": {
|
|
526
|
+
"type": "string"
|
|
527
|
+
},
|
|
528
|
+
"repo": {
|
|
529
|
+
"type": "string"
|
|
530
|
+
},
|
|
531
|
+
"issue_number": {
|
|
532
|
+
"type": "number"
|
|
533
|
+
},
|
|
534
|
+
"body": {
|
|
535
|
+
"type": "string"
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
"required": [
|
|
539
|
+
"owner",
|
|
540
|
+
"repo",
|
|
541
|
+
"issue_number",
|
|
542
|
+
"body"
|
|
543
|
+
],
|
|
544
|
+
"additionalProperties": false,
|
|
545
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
546
|
+
},
|
|
547
|
+
"search_code": {
|
|
548
|
+
"type": "object",
|
|
549
|
+
"properties": {
|
|
550
|
+
"q": {
|
|
551
|
+
"type": "string"
|
|
552
|
+
},
|
|
553
|
+
"order": {
|
|
554
|
+
"type": "string",
|
|
555
|
+
"enum": [
|
|
556
|
+
"asc",
|
|
557
|
+
"desc"
|
|
558
|
+
]
|
|
559
|
+
},
|
|
560
|
+
"page": {
|
|
561
|
+
"type": "number",
|
|
562
|
+
"minimum": 1
|
|
563
|
+
},
|
|
564
|
+
"per_page": {
|
|
565
|
+
"type": "number",
|
|
566
|
+
"minimum": 1,
|
|
567
|
+
"maximum": 100
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"required": [
|
|
571
|
+
"q"
|
|
572
|
+
],
|
|
573
|
+
"additionalProperties": false,
|
|
574
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
575
|
+
},
|
|
576
|
+
"search_issues": {
|
|
577
|
+
"type": "object",
|
|
578
|
+
"properties": {
|
|
579
|
+
"q": {
|
|
580
|
+
"type": "string"
|
|
581
|
+
},
|
|
582
|
+
"order": {
|
|
583
|
+
"type": "string",
|
|
584
|
+
"enum": [
|
|
585
|
+
"asc",
|
|
586
|
+
"desc"
|
|
587
|
+
]
|
|
588
|
+
},
|
|
589
|
+
"page": {
|
|
590
|
+
"type": "number",
|
|
591
|
+
"minimum": 1
|
|
592
|
+
},
|
|
593
|
+
"per_page": {
|
|
594
|
+
"type": "number",
|
|
595
|
+
"minimum": 1,
|
|
596
|
+
"maximum": 100
|
|
597
|
+
},
|
|
598
|
+
"sort": {
|
|
599
|
+
"type": "string",
|
|
600
|
+
"enum": [
|
|
601
|
+
"comments",
|
|
602
|
+
"reactions",
|
|
603
|
+
"reactions-+1",
|
|
604
|
+
"reactions--1",
|
|
605
|
+
"reactions-smile",
|
|
606
|
+
"reactions-thinking_face",
|
|
607
|
+
"reactions-heart",
|
|
608
|
+
"reactions-tada",
|
|
609
|
+
"interactions",
|
|
610
|
+
"created",
|
|
611
|
+
"updated"
|
|
612
|
+
]
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
"required": [
|
|
616
|
+
"q"
|
|
617
|
+
],
|
|
618
|
+
"additionalProperties": false,
|
|
619
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
620
|
+
},
|
|
621
|
+
"search_users": {
|
|
622
|
+
"type": "object",
|
|
623
|
+
"properties": {
|
|
624
|
+
"q": {
|
|
625
|
+
"type": "string"
|
|
626
|
+
},
|
|
627
|
+
"order": {
|
|
628
|
+
"type": "string",
|
|
629
|
+
"enum": [
|
|
630
|
+
"asc",
|
|
631
|
+
"desc"
|
|
632
|
+
]
|
|
633
|
+
},
|
|
634
|
+
"page": {
|
|
635
|
+
"type": "number",
|
|
636
|
+
"minimum": 1
|
|
637
|
+
},
|
|
638
|
+
"per_page": {
|
|
639
|
+
"type": "number",
|
|
640
|
+
"minimum": 1,
|
|
641
|
+
"maximum": 100
|
|
642
|
+
},
|
|
643
|
+
"sort": {
|
|
644
|
+
"type": "string",
|
|
645
|
+
"enum": [
|
|
646
|
+
"followers",
|
|
647
|
+
"repositories",
|
|
648
|
+
"joined"
|
|
649
|
+
]
|
|
650
|
+
}
|
|
651
|
+
},
|
|
652
|
+
"required": [
|
|
653
|
+
"q"
|
|
654
|
+
],
|
|
655
|
+
"additionalProperties": false,
|
|
656
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
657
|
+
},
|
|
658
|
+
"get_issue": {
|
|
659
|
+
"type": "object",
|
|
660
|
+
"properties": {
|
|
661
|
+
"owner": {
|
|
662
|
+
"type": "string"
|
|
663
|
+
},
|
|
664
|
+
"repo": {
|
|
665
|
+
"type": "string"
|
|
666
|
+
},
|
|
667
|
+
"issue_number": {
|
|
668
|
+
"type": "number"
|
|
669
|
+
}
|
|
670
|
+
},
|
|
671
|
+
"required": [
|
|
672
|
+
"owner",
|
|
673
|
+
"repo",
|
|
674
|
+
"issue_number"
|
|
675
|
+
],
|
|
676
|
+
"additionalProperties": false,
|
|
677
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
678
|
+
},
|
|
679
|
+
"get_pull_request": {
|
|
680
|
+
"type": "object",
|
|
681
|
+
"properties": {
|
|
682
|
+
"owner": {
|
|
683
|
+
"type": "string",
|
|
684
|
+
"description": "Repository owner (username or organization)"
|
|
685
|
+
},
|
|
686
|
+
"repo": {
|
|
687
|
+
"type": "string",
|
|
688
|
+
"description": "Repository name"
|
|
689
|
+
},
|
|
690
|
+
"pull_number": {
|
|
691
|
+
"type": "number",
|
|
692
|
+
"description": "Pull request number"
|
|
693
|
+
}
|
|
694
|
+
},
|
|
695
|
+
"required": [
|
|
696
|
+
"owner",
|
|
697
|
+
"repo",
|
|
698
|
+
"pull_number"
|
|
699
|
+
],
|
|
700
|
+
"additionalProperties": false,
|
|
701
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
702
|
+
},
|
|
703
|
+
"list_pull_requests": {
|
|
704
|
+
"type": "object",
|
|
705
|
+
"properties": {
|
|
706
|
+
"owner": {
|
|
707
|
+
"type": "string",
|
|
708
|
+
"description": "Repository owner (username or organization)"
|
|
709
|
+
},
|
|
710
|
+
"repo": {
|
|
711
|
+
"type": "string",
|
|
712
|
+
"description": "Repository name"
|
|
713
|
+
},
|
|
714
|
+
"state": {
|
|
715
|
+
"type": "string",
|
|
716
|
+
"enum": [
|
|
717
|
+
"open",
|
|
718
|
+
"closed",
|
|
719
|
+
"all"
|
|
720
|
+
],
|
|
721
|
+
"description": "State of the pull requests to return"
|
|
722
|
+
},
|
|
723
|
+
"head": {
|
|
724
|
+
"type": "string",
|
|
725
|
+
"description": "Filter by head user or head organization and branch name"
|
|
726
|
+
},
|
|
727
|
+
"base": {
|
|
728
|
+
"type": "string",
|
|
729
|
+
"description": "Filter by base branch name"
|
|
730
|
+
},
|
|
731
|
+
"sort": {
|
|
732
|
+
"type": "string",
|
|
733
|
+
"enum": [
|
|
734
|
+
"created",
|
|
735
|
+
"updated",
|
|
736
|
+
"popularity",
|
|
737
|
+
"long-running"
|
|
738
|
+
],
|
|
739
|
+
"description": "What to sort results by"
|
|
740
|
+
},
|
|
741
|
+
"direction": {
|
|
742
|
+
"type": "string",
|
|
743
|
+
"enum": [
|
|
744
|
+
"asc",
|
|
745
|
+
"desc"
|
|
746
|
+
],
|
|
747
|
+
"description": "The direction of the sort"
|
|
748
|
+
},
|
|
749
|
+
"per_page": {
|
|
750
|
+
"type": "number",
|
|
751
|
+
"description": "Results per page (max 100)"
|
|
752
|
+
},
|
|
753
|
+
"page": {
|
|
754
|
+
"type": "number",
|
|
755
|
+
"description": "Page number of the results"
|
|
756
|
+
}
|
|
757
|
+
},
|
|
758
|
+
"required": [
|
|
759
|
+
"owner",
|
|
760
|
+
"repo"
|
|
761
|
+
],
|
|
762
|
+
"additionalProperties": false,
|
|
763
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
764
|
+
},
|
|
765
|
+
"create_pull_request_review": {
|
|
766
|
+
"type": "object",
|
|
767
|
+
"properties": {
|
|
768
|
+
"owner": {
|
|
769
|
+
"type": "string",
|
|
770
|
+
"description": "Repository owner (username or organization)"
|
|
771
|
+
},
|
|
772
|
+
"repo": {
|
|
773
|
+
"type": "string",
|
|
774
|
+
"description": "Repository name"
|
|
775
|
+
},
|
|
776
|
+
"pull_number": {
|
|
777
|
+
"type": "number",
|
|
778
|
+
"description": "Pull request number"
|
|
779
|
+
},
|
|
780
|
+
"commit_id": {
|
|
781
|
+
"type": "string",
|
|
782
|
+
"description": "The SHA of the commit that needs a review"
|
|
783
|
+
},
|
|
784
|
+
"body": {
|
|
785
|
+
"type": "string",
|
|
786
|
+
"description": "The body text of the review"
|
|
787
|
+
},
|
|
788
|
+
"event": {
|
|
789
|
+
"type": "string",
|
|
790
|
+
"enum": [
|
|
791
|
+
"APPROVE",
|
|
792
|
+
"REQUEST_CHANGES",
|
|
793
|
+
"COMMENT"
|
|
794
|
+
],
|
|
795
|
+
"description": "The review action to perform"
|
|
796
|
+
},
|
|
797
|
+
"comments": {
|
|
798
|
+
"type": "array",
|
|
799
|
+
"items": {
|
|
800
|
+
"anyOf": [
|
|
801
|
+
{
|
|
802
|
+
"type": "object",
|
|
803
|
+
"properties": {
|
|
804
|
+
"path": {
|
|
805
|
+
"type": "string",
|
|
806
|
+
"description": "The relative path to the file being commented on"
|
|
807
|
+
},
|
|
808
|
+
"position": {
|
|
809
|
+
"type": "number",
|
|
810
|
+
"description": "The position in the diff where you want to add a review comment"
|
|
811
|
+
},
|
|
812
|
+
"body": {
|
|
813
|
+
"type": "string",
|
|
814
|
+
"description": "Text of the review comment"
|
|
815
|
+
}
|
|
816
|
+
},
|
|
817
|
+
"required": [
|
|
818
|
+
"path",
|
|
819
|
+
"position",
|
|
820
|
+
"body"
|
|
821
|
+
],
|
|
822
|
+
"additionalProperties": false
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
"type": "object",
|
|
826
|
+
"properties": {
|
|
827
|
+
"path": {
|
|
828
|
+
"type": "string",
|
|
829
|
+
"description": "The relative path to the file being commented on"
|
|
830
|
+
},
|
|
831
|
+
"line": {
|
|
832
|
+
"type": "number",
|
|
833
|
+
"description": "The line number in the file where you want to add a review comment"
|
|
834
|
+
},
|
|
835
|
+
"body": {
|
|
836
|
+
"type": "string",
|
|
837
|
+
"description": "Text of the review comment"
|
|
838
|
+
}
|
|
839
|
+
},
|
|
840
|
+
"required": [
|
|
841
|
+
"path",
|
|
842
|
+
"line",
|
|
843
|
+
"body"
|
|
844
|
+
],
|
|
845
|
+
"additionalProperties": false
|
|
846
|
+
}
|
|
847
|
+
]
|
|
848
|
+
},
|
|
849
|
+
"description": "Comments to post as part of the review (specify either position or line, not both)"
|
|
850
|
+
}
|
|
851
|
+
},
|
|
852
|
+
"required": [
|
|
853
|
+
"owner",
|
|
854
|
+
"repo",
|
|
855
|
+
"pull_number",
|
|
856
|
+
"body",
|
|
857
|
+
"event"
|
|
858
|
+
],
|
|
859
|
+
"additionalProperties": false,
|
|
860
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
861
|
+
},
|
|
862
|
+
"merge_pull_request": {
|
|
863
|
+
"type": "object",
|
|
864
|
+
"properties": {
|
|
865
|
+
"owner": {
|
|
866
|
+
"type": "string",
|
|
867
|
+
"description": "Repository owner (username or organization)"
|
|
868
|
+
},
|
|
869
|
+
"repo": {
|
|
870
|
+
"type": "string",
|
|
871
|
+
"description": "Repository name"
|
|
872
|
+
},
|
|
873
|
+
"pull_number": {
|
|
874
|
+
"type": "number",
|
|
875
|
+
"description": "Pull request number"
|
|
876
|
+
},
|
|
877
|
+
"commit_title": {
|
|
878
|
+
"type": "string",
|
|
879
|
+
"description": "Title for the automatic commit message"
|
|
880
|
+
},
|
|
881
|
+
"commit_message": {
|
|
882
|
+
"type": "string",
|
|
883
|
+
"description": "Extra detail to append to automatic commit message"
|
|
884
|
+
},
|
|
885
|
+
"merge_method": {
|
|
886
|
+
"type": "string",
|
|
887
|
+
"enum": [
|
|
888
|
+
"merge",
|
|
889
|
+
"squash",
|
|
890
|
+
"rebase"
|
|
891
|
+
],
|
|
892
|
+
"description": "Merge method to use"
|
|
893
|
+
}
|
|
894
|
+
},
|
|
895
|
+
"required": [
|
|
896
|
+
"owner",
|
|
897
|
+
"repo",
|
|
898
|
+
"pull_number"
|
|
899
|
+
],
|
|
900
|
+
"additionalProperties": false,
|
|
901
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
902
|
+
},
|
|
903
|
+
"get_pull_request_files": {
|
|
904
|
+
"type": "object",
|
|
905
|
+
"properties": {
|
|
906
|
+
"owner": {
|
|
907
|
+
"type": "string",
|
|
908
|
+
"description": "Repository owner (username or organization)"
|
|
909
|
+
},
|
|
910
|
+
"repo": {
|
|
911
|
+
"type": "string",
|
|
912
|
+
"description": "Repository name"
|
|
913
|
+
},
|
|
914
|
+
"pull_number": {
|
|
915
|
+
"type": "number",
|
|
916
|
+
"description": "Pull request number"
|
|
917
|
+
}
|
|
918
|
+
},
|
|
919
|
+
"required": [
|
|
920
|
+
"owner",
|
|
921
|
+
"repo",
|
|
922
|
+
"pull_number"
|
|
923
|
+
],
|
|
924
|
+
"additionalProperties": false,
|
|
925
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
926
|
+
},
|
|
927
|
+
"get_pull_request_status": {
|
|
928
|
+
"type": "object",
|
|
929
|
+
"properties": {
|
|
930
|
+
"owner": {
|
|
931
|
+
"type": "string",
|
|
932
|
+
"description": "Repository owner (username or organization)"
|
|
933
|
+
},
|
|
934
|
+
"repo": {
|
|
935
|
+
"type": "string",
|
|
936
|
+
"description": "Repository name"
|
|
937
|
+
},
|
|
938
|
+
"pull_number": {
|
|
939
|
+
"type": "number",
|
|
940
|
+
"description": "Pull request number"
|
|
941
|
+
}
|
|
942
|
+
},
|
|
943
|
+
"required": [
|
|
944
|
+
"owner",
|
|
945
|
+
"repo",
|
|
946
|
+
"pull_number"
|
|
947
|
+
],
|
|
948
|
+
"additionalProperties": false,
|
|
949
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
950
|
+
},
|
|
951
|
+
"update_pull_request_branch": {
|
|
952
|
+
"type": "object",
|
|
953
|
+
"properties": {
|
|
954
|
+
"owner": {
|
|
955
|
+
"type": "string",
|
|
956
|
+
"description": "Repository owner (username or organization)"
|
|
957
|
+
},
|
|
958
|
+
"repo": {
|
|
959
|
+
"type": "string",
|
|
960
|
+
"description": "Repository name"
|
|
961
|
+
},
|
|
962
|
+
"pull_number": {
|
|
963
|
+
"type": "number",
|
|
964
|
+
"description": "Pull request number"
|
|
965
|
+
},
|
|
966
|
+
"expected_head_sha": {
|
|
967
|
+
"type": "string",
|
|
968
|
+
"description": "The expected SHA of the pull request's HEAD ref"
|
|
969
|
+
}
|
|
970
|
+
},
|
|
971
|
+
"required": [
|
|
972
|
+
"owner",
|
|
973
|
+
"repo",
|
|
974
|
+
"pull_number"
|
|
975
|
+
],
|
|
976
|
+
"additionalProperties": false,
|
|
977
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
978
|
+
},
|
|
979
|
+
"get_pull_request_comments": {
|
|
980
|
+
"type": "object",
|
|
981
|
+
"properties": {
|
|
982
|
+
"owner": {
|
|
983
|
+
"type": "string",
|
|
984
|
+
"description": "Repository owner (username or organization)"
|
|
985
|
+
},
|
|
986
|
+
"repo": {
|
|
987
|
+
"type": "string",
|
|
988
|
+
"description": "Repository name"
|
|
989
|
+
},
|
|
990
|
+
"pull_number": {
|
|
991
|
+
"type": "number",
|
|
992
|
+
"description": "Pull request number"
|
|
993
|
+
}
|
|
994
|
+
},
|
|
995
|
+
"required": [
|
|
996
|
+
"owner",
|
|
997
|
+
"repo",
|
|
998
|
+
"pull_number"
|
|
999
|
+
],
|
|
1000
|
+
"additionalProperties": false,
|
|
1001
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
1002
|
+
},
|
|
1003
|
+
"get_pull_request_reviews": {
|
|
1004
|
+
"type": "object",
|
|
1005
|
+
"properties": {
|
|
1006
|
+
"owner": {
|
|
1007
|
+
"type": "string",
|
|
1008
|
+
"description": "Repository owner (username or organization)"
|
|
1009
|
+
},
|
|
1010
|
+
"repo": {
|
|
1011
|
+
"type": "string",
|
|
1012
|
+
"description": "Repository name"
|
|
1013
|
+
},
|
|
1014
|
+
"pull_number": {
|
|
1015
|
+
"type": "number",
|
|
1016
|
+
"description": "Pull request number"
|
|
1017
|
+
}
|
|
1018
|
+
},
|
|
1019
|
+
"required": [
|
|
1020
|
+
"owner",
|
|
1021
|
+
"repo",
|
|
1022
|
+
"pull_number"
|
|
1023
|
+
],
|
|
1024
|
+
"additionalProperties": false,
|
|
1025
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
]
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
"id": "prompts",
|
|
1033
|
+
"capability": "prompts",
|
|
1034
|
+
"status": "unsupported",
|
|
1035
|
+
"durationMs": 0.00480000000243308,
|
|
1036
|
+
"message": "Prompts are not advertised by the target.",
|
|
1037
|
+
"evidence": [
|
|
1038
|
+
{
|
|
1039
|
+
"endpoint": "prompts/list",
|
|
1040
|
+
"advertised": false,
|
|
1041
|
+
"responded": false,
|
|
1042
|
+
"minimalShapePresent": false,
|
|
1043
|
+
"diagnostics": []
|
|
1044
|
+
}
|
|
1045
|
+
]
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
"id": "resources",
|
|
1049
|
+
"capability": "resources",
|
|
1050
|
+
"status": "unsupported",
|
|
1051
|
+
"durationMs": 0.008300000001327135,
|
|
1052
|
+
"message": "Resources are not advertised by the target.",
|
|
1053
|
+
"evidence": [
|
|
1054
|
+
{
|
|
1055
|
+
"endpoint": "resources/list | resources/templates/list",
|
|
1056
|
+
"advertised": false,
|
|
1057
|
+
"responded": false,
|
|
1058
|
+
"minimalShapePresent": false,
|
|
1059
|
+
"diagnostics": []
|
|
1060
|
+
}
|
|
1061
|
+
]
|
|
1062
|
+
},
|
|
1063
|
+
{
|
|
1064
|
+
"id": "security-lite",
|
|
1065
|
+
"capability": "security-lite",
|
|
1066
|
+
"status": "partial",
|
|
1067
|
+
"durationMs": 0.13130000000091968,
|
|
1068
|
+
"message": "Found 1 security finding(s): 0 high, 1 medium, 0 low.",
|
|
1069
|
+
"evidence": [
|
|
1070
|
+
{
|
|
1071
|
+
"endpoint": "security/scan-lite",
|
|
1072
|
+
"advertised": true,
|
|
1073
|
+
"responded": true,
|
|
1074
|
+
"minimalShapePresent": true,
|
|
1075
|
+
"itemCount": 1,
|
|
1076
|
+
"identifiers": [
|
|
1077
|
+
"create_or_update_file"
|
|
1078
|
+
],
|
|
1079
|
+
"diagnostics": [
|
|
1080
|
+
"[medium] Tool \"create_or_update_file\" accepts filesystem paths and has destructive capabilities."
|
|
1081
|
+
],
|
|
1082
|
+
"findings": [
|
|
1083
|
+
{
|
|
1084
|
+
"ruleId": "broad-filesystem",
|
|
1085
|
+
"severity": "medium",
|
|
1086
|
+
"toolName": "create_or_update_file",
|
|
1087
|
+
"message": "Tool \"create_or_update_file\" accepts filesystem paths and has destructive capabilities."
|
|
1088
|
+
}
|
|
1089
|
+
]
|
|
1090
|
+
}
|
|
1091
|
+
]
|
|
1092
|
+
},
|
|
1093
|
+
{
|
|
1094
|
+
"id": "conformance",
|
|
1095
|
+
"capability": "conformance",
|
|
1096
|
+
"status": "pass",
|
|
1097
|
+
"durationMs": 3.17439999999624,
|
|
1098
|
+
"message": "All 7 conformance checks passed.",
|
|
1099
|
+
"evidence": [
|
|
1100
|
+
{
|
|
1101
|
+
"endpoint": "conformance/check",
|
|
1102
|
+
"advertised": true,
|
|
1103
|
+
"responded": true,
|
|
1104
|
+
"minimalShapePresent": true,
|
|
1105
|
+
"itemCount": 7,
|
|
1106
|
+
"identifiers": [],
|
|
1107
|
+
"diagnostics": [
|
|
1108
|
+
"[pass] capabilities-present: Server returned capabilities object.",
|
|
1109
|
+
"[pass] server-info: Server provided initialization info.",
|
|
1110
|
+
"[pass] tools-capability-match: tools/list returned 26 tool(s).",
|
|
1111
|
+
"[pass] prompts-capability-match: Prompts not advertised — endpoint check skipped.",
|
|
1112
|
+
"[pass] resources-capability-match: Resources not advertised — endpoint check skipped.",
|
|
1113
|
+
"[pass] tool-response-content: No safe tool to invoke — content validation skipped.",
|
|
1114
|
+
"[pass] error-handling: Server returned proper error code -32601 for unknown method."
|
|
1115
|
+
]
|
|
1116
|
+
}
|
|
1117
|
+
]
|
|
1118
|
+
},
|
|
1119
|
+
{
|
|
1120
|
+
"id": "schema-quality",
|
|
1121
|
+
"capability": "schema-quality",
|
|
1122
|
+
"status": "partial",
|
|
1123
|
+
"durationMs": 1.8392000000021653,
|
|
1124
|
+
"message": "Found 51 quality finding(s) across 26 item(s): 0 warnings, 51 info.",
|
|
1125
|
+
"evidence": [
|
|
1126
|
+
{
|
|
1127
|
+
"endpoint": "schema-quality/scan",
|
|
1128
|
+
"advertised": true,
|
|
1129
|
+
"responded": true,
|
|
1130
|
+
"minimalShapePresent": true,
|
|
1131
|
+
"itemCount": 51,
|
|
1132
|
+
"identifiers": [
|
|
1133
|
+
"create_issue",
|
|
1134
|
+
"list_commits",
|
|
1135
|
+
"list_issues",
|
|
1136
|
+
"update_issue",
|
|
1137
|
+
"add_issue_comment",
|
|
1138
|
+
"search_code",
|
|
1139
|
+
"search_issues",
|
|
1140
|
+
"search_users",
|
|
1141
|
+
"get_issue"
|
|
1142
|
+
],
|
|
1143
|
+
"diagnostics": [
|
|
1144
|
+
"[info] tool \"create_issue\": Property 'owner' missing description",
|
|
1145
|
+
"[info] tool \"create_issue\": Property 'repo' missing description",
|
|
1146
|
+
"[info] tool \"create_issue\": Property 'title' missing description",
|
|
1147
|
+
"[info] tool \"create_issue\": Property 'body' missing description",
|
|
1148
|
+
"[info] tool \"create_issue\": Property 'assignees' missing description",
|
|
1149
|
+
"[info] tool \"create_issue\": Property 'milestone' missing description",
|
|
1150
|
+
"[info] tool \"create_issue\": Property 'labels' missing description",
|
|
1151
|
+
"[info] tool \"list_commits\": Property 'owner' missing description",
|
|
1152
|
+
"[info] tool \"list_commits\": Property 'repo' missing description",
|
|
1153
|
+
"[info] tool \"list_commits\": Property 'sha' missing description",
|
|
1154
|
+
"[info] tool \"list_commits\": Property 'page' missing description",
|
|
1155
|
+
"[info] tool \"list_commits\": Property 'perPage' missing description",
|
|
1156
|
+
"[info] tool \"list_issues\": Property 'owner' missing description",
|
|
1157
|
+
"[info] tool \"list_issues\": Property 'repo' missing description",
|
|
1158
|
+
"[info] tool \"list_issues\": Property 'direction' missing description",
|
|
1159
|
+
"[info] tool \"list_issues\": Property 'labels' missing description",
|
|
1160
|
+
"[info] tool \"list_issues\": Property 'page' missing description",
|
|
1161
|
+
"[info] tool \"list_issues\": Property 'per_page' missing description",
|
|
1162
|
+
"[info] tool \"list_issues\": Property 'since' missing description",
|
|
1163
|
+
"[info] tool \"list_issues\": Property 'sort' missing description",
|
|
1164
|
+
"[info] tool \"list_issues\": Property 'state' missing description",
|
|
1165
|
+
"[info] tool \"update_issue\": Property 'owner' missing description",
|
|
1166
|
+
"[info] tool \"update_issue\": Property 'repo' missing description",
|
|
1167
|
+
"[info] tool \"update_issue\": Property 'issue_number' missing description",
|
|
1168
|
+
"[info] tool \"update_issue\": Property 'title' missing description",
|
|
1169
|
+
"[info] tool \"update_issue\": Property 'body' missing description",
|
|
1170
|
+
"[info] tool \"update_issue\": Property 'assignees' missing description",
|
|
1171
|
+
"[info] tool \"update_issue\": Property 'milestone' missing description",
|
|
1172
|
+
"[info] tool \"update_issue\": Property 'labels' missing description",
|
|
1173
|
+
"[info] tool \"update_issue\": Property 'state' missing description",
|
|
1174
|
+
"[info] tool \"add_issue_comment\": Property 'owner' missing description",
|
|
1175
|
+
"[info] tool \"add_issue_comment\": Property 'repo' missing description",
|
|
1176
|
+
"[info] tool \"add_issue_comment\": Property 'issue_number' missing description",
|
|
1177
|
+
"[info] tool \"add_issue_comment\": Property 'body' missing description",
|
|
1178
|
+
"[info] tool \"search_code\": Property 'q' missing description",
|
|
1179
|
+
"[info] tool \"search_code\": Property 'order' missing description",
|
|
1180
|
+
"[info] tool \"search_code\": Property 'page' missing description",
|
|
1181
|
+
"[info] tool \"search_code\": Property 'per_page' missing description",
|
|
1182
|
+
"[info] tool \"search_issues\": Property 'q' missing description",
|
|
1183
|
+
"[info] tool \"search_issues\": Property 'order' missing description",
|
|
1184
|
+
"[info] tool \"search_issues\": Property 'page' missing description",
|
|
1185
|
+
"[info] tool \"search_issues\": Property 'per_page' missing description",
|
|
1186
|
+
"[info] tool \"search_issues\": Property 'sort' missing description",
|
|
1187
|
+
"[info] tool \"search_users\": Property 'q' missing description",
|
|
1188
|
+
"[info] tool \"search_users\": Property 'order' missing description",
|
|
1189
|
+
"[info] tool \"search_users\": Property 'page' missing description",
|
|
1190
|
+
"[info] tool \"search_users\": Property 'per_page' missing description",
|
|
1191
|
+
"[info] tool \"search_users\": Property 'sort' missing description",
|
|
1192
|
+
"[info] tool \"get_issue\": Property 'owner' missing description",
|
|
1193
|
+
"[info] tool \"get_issue\": Property 'repo' missing description",
|
|
1194
|
+
"[info] tool \"get_issue\": Property 'issue_number' missing description"
|
|
1195
|
+
],
|
|
1196
|
+
"findings": [
|
|
1197
|
+
{
|
|
1198
|
+
"itemType": "tool",
|
|
1199
|
+
"itemName": "create_issue",
|
|
1200
|
+
"issue": "Property 'owner' missing description",
|
|
1201
|
+
"severity": "info"
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"itemType": "tool",
|
|
1205
|
+
"itemName": "create_issue",
|
|
1206
|
+
"issue": "Property 'repo' missing description",
|
|
1207
|
+
"severity": "info"
|
|
1208
|
+
},
|
|
1209
|
+
{
|
|
1210
|
+
"itemType": "tool",
|
|
1211
|
+
"itemName": "create_issue",
|
|
1212
|
+
"issue": "Property 'title' missing description",
|
|
1213
|
+
"severity": "info"
|
|
1214
|
+
},
|
|
1215
|
+
{
|
|
1216
|
+
"itemType": "tool",
|
|
1217
|
+
"itemName": "create_issue",
|
|
1218
|
+
"issue": "Property 'body' missing description",
|
|
1219
|
+
"severity": "info"
|
|
1220
|
+
},
|
|
1221
|
+
{
|
|
1222
|
+
"itemType": "tool",
|
|
1223
|
+
"itemName": "create_issue",
|
|
1224
|
+
"issue": "Property 'assignees' missing description",
|
|
1225
|
+
"severity": "info"
|
|
1226
|
+
},
|
|
1227
|
+
{
|
|
1228
|
+
"itemType": "tool",
|
|
1229
|
+
"itemName": "create_issue",
|
|
1230
|
+
"issue": "Property 'milestone' missing description",
|
|
1231
|
+
"severity": "info"
|
|
1232
|
+
},
|
|
1233
|
+
{
|
|
1234
|
+
"itemType": "tool",
|
|
1235
|
+
"itemName": "create_issue",
|
|
1236
|
+
"issue": "Property 'labels' missing description",
|
|
1237
|
+
"severity": "info"
|
|
1238
|
+
},
|
|
1239
|
+
{
|
|
1240
|
+
"itemType": "tool",
|
|
1241
|
+
"itemName": "list_commits",
|
|
1242
|
+
"issue": "Property 'owner' missing description",
|
|
1243
|
+
"severity": "info"
|
|
1244
|
+
},
|
|
1245
|
+
{
|
|
1246
|
+
"itemType": "tool",
|
|
1247
|
+
"itemName": "list_commits",
|
|
1248
|
+
"issue": "Property 'repo' missing description",
|
|
1249
|
+
"severity": "info"
|
|
1250
|
+
},
|
|
1251
|
+
{
|
|
1252
|
+
"itemType": "tool",
|
|
1253
|
+
"itemName": "list_commits",
|
|
1254
|
+
"issue": "Property 'sha' missing description",
|
|
1255
|
+
"severity": "info"
|
|
1256
|
+
},
|
|
1257
|
+
{
|
|
1258
|
+
"itemType": "tool",
|
|
1259
|
+
"itemName": "list_commits",
|
|
1260
|
+
"issue": "Property 'page' missing description",
|
|
1261
|
+
"severity": "info"
|
|
1262
|
+
},
|
|
1263
|
+
{
|
|
1264
|
+
"itemType": "tool",
|
|
1265
|
+
"itemName": "list_commits",
|
|
1266
|
+
"issue": "Property 'perPage' missing description",
|
|
1267
|
+
"severity": "info"
|
|
1268
|
+
},
|
|
1269
|
+
{
|
|
1270
|
+
"itemType": "tool",
|
|
1271
|
+
"itemName": "list_issues",
|
|
1272
|
+
"issue": "Property 'owner' missing description",
|
|
1273
|
+
"severity": "info"
|
|
1274
|
+
},
|
|
1275
|
+
{
|
|
1276
|
+
"itemType": "tool",
|
|
1277
|
+
"itemName": "list_issues",
|
|
1278
|
+
"issue": "Property 'repo' missing description",
|
|
1279
|
+
"severity": "info"
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
"itemType": "tool",
|
|
1283
|
+
"itemName": "list_issues",
|
|
1284
|
+
"issue": "Property 'direction' missing description",
|
|
1285
|
+
"severity": "info"
|
|
1286
|
+
},
|
|
1287
|
+
{
|
|
1288
|
+
"itemType": "tool",
|
|
1289
|
+
"itemName": "list_issues",
|
|
1290
|
+
"issue": "Property 'labels' missing description",
|
|
1291
|
+
"severity": "info"
|
|
1292
|
+
},
|
|
1293
|
+
{
|
|
1294
|
+
"itemType": "tool",
|
|
1295
|
+
"itemName": "list_issues",
|
|
1296
|
+
"issue": "Property 'page' missing description",
|
|
1297
|
+
"severity": "info"
|
|
1298
|
+
},
|
|
1299
|
+
{
|
|
1300
|
+
"itemType": "tool",
|
|
1301
|
+
"itemName": "list_issues",
|
|
1302
|
+
"issue": "Property 'per_page' missing description",
|
|
1303
|
+
"severity": "info"
|
|
1304
|
+
},
|
|
1305
|
+
{
|
|
1306
|
+
"itemType": "tool",
|
|
1307
|
+
"itemName": "list_issues",
|
|
1308
|
+
"issue": "Property 'since' missing description",
|
|
1309
|
+
"severity": "info"
|
|
1310
|
+
},
|
|
1311
|
+
{
|
|
1312
|
+
"itemType": "tool",
|
|
1313
|
+
"itemName": "list_issues",
|
|
1314
|
+
"issue": "Property 'sort' missing description",
|
|
1315
|
+
"severity": "info"
|
|
1316
|
+
},
|
|
1317
|
+
{
|
|
1318
|
+
"itemType": "tool",
|
|
1319
|
+
"itemName": "list_issues",
|
|
1320
|
+
"issue": "Property 'state' missing description",
|
|
1321
|
+
"severity": "info"
|
|
1322
|
+
},
|
|
1323
|
+
{
|
|
1324
|
+
"itemType": "tool",
|
|
1325
|
+
"itemName": "update_issue",
|
|
1326
|
+
"issue": "Property 'owner' missing description",
|
|
1327
|
+
"severity": "info"
|
|
1328
|
+
},
|
|
1329
|
+
{
|
|
1330
|
+
"itemType": "tool",
|
|
1331
|
+
"itemName": "update_issue",
|
|
1332
|
+
"issue": "Property 'repo' missing description",
|
|
1333
|
+
"severity": "info"
|
|
1334
|
+
},
|
|
1335
|
+
{
|
|
1336
|
+
"itemType": "tool",
|
|
1337
|
+
"itemName": "update_issue",
|
|
1338
|
+
"issue": "Property 'issue_number' missing description",
|
|
1339
|
+
"severity": "info"
|
|
1340
|
+
},
|
|
1341
|
+
{
|
|
1342
|
+
"itemType": "tool",
|
|
1343
|
+
"itemName": "update_issue",
|
|
1344
|
+
"issue": "Property 'title' missing description",
|
|
1345
|
+
"severity": "info"
|
|
1346
|
+
},
|
|
1347
|
+
{
|
|
1348
|
+
"itemType": "tool",
|
|
1349
|
+
"itemName": "update_issue",
|
|
1350
|
+
"issue": "Property 'body' missing description",
|
|
1351
|
+
"severity": "info"
|
|
1352
|
+
},
|
|
1353
|
+
{
|
|
1354
|
+
"itemType": "tool",
|
|
1355
|
+
"itemName": "update_issue",
|
|
1356
|
+
"issue": "Property 'assignees' missing description",
|
|
1357
|
+
"severity": "info"
|
|
1358
|
+
},
|
|
1359
|
+
{
|
|
1360
|
+
"itemType": "tool",
|
|
1361
|
+
"itemName": "update_issue",
|
|
1362
|
+
"issue": "Property 'milestone' missing description",
|
|
1363
|
+
"severity": "info"
|
|
1364
|
+
},
|
|
1365
|
+
{
|
|
1366
|
+
"itemType": "tool",
|
|
1367
|
+
"itemName": "update_issue",
|
|
1368
|
+
"issue": "Property 'labels' missing description",
|
|
1369
|
+
"severity": "info"
|
|
1370
|
+
},
|
|
1371
|
+
{
|
|
1372
|
+
"itemType": "tool",
|
|
1373
|
+
"itemName": "update_issue",
|
|
1374
|
+
"issue": "Property 'state' missing description",
|
|
1375
|
+
"severity": "info"
|
|
1376
|
+
},
|
|
1377
|
+
{
|
|
1378
|
+
"itemType": "tool",
|
|
1379
|
+
"itemName": "add_issue_comment",
|
|
1380
|
+
"issue": "Property 'owner' missing description",
|
|
1381
|
+
"severity": "info"
|
|
1382
|
+
},
|
|
1383
|
+
{
|
|
1384
|
+
"itemType": "tool",
|
|
1385
|
+
"itemName": "add_issue_comment",
|
|
1386
|
+
"issue": "Property 'repo' missing description",
|
|
1387
|
+
"severity": "info"
|
|
1388
|
+
},
|
|
1389
|
+
{
|
|
1390
|
+
"itemType": "tool",
|
|
1391
|
+
"itemName": "add_issue_comment",
|
|
1392
|
+
"issue": "Property 'issue_number' missing description",
|
|
1393
|
+
"severity": "info"
|
|
1394
|
+
},
|
|
1395
|
+
{
|
|
1396
|
+
"itemType": "tool",
|
|
1397
|
+
"itemName": "add_issue_comment",
|
|
1398
|
+
"issue": "Property 'body' missing description",
|
|
1399
|
+
"severity": "info"
|
|
1400
|
+
},
|
|
1401
|
+
{
|
|
1402
|
+
"itemType": "tool",
|
|
1403
|
+
"itemName": "search_code",
|
|
1404
|
+
"issue": "Property 'q' missing description",
|
|
1405
|
+
"severity": "info"
|
|
1406
|
+
},
|
|
1407
|
+
{
|
|
1408
|
+
"itemType": "tool",
|
|
1409
|
+
"itemName": "search_code",
|
|
1410
|
+
"issue": "Property 'order' missing description",
|
|
1411
|
+
"severity": "info"
|
|
1412
|
+
},
|
|
1413
|
+
{
|
|
1414
|
+
"itemType": "tool",
|
|
1415
|
+
"itemName": "search_code",
|
|
1416
|
+
"issue": "Property 'page' missing description",
|
|
1417
|
+
"severity": "info"
|
|
1418
|
+
},
|
|
1419
|
+
{
|
|
1420
|
+
"itemType": "tool",
|
|
1421
|
+
"itemName": "search_code",
|
|
1422
|
+
"issue": "Property 'per_page' missing description",
|
|
1423
|
+
"severity": "info"
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"itemType": "tool",
|
|
1427
|
+
"itemName": "search_issues",
|
|
1428
|
+
"issue": "Property 'q' missing description",
|
|
1429
|
+
"severity": "info"
|
|
1430
|
+
},
|
|
1431
|
+
{
|
|
1432
|
+
"itemType": "tool",
|
|
1433
|
+
"itemName": "search_issues",
|
|
1434
|
+
"issue": "Property 'order' missing description",
|
|
1435
|
+
"severity": "info"
|
|
1436
|
+
},
|
|
1437
|
+
{
|
|
1438
|
+
"itemType": "tool",
|
|
1439
|
+
"itemName": "search_issues",
|
|
1440
|
+
"issue": "Property 'page' missing description",
|
|
1441
|
+
"severity": "info"
|
|
1442
|
+
},
|
|
1443
|
+
{
|
|
1444
|
+
"itemType": "tool",
|
|
1445
|
+
"itemName": "search_issues",
|
|
1446
|
+
"issue": "Property 'per_page' missing description",
|
|
1447
|
+
"severity": "info"
|
|
1448
|
+
},
|
|
1449
|
+
{
|
|
1450
|
+
"itemType": "tool",
|
|
1451
|
+
"itemName": "search_issues",
|
|
1452
|
+
"issue": "Property 'sort' missing description",
|
|
1453
|
+
"severity": "info"
|
|
1454
|
+
},
|
|
1455
|
+
{
|
|
1456
|
+
"itemType": "tool",
|
|
1457
|
+
"itemName": "search_users",
|
|
1458
|
+
"issue": "Property 'q' missing description",
|
|
1459
|
+
"severity": "info"
|
|
1460
|
+
},
|
|
1461
|
+
{
|
|
1462
|
+
"itemType": "tool",
|
|
1463
|
+
"itemName": "search_users",
|
|
1464
|
+
"issue": "Property 'order' missing description",
|
|
1465
|
+
"severity": "info"
|
|
1466
|
+
},
|
|
1467
|
+
{
|
|
1468
|
+
"itemType": "tool",
|
|
1469
|
+
"itemName": "search_users",
|
|
1470
|
+
"issue": "Property 'page' missing description",
|
|
1471
|
+
"severity": "info"
|
|
1472
|
+
},
|
|
1473
|
+
{
|
|
1474
|
+
"itemType": "tool",
|
|
1475
|
+
"itemName": "search_users",
|
|
1476
|
+
"issue": "Property 'per_page' missing description",
|
|
1477
|
+
"severity": "info"
|
|
1478
|
+
},
|
|
1479
|
+
{
|
|
1480
|
+
"itemType": "tool",
|
|
1481
|
+
"itemName": "search_users",
|
|
1482
|
+
"issue": "Property 'sort' missing description",
|
|
1483
|
+
"severity": "info"
|
|
1484
|
+
},
|
|
1485
|
+
{
|
|
1486
|
+
"itemType": "tool",
|
|
1487
|
+
"itemName": "get_issue",
|
|
1488
|
+
"issue": "Property 'owner' missing description",
|
|
1489
|
+
"severity": "info"
|
|
1490
|
+
},
|
|
1491
|
+
{
|
|
1492
|
+
"itemType": "tool",
|
|
1493
|
+
"itemName": "get_issue",
|
|
1494
|
+
"issue": "Property 'repo' missing description",
|
|
1495
|
+
"severity": "info"
|
|
1496
|
+
},
|
|
1497
|
+
{
|
|
1498
|
+
"itemType": "tool",
|
|
1499
|
+
"itemName": "get_issue",
|
|
1500
|
+
"issue": "Property 'issue_number' missing description",
|
|
1501
|
+
"severity": "info"
|
|
1502
|
+
}
|
|
1503
|
+
]
|
|
1504
|
+
}
|
|
1505
|
+
]
|
|
1506
|
+
},
|
|
1507
|
+
{
|
|
1508
|
+
"id": "security",
|
|
1509
|
+
"capability": "security",
|
|
1510
|
+
"status": "partial",
|
|
1511
|
+
"durationMs": 2.661199999995006,
|
|
1512
|
+
"message": "Found 1 security finding(s): 0 high, 1 medium, 0 low.",
|
|
1513
|
+
"evidence": [
|
|
1514
|
+
{
|
|
1515
|
+
"endpoint": "security/scan",
|
|
1516
|
+
"advertised": true,
|
|
1517
|
+
"responded": true,
|
|
1518
|
+
"minimalShapePresent": true,
|
|
1519
|
+
"itemCount": 1,
|
|
1520
|
+
"identifiers": [
|
|
1521
|
+
"create_or_update_file"
|
|
1522
|
+
],
|
|
1523
|
+
"diagnostics": [
|
|
1524
|
+
"[medium] Tool \"create_or_update_file\" accepts filesystem paths and has destructive capabilities."
|
|
1525
|
+
],
|
|
1526
|
+
"findings": [
|
|
1527
|
+
{
|
|
1528
|
+
"ruleId": "broad-filesystem",
|
|
1529
|
+
"severity": "medium",
|
|
1530
|
+
"toolName": "create_or_update_file",
|
|
1531
|
+
"message": "Tool \"create_or_update_file\" accepts filesystem paths and has destructive capabilities."
|
|
1532
|
+
}
|
|
1533
|
+
]
|
|
1534
|
+
}
|
|
1535
|
+
]
|
|
1536
|
+
},
|
|
1537
|
+
{
|
|
1538
|
+
"id": "attack-sim",
|
|
1539
|
+
"capability": "attack-sim",
|
|
1540
|
+
"status": "partial",
|
|
1541
|
+
"durationMs": 2.7502000000022235,
|
|
1542
|
+
"message": "Safe attack simulation found 5 finding(s): 0 high, 5 medium, 0 low.",
|
|
1543
|
+
"evidence": [
|
|
1544
|
+
{
|
|
1545
|
+
"endpoint": "attack-sim/safe",
|
|
1546
|
+
"advertised": true,
|
|
1547
|
+
"responded": true,
|
|
1548
|
+
"minimalShapePresent": true,
|
|
1549
|
+
"itemCount": 5,
|
|
1550
|
+
"identifiers": [
|
|
1551
|
+
"create_or_update_file",
|
|
1552
|
+
"create_issue",
|
|
1553
|
+
"create_pull_request",
|
|
1554
|
+
"update_issue",
|
|
1555
|
+
"create_pull_request_review"
|
|
1556
|
+
],
|
|
1557
|
+
"diagnostics": [
|
|
1558
|
+
"[medium] Tool \"create_or_update_file\" combines broad parameters (path) with destructive or non-read-only behavior.",
|
|
1559
|
+
"[medium] Tool \"create_issue\" combines broad parameters (body) with destructive or non-read-only behavior.",
|
|
1560
|
+
"[medium] Tool \"create_pull_request\" combines broad parameters (body) with destructive or non-read-only behavior.",
|
|
1561
|
+
"[medium] Tool \"update_issue\" combines broad parameters (body) with destructive or non-read-only behavior.",
|
|
1562
|
+
"[medium] Tool \"create_pull_request_review\" combines broad parameters (body) with destructive or non-read-only behavior."
|
|
1563
|
+
],
|
|
1564
|
+
"findings": [
|
|
1565
|
+
{
|
|
1566
|
+
"ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
|
|
1567
|
+
"attackClass": "permission-boundary",
|
|
1568
|
+
"severity": "medium",
|
|
1569
|
+
"itemType": "tool",
|
|
1570
|
+
"itemName": "create_or_update_file",
|
|
1571
|
+
"message": "Tool \"create_or_update_file\" combines broad parameters (path) with destructive or non-read-only behavior.",
|
|
1572
|
+
"evidence": {
|
|
1573
|
+
"broadParams": [
|
|
1574
|
+
"path"
|
|
1575
|
+
],
|
|
1576
|
+
"description": "Create or update a single file in a GitHub repository"
|
|
1577
|
+
},
|
|
1578
|
+
"recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
|
|
1579
|
+
"recommendedAction": "gate"
|
|
1580
|
+
},
|
|
1581
|
+
{
|
|
1582
|
+
"ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
|
|
1583
|
+
"attackClass": "permission-boundary",
|
|
1584
|
+
"severity": "medium",
|
|
1585
|
+
"itemType": "tool",
|
|
1586
|
+
"itemName": "create_issue",
|
|
1587
|
+
"message": "Tool \"create_issue\" combines broad parameters (body) with destructive or non-read-only behavior.",
|
|
1588
|
+
"evidence": {
|
|
1589
|
+
"broadParams": [
|
|
1590
|
+
"body"
|
|
1591
|
+
],
|
|
1592
|
+
"description": "Create a new issue in a GitHub repository"
|
|
1593
|
+
},
|
|
1594
|
+
"recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
|
|
1595
|
+
"recommendedAction": "gate"
|
|
1596
|
+
},
|
|
1597
|
+
{
|
|
1598
|
+
"ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
|
|
1599
|
+
"attackClass": "permission-boundary",
|
|
1600
|
+
"severity": "medium",
|
|
1601
|
+
"itemType": "tool",
|
|
1602
|
+
"itemName": "create_pull_request",
|
|
1603
|
+
"message": "Tool \"create_pull_request\" combines broad parameters (body) with destructive or non-read-only behavior.",
|
|
1604
|
+
"evidence": {
|
|
1605
|
+
"broadParams": [
|
|
1606
|
+
"body"
|
|
1607
|
+
],
|
|
1608
|
+
"description": "Create a new pull request in a GitHub repository"
|
|
1609
|
+
},
|
|
1610
|
+
"recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
|
|
1611
|
+
"recommendedAction": "gate"
|
|
1612
|
+
},
|
|
1613
|
+
{
|
|
1614
|
+
"ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
|
|
1615
|
+
"attackClass": "permission-boundary",
|
|
1616
|
+
"severity": "medium",
|
|
1617
|
+
"itemType": "tool",
|
|
1618
|
+
"itemName": "update_issue",
|
|
1619
|
+
"message": "Tool \"update_issue\" combines broad parameters (body) with destructive or non-read-only behavior.",
|
|
1620
|
+
"evidence": {
|
|
1621
|
+
"broadParams": [
|
|
1622
|
+
"body"
|
|
1623
|
+
],
|
|
1624
|
+
"description": "Update an existing issue in a GitHub repository"
|
|
1625
|
+
},
|
|
1626
|
+
"recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
|
|
1627
|
+
"recommendedAction": "gate"
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
"ruleId": "attack-sim/permission-boundary/broad-destructive-tool",
|
|
1631
|
+
"attackClass": "permission-boundary",
|
|
1632
|
+
"severity": "medium",
|
|
1633
|
+
"itemType": "tool",
|
|
1634
|
+
"itemName": "create_pull_request_review",
|
|
1635
|
+
"message": "Tool \"create_pull_request_review\" combines broad parameters (body) with destructive or non-read-only behavior.",
|
|
1636
|
+
"evidence": {
|
|
1637
|
+
"broadParams": [
|
|
1638
|
+
"body"
|
|
1639
|
+
],
|
|
1640
|
+
"description": "Create a review on a pull request"
|
|
1641
|
+
},
|
|
1642
|
+
"recommendation": "Constrain this tool with typed inputs, allowlists, explicit read-only/destructive annotations, and a harmless CI fixture.",
|
|
1643
|
+
"recommendedAction": "gate"
|
|
1644
|
+
}
|
|
1645
|
+
]
|
|
1646
|
+
}
|
|
1647
|
+
]
|
|
1648
|
+
}
|
|
1649
|
+
],
|
|
1650
|
+
"healthScore": {
|
|
1651
|
+
"overall": 77,
|
|
1652
|
+
"grade": "C",
|
|
1653
|
+
"dimensions": [
|
|
1654
|
+
{
|
|
1655
|
+
"name": "Protocol Compliance",
|
|
1656
|
+
"weight": 0.3,
|
|
1657
|
+
"score": 100,
|
|
1658
|
+
"details": [
|
|
1659
|
+
"conformance: pass (100/100)"
|
|
1660
|
+
]
|
|
1661
|
+
},
|
|
1662
|
+
{
|
|
1663
|
+
"name": "Schema Quality",
|
|
1664
|
+
"weight": 0.2,
|
|
1665
|
+
"score": 60,
|
|
1666
|
+
"details": [
|
|
1667
|
+
"schema-quality: partial (60/100)"
|
|
1668
|
+
]
|
|
1669
|
+
},
|
|
1670
|
+
{
|
|
1671
|
+
"name": "Security",
|
|
1672
|
+
"weight": 0.2,
|
|
1673
|
+
"score": 60,
|
|
1674
|
+
"details": [
|
|
1675
|
+
"security-lite: partial (60/100)",
|
|
1676
|
+
"security: partial (60/100)",
|
|
1677
|
+
"attack-sim: partial (60/100)"
|
|
1678
|
+
]
|
|
1679
|
+
},
|
|
1680
|
+
{
|
|
1681
|
+
"name": "Reliability",
|
|
1682
|
+
"weight": 0.2,
|
|
1683
|
+
"score": 67,
|
|
1684
|
+
"details": [
|
|
1685
|
+
"tools: pass (100/100)",
|
|
1686
|
+
"prompts: unsupported (50/100)",
|
|
1687
|
+
"resources: unsupported (50/100)"
|
|
1688
|
+
]
|
|
1689
|
+
},
|
|
1690
|
+
{
|
|
1691
|
+
"name": "Performance",
|
|
1692
|
+
"weight": 0.1,
|
|
1693
|
+
"score": 100,
|
|
1694
|
+
"details": [
|
|
1695
|
+
"Connect: 3647ms",
|
|
1696
|
+
"p95 latency: 4ms (3 operations)"
|
|
1697
|
+
]
|
|
1698
|
+
}
|
|
1699
|
+
]
|
|
1700
|
+
},
|
|
1701
|
+
"performanceMetrics": {
|
|
1702
|
+
"connectMs": 3646.7235,
|
|
1703
|
+
"toolsListMs": 4.374199999998382,
|
|
1704
|
+
"promptsListMs": 0.00480000000243308,
|
|
1705
|
+
"resourcesListMs": 0.008300000001327135
|
|
1706
|
+
}
|
|
1707
|
+
}
|