@apteva/integrations 0.2.3 → 0.3.1

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.
Files changed (236) hide show
  1. package/package.json +1 -1
  2. package/src/apps/activecampaign.json +209 -0
  3. package/src/apps/activecollab.json +417 -0
  4. package/src/apps/airtable.json +235 -0
  5. package/src/apps/alpaca-trading.json +1554 -0
  6. package/src/apps/amadeus.json +225 -0
  7. package/src/apps/anthropic-api.json +96 -0
  8. package/src/apps/apify.json +203 -0
  9. package/src/apps/apollo.json +748 -0
  10. package/src/apps/apple-podcasts.json +116 -0
  11. package/src/apps/archive-api.json +104 -0
  12. package/src/apps/archive.json +151 -0
  13. package/src/apps/arduino-cloud.json +301 -0
  14. package/src/apps/arest.json +492 -0
  15. package/src/apps/asana.json +184 -0
  16. package/src/apps/ashby.json +176 -0
  17. package/src/apps/assemblyai.json +163 -0
  18. package/src/apps/attio.json +243 -0
  19. package/src/apps/aws-cloudfront.json +132 -0
  20. package/src/apps/aws-dynamodb.json +295 -0
  21. package/src/apps/aws-ec2.json +184 -0
  22. package/src/apps/aws-lambda.json +361 -0
  23. package/src/apps/aws-route53.json +110 -0
  24. package/src/apps/aws-s3.json +303 -0
  25. package/src/apps/aws-ses.json +556 -0
  26. package/src/apps/aws-sns.json +217 -0
  27. package/src/apps/aws-sqs.json +234 -0
  28. package/src/apps/axiom.json +123 -0
  29. package/src/apps/beehiiv.json +252 -0
  30. package/src/apps/binance-trading.json +555 -0
  31. package/src/apps/bitly.json +175 -0
  32. package/src/apps/bloobirds.json +246 -0
  33. package/src/apps/bluesky.json +201 -0
  34. package/src/apps/blynk.json +316 -0
  35. package/src/apps/booking-com.json +144 -0
  36. package/src/apps/box.json +289 -0
  37. package/src/apps/brevo.json +1423 -0
  38. package/src/apps/browse-ai.json +148 -0
  39. package/src/apps/bunny-cdn.json +330 -0
  40. package/src/apps/bunny-stream.json +387 -0
  41. package/src/apps/cal-com.json +240 -0
  42. package/src/apps/calendly.json +578 -0
  43. package/src/apps/calflow-calendar.json +706 -0
  44. package/src/apps/callrail.json +190 -0
  45. package/src/apps/canva.json +197 -0
  46. package/src/apps/cartesia.json +201 -0
  47. package/src/apps/castbase.json +753 -0
  48. package/src/apps/chargebee.json +226 -0
  49. package/src/apps/cleanster.json +359 -0
  50. package/src/apps/clicksend.json +278 -0
  51. package/src/apps/clickup.json +266 -0
  52. package/src/apps/clipkit.json +517 -0
  53. package/src/apps/close.json +359 -0
  54. package/src/apps/cloudflare.json +329 -0
  55. package/src/apps/cloudinary.json +164 -0
  56. package/src/apps/coda.json +288 -0
  57. package/src/apps/cohere.json +158 -0
  58. package/src/apps/coinbase.json +268 -0
  59. package/src/apps/composio.json +146 -0
  60. package/src/apps/confluence.json +270 -0
  61. package/src/apps/consensus.json +879 -0
  62. package/src/apps/contabo.json +733 -0
  63. package/src/apps/convertkit.json +211 -0
  64. package/src/apps/core-image.json +426 -0
  65. package/src/apps/core-video.json +1246 -0
  66. package/src/apps/craftcloud.json +298 -0
  67. package/src/apps/datadog.json +401 -0
  68. package/src/apps/dataforseo.json +1273 -0
  69. package/src/apps/deepseek.json +150 -0
  70. package/src/apps/dialpad.json +229 -0
  71. package/src/apps/discord.json +239 -0
  72. package/src/apps/dnsimple.json +405 -0
  73. package/src/apps/docusign.json +214 -0
  74. package/src/apps/docx.json +282 -0
  75. package/src/apps/dropbox.json +185 -0
  76. package/src/apps/duffel.json +231 -0
  77. package/src/apps/dux-soup.json +694 -0
  78. package/src/apps/dynadot.json +250 -0
  79. package/src/apps/elevenlabs.json +327 -0
  80. package/src/apps/eventbrite-events.json +598 -0
  81. package/src/apps/facebook-ads.json +1399 -0
  82. package/src/apps/facebook-api.json +282 -0
  83. package/src/apps/fal-ai.json +400 -0
  84. package/src/apps/fathom.json +86 -0
  85. package/src/apps/figma.json +162 -0
  86. package/src/apps/filestack.json +159 -0
  87. package/src/apps/firebase.json +271 -0
  88. package/src/apps/firecrawl.json +278 -0
  89. package/src/apps/folk.json +564 -0
  90. package/src/apps/forecast-app.json +377 -0
  91. package/src/apps/freshdesk.json +283 -0
  92. package/src/apps/gemini.json +528 -0
  93. package/src/apps/ghost.json +439 -0
  94. package/src/apps/gigs-marketplace.json +1442 -0
  95. package/src/apps/github.json +1479 -47
  96. package/src/apps/gitlab.json +448 -0
  97. package/src/apps/gmail.json +839 -28
  98. package/src/apps/gohighlevel.json +596 -0
  99. package/src/apps/google-ads.json +270 -0
  100. package/src/apps/google-calendar.json +996 -36
  101. package/src/apps/google-docs.json +278 -0
  102. package/src/apps/google-drive.json +360 -0
  103. package/src/apps/google-maps.json +473 -0
  104. package/src/apps/google-sheets.json +330 -0
  105. package/src/apps/gooten.json +411 -0
  106. package/src/apps/gravity-forms.json +385 -0
  107. package/src/apps/gusto.json +171 -0
  108. package/src/apps/hackernews.json +221 -0
  109. package/src/apps/harmonic.json +86 -0
  110. package/src/apps/helpscout.json +664 -0
  111. package/src/apps/hetzner.json +658 -0
  112. package/src/apps/heygen.json +184 -0
  113. package/src/apps/heyreach.json +388 -0
  114. package/src/apps/hospitable.json +340 -0
  115. package/src/apps/hostinger.json +374 -0
  116. package/src/apps/hubspot.json +682 -0
  117. package/src/apps/huggingface.json +97 -0
  118. package/src/apps/hunter.json +504 -0
  119. package/src/apps/ig-trading.json +849 -0
  120. package/src/apps/imaterialise.json +349 -0
  121. package/src/apps/instagram-api.json +538 -0
  122. package/src/apps/intercom.json +648 -0
  123. package/src/apps/jira.json +226 -0
  124. package/src/apps/klaviyo.json +199 -0
  125. package/src/apps/kling-ai.json +206 -0
  126. package/src/apps/kraken.json +870 -0
  127. package/src/apps/late.json +1056 -0
  128. package/src/apps/leadpages.json +243 -0
  129. package/src/apps/learning-platform.json +2244 -0
  130. package/src/apps/linear.json +184 -57
  131. package/src/apps/linkedin.json +179 -0
  132. package/src/apps/listen-notes.json +136 -0
  133. package/src/apps/lnk-bio.json +125 -0
  134. package/src/apps/loom.json +188 -0
  135. package/src/apps/luma.json +280 -0
  136. package/src/apps/mailchimp.json +238 -0
  137. package/src/apps/mailgun.json +310 -0
  138. package/src/apps/manychat.json +312 -0
  139. package/src/apps/marin-software.json +843 -0
  140. package/src/apps/media-downloader.json +157 -0
  141. package/src/apps/meetup-events.json +361 -0
  142. package/src/apps/meshy.json +248 -0
  143. package/src/apps/microsoft-teams.json +162 -0
  144. package/src/apps/monday.json +213 -0
  145. package/src/apps/mongodb-atlas.json +467 -0
  146. package/src/apps/namecheap.json +252 -0
  147. package/src/apps/nexar.json +289 -0
  148. package/src/apps/notion.json +530 -50
  149. package/src/apps/omnikit-analytics.json +374 -0
  150. package/src/apps/omnikit-api-gateway.json +660 -0
  151. package/src/apps/omnikit-billing.json +1781 -0
  152. package/src/apps/omnikit-cms.json +899 -0
  153. package/src/apps/omnikit-functions.json +329 -0
  154. package/src/apps/omnikit-intelligence.json +650 -0
  155. package/src/apps/omnikit-management.json +214 -0
  156. package/src/apps/omnikit-media.json +646 -0
  157. package/src/apps/omnikit-messaging.json +1826 -0
  158. package/src/apps/omnikit-redirects.json +209 -0
  159. package/src/apps/omnikit-webhooks.json +269 -0
  160. package/src/apps/omnikit-workflows.json +323 -0
  161. package/src/apps/openai-api.json +462 -0
  162. package/src/apps/openmeteo-weather.json +75 -0
  163. package/src/apps/optinmonster.json +244 -0
  164. package/src/apps/paidkit.json +1218 -0
  165. package/src/apps/paypal.json +254 -0
  166. package/src/apps/pdf.json +366 -0
  167. package/src/apps/pipedrive.json +255 -0
  168. package/src/apps/polymarket.json +653 -0
  169. package/src/apps/porkbun.json +417 -0
  170. package/src/apps/portfolio.json +501 -0
  171. package/src/apps/postmark.json +257 -0
  172. package/src/apps/printful.json +273 -0
  173. package/src/apps/printify.json +295 -0
  174. package/src/apps/producthunt.json +346 -0
  175. package/src/apps/pushover-notifications.json +113 -0
  176. package/src/apps/qonto.json +366 -0
  177. package/src/apps/quickbooks.json +234 -0
  178. package/src/apps/replicate.json +106 -0
  179. package/src/apps/rss.json +281 -0
  180. package/src/apps/salesflow.json +538 -0
  181. package/src/apps/salesforce-crm.json +216 -0
  182. package/src/apps/sap.json +256 -0
  183. package/src/apps/scaleway.json +911 -0
  184. package/src/apps/sculpteo.json +234 -0
  185. package/src/apps/sendgrid-email.json +233 -0
  186. package/src/apps/sendgrid.json +160 -35
  187. package/src/apps/shapeways.json +188 -0
  188. package/src/apps/shopify.json +1217 -0
  189. package/src/apps/skai.json +779 -0
  190. package/src/apps/slack.json +228 -38
  191. package/src/apps/slant3d.json +231 -0
  192. package/src/apps/slides.json +760 -0
  193. package/src/apps/smartly.json +504 -0
  194. package/src/apps/snov.json +467 -0
  195. package/src/apps/socialcast.json +553 -63
  196. package/src/apps/square.json +274 -0
  197. package/src/apps/storage-management.json +788 -0
  198. package/src/apps/storylane.json +180 -0
  199. package/src/apps/strapi.json +338 -0
  200. package/src/apps/stripe-payments.json +847 -0
  201. package/src/apps/stripe.json +472 -35
  202. package/src/apps/supabase.json +169 -0
  203. package/src/apps/supademo.json +115 -0
  204. package/src/apps/taskflow.json +714 -0
  205. package/src/apps/teamwork.json +457 -0
  206. package/src/apps/telegram.json +444 -0
  207. package/src/apps/thinger.json +458 -0
  208. package/src/apps/ticktick.json +169 -0
  209. package/src/apps/tiktok-api.json +406 -0
  210. package/src/apps/todoist.json +151 -0
  211. package/src/apps/together.json +123 -0
  212. package/src/apps/torrent.json +267 -0
  213. package/src/apps/trading.json +1012 -0
  214. package/src/apps/trading212.json +383 -0
  215. package/src/apps/trello.json +205 -0
  216. package/src/apps/tripo.json +157 -0
  217. package/src/apps/twilio.json +1008 -0
  218. package/src/apps/twitter-ads.json +875 -0
  219. package/src/apps/twitter-api.json +1151 -0
  220. package/src/apps/twitterapiio.json +548 -0
  221. package/src/apps/typeform.json +210 -0
  222. package/src/apps/vidforge.json +1020 -0
  223. package/src/apps/vonage.json +394 -0
  224. package/src/apps/vultr.json +225 -0
  225. package/src/apps/webflow.json +223 -0
  226. package/src/apps/wise.json +273 -0
  227. package/src/apps/wistia.json +283 -0
  228. package/src/apps/woocommerce.json +288 -0
  229. package/src/apps/wordpress.json +1675 -0
  230. package/src/apps/xero.json +257 -0
  231. package/src/apps/youtube-api.json +861 -0
  232. package/src/apps/zendesk.json +295 -0
  233. package/src/apps/zite.json +173 -0
  234. package/src/apps/zoho-crm.json +386 -0
  235. package/src/apps/zoo.json +193 -0
  236. package/src/apps/zoom.json +334 -0
@@ -1,105 +1,1537 @@
1
1
  {
2
2
  "slug": "github",
3
3
  "name": "GitHub",
4
- "description": "Code hosting, issues, pull requests, and repository management",
4
+ "description": "GitHub REST API - repos, issues, PRs, code, branches, commits, releases, actions, users, and search via OAuth2",
5
5
  "logo": "https://github.githubassets.com/favicons/favicon.svg",
6
- "categories": ["developer-tools", "version-control"],
6
+ "categories": [
7
+ "development",
8
+ "git",
9
+ "code",
10
+ "collaboration",
11
+ "github",
12
+ "oauth2"
13
+ ],
7
14
  "base_url": "https://api.github.com",
8
15
  "auth": {
9
- "types": ["bearer", "oauth2"],
10
- "headers": { "Authorization": "Bearer {{token}}", "Accept": "application/vnd.github+json" },
16
+ "types": [
17
+ "bearer",
18
+ "oauth2"
19
+ ],
20
+ "headers": {
21
+ "Authorization": "Bearer {{token}}"
22
+ },
23
+ "credential_fields": [
24
+ {
25
+ "name": "token",
26
+ "label": "access_token"
27
+ }
28
+ ],
11
29
  "oauth2": {
12
30
  "authorize_url": "https://github.com/login/oauth/authorize",
13
31
  "token_url": "https://github.com/login/oauth/access_token",
14
- "scopes": ["repo", "read:user", "read:org"],
32
+ "scopes": [
33
+ "repo",
34
+ "repo:status",
35
+ "repo_deployment",
36
+ "public_repo",
37
+ "repo:invite",
38
+ "security_events",
39
+ "admin:repo_hook",
40
+ "write:repo_hook",
41
+ "read:repo_hook",
42
+ "admin:org",
43
+ "write:org",
44
+ "read:org",
45
+ "admin:public_key",
46
+ "write:public_key",
47
+ "read:public_key",
48
+ "admin:org_hook",
49
+ "gist",
50
+ "notifications",
51
+ "user",
52
+ "read:user",
53
+ "user:email",
54
+ "user:follow",
55
+ "project",
56
+ "read:project",
57
+ "delete_repo",
58
+ "write:packages",
59
+ "read:packages",
60
+ "delete:packages",
61
+ "admin:gpg_key",
62
+ "write:gpg_key",
63
+ "read:gpg_key",
64
+ "codespace",
65
+ "workflow"
66
+ ],
15
67
  "client_id_required": true,
16
- "pkce": false,
17
- "setup_url": "https://github.com/settings/developers",
18
- "setup_steps": [
19
- "Go to GitHub Settings > Developer settings > OAuth Apps",
20
- "Click 'New OAuth App'",
21
- "Set the callback URL to your Apteva instance: {callback_url}",
22
- "Copy the Client ID and generate a Client Secret"
23
- ]
24
- },
25
- "credential_fields": [
26
- { "name": "token", "label": "Personal Access Token", "description": "GitHub PAT with repo and user scopes (Settings > Developer settings > Tokens)" }
27
- ]
68
+ "pkce": false
69
+ }
28
70
  },
29
71
  "tools": [
72
+ {
73
+ "name": "get_authenticated_user",
74
+ "description": "Get the authenticated user's profile including login, name, email, bio, public repos count, followers, and account details",
75
+ "method": "GET",
76
+ "path": "/user",
77
+ "input_schema": {
78
+ "type": "object",
79
+ "properties": {}
80
+ }
81
+ },
82
+ {
83
+ "name": "get_user",
84
+ "description": "Get a user's public profile by their username",
85
+ "method": "GET",
86
+ "path": "/users/%7B%7Busername%7D%7D",
87
+ "input_schema": {
88
+ "type": "object",
89
+ "properties": {
90
+ "username": {
91
+ "type": "string",
92
+ "description": "GitHub username"
93
+ }
94
+ },
95
+ "required": [
96
+ "username"
97
+ ]
98
+ }
99
+ },
30
100
  {
31
101
  "name": "list_repos",
32
- "description": "List repositories for the authenticated user",
102
+ "description": "List repositories for the authenticated user. Returns repos you own, collaborate on, or are a member of.",
33
103
  "method": "GET",
34
104
  "path": "/user/repos",
35
105
  "input_schema": {
36
106
  "type": "object",
37
107
  "properties": {
38
- "sort": { "type": "string", "enum": ["created", "updated", "pushed", "full_name"], "description": "Sort field" },
39
- "per_page": { "type": "number", "description": "Results per page (max 100)", "default": 30 }
108
+ "type": {
109
+ "type": "string",
110
+ "description": "Type of repos to list",
111
+ "enum": [
112
+ "all",
113
+ "owner",
114
+ "public",
115
+ "private",
116
+ "member"
117
+ ],
118
+ "default": "all"
119
+ },
120
+ "sort": {
121
+ "type": "string",
122
+ "description": "Sort field",
123
+ "enum": [
124
+ "created",
125
+ "updated",
126
+ "pushed",
127
+ "full_name"
128
+ ],
129
+ "default": "updated"
130
+ },
131
+ "direction": {
132
+ "type": "string",
133
+ "description": "Sort direction",
134
+ "enum": [
135
+ "asc",
136
+ "desc"
137
+ ],
138
+ "default": "desc"
139
+ },
140
+ "per_page": {
141
+ "type": "integer",
142
+ "description": "Results per page (max 100)",
143
+ "default": 30
144
+ },
145
+ "page": {
146
+ "type": "integer",
147
+ "description": "Page number",
148
+ "default": 1
149
+ }
40
150
  }
41
151
  }
42
152
  },
43
153
  {
44
154
  "name": "get_repo",
45
- "description": "Get a repository by owner and name",
155
+ "description": "Get detailed information about a repository including description, stars, forks, language, default branch, and permissions",
156
+ "method": "GET",
157
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D",
158
+ "input_schema": {
159
+ "type": "object",
160
+ "properties": {
161
+ "owner": {
162
+ "type": "string",
163
+ "description": "Repository owner (user or org)"
164
+ },
165
+ "repo": {
166
+ "type": "string",
167
+ "description": "Repository name"
168
+ }
169
+ },
170
+ "required": [
171
+ "owner",
172
+ "repo"
173
+ ]
174
+ }
175
+ },
176
+ {
177
+ "name": "list_user_repos",
178
+ "description": "List public repositories for a specific user",
179
+ "method": "GET",
180
+ "path": "/users/%7B%7Busername%7D%7D/repos",
181
+ "input_schema": {
182
+ "type": "object",
183
+ "properties": {
184
+ "username": {
185
+ "type": "string",
186
+ "description": "GitHub username"
187
+ },
188
+ "sort": {
189
+ "type": "string",
190
+ "description": "Sort field",
191
+ "enum": [
192
+ "created",
193
+ "updated",
194
+ "pushed",
195
+ "full_name"
196
+ ],
197
+ "default": "updated"
198
+ },
199
+ "per_page": {
200
+ "type": "integer",
201
+ "description": "Results per page (max 100)",
202
+ "default": 30
203
+ },
204
+ "page": {
205
+ "type": "integer",
206
+ "description": "Page number",
207
+ "default": 1
208
+ }
209
+ },
210
+ "required": [
211
+ "username"
212
+ ]
213
+ }
214
+ },
215
+ {
216
+ "name": "search_repos",
217
+ "description": "Search for repositories using GitHub search syntax. Supports qualifiers like language:, stars:>, topic:, etc.",
218
+ "method": "GET",
219
+ "path": "/search/repositories",
220
+ "input_schema": {
221
+ "type": "object",
222
+ "properties": {
223
+ "q": {
224
+ "type": "string",
225
+ "description": "Search query (supports qualifiers like language:python, stars:>100, topic:machine-learning)"
226
+ },
227
+ "sort": {
228
+ "type": "string",
229
+ "description": "Sort field",
230
+ "enum": [
231
+ "stars",
232
+ "forks",
233
+ "help-wanted-issues",
234
+ "updated"
235
+ ],
236
+ "default": "stars"
237
+ },
238
+ "order": {
239
+ "type": "string",
240
+ "description": "Sort order",
241
+ "enum": [
242
+ "asc",
243
+ "desc"
244
+ ],
245
+ "default": "desc"
246
+ },
247
+ "per_page": {
248
+ "type": "integer",
249
+ "description": "Results per page (max 100)",
250
+ "default": 30
251
+ },
252
+ "page": {
253
+ "type": "integer",
254
+ "description": "Page number",
255
+ "default": 1
256
+ }
257
+ },
258
+ "required": [
259
+ "q"
260
+ ]
261
+ }
262
+ },
263
+ {
264
+ "name": "search_code",
265
+ "description": "Search for code across all repositories. Supports qualifiers like repo:, path:, language:, extension:",
46
266
  "method": "GET",
47
- "path": "/repos/{owner}/{repo}",
267
+ "path": "/search/code",
48
268
  "input_schema": {
49
269
  "type": "object",
50
270
  "properties": {
51
- "owner": { "type": "string", "description": "Repository owner" },
52
- "repo": { "type": "string", "description": "Repository name" }
271
+ "q": {
272
+ "type": "string",
273
+ "description": "Search query (e.g., 'addClass repo:jquery/jquery', 'filename:config.yml language:yaml')"
274
+ },
275
+ "sort": {
276
+ "type": "string",
277
+ "description": "Sort field (only 'indexed' supported)",
278
+ "enum": [
279
+ "indexed"
280
+ ]
281
+ },
282
+ "order": {
283
+ "type": "string",
284
+ "description": "Sort order",
285
+ "enum": [
286
+ "asc",
287
+ "desc"
288
+ ],
289
+ "default": "desc"
290
+ },
291
+ "per_page": {
292
+ "type": "integer",
293
+ "description": "Results per page (max 100)",
294
+ "default": 30
295
+ },
296
+ "page": {
297
+ "type": "integer",
298
+ "description": "Page number",
299
+ "default": 1
300
+ }
53
301
  },
54
- "required": ["owner", "repo"]
302
+ "required": [
303
+ "q"
304
+ ]
305
+ }
306
+ },
307
+ {
308
+ "name": "get_contents",
309
+ "description": "Get repository contents — a file (with content) or directory listing. For files up to 1MB, content is base64 encoded.",
310
+ "method": "GET",
311
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/contents/%7B%7Bpath%7D%7D",
312
+ "input_schema": {
313
+ "type": "object",
314
+ "properties": {
315
+ "owner": {
316
+ "type": "string",
317
+ "description": "Repository owner"
318
+ },
319
+ "repo": {
320
+ "type": "string",
321
+ "description": "Repository name"
322
+ },
323
+ "path": {
324
+ "type": "string",
325
+ "description": "Path to file or directory (empty string for repo root)",
326
+ "default": ""
327
+ },
328
+ "ref": {
329
+ "type": "string",
330
+ "description": "Branch, tag, or commit SHA (defaults to default branch)"
331
+ }
332
+ },
333
+ "required": [
334
+ "owner",
335
+ "repo"
336
+ ]
337
+ }
338
+ },
339
+ {
340
+ "name": "create_or_update_file",
341
+ "description": "Create or update a file in a repository. Content must be base64 encoded. To update, include the SHA of the file being replaced (from get-contents).",
342
+ "method": "PUT",
343
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/contents/%7B%7Bpath%7D%7D",
344
+ "input_schema": {
345
+ "type": "object",
346
+ "properties": {
347
+ "owner": {
348
+ "type": "string",
349
+ "description": "Repository owner"
350
+ },
351
+ "repo": {
352
+ "type": "string",
353
+ "description": "Repository name"
354
+ },
355
+ "path": {
356
+ "type": "string",
357
+ "description": "Path for the file"
358
+ },
359
+ "message": {
360
+ "type": "string",
361
+ "description": "Commit message"
362
+ },
363
+ "content": {
364
+ "type": "string",
365
+ "description": "File content (base64 encoded)"
366
+ },
367
+ "sha": {
368
+ "type": "string",
369
+ "description": "SHA of file being replaced (required for updates, get from get-contents)"
370
+ },
371
+ "branch": {
372
+ "type": "string",
373
+ "description": "Branch to commit to (defaults to default branch)"
374
+ }
375
+ },
376
+ "required": [
377
+ "owner",
378
+ "repo",
379
+ "path",
380
+ "message",
381
+ "content"
382
+ ]
383
+ }
384
+ },
385
+ {
386
+ "name": "delete_file",
387
+ "description": "Delete a file from a repository. Requires the file's SHA (from get-contents).",
388
+ "method": "DELETE",
389
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/contents/%7B%7Bpath%7D%7D",
390
+ "input_schema": {
391
+ "type": "object",
392
+ "properties": {
393
+ "owner": {
394
+ "type": "string",
395
+ "description": "Repository owner"
396
+ },
397
+ "repo": {
398
+ "type": "string",
399
+ "description": "Repository name"
400
+ },
401
+ "path": {
402
+ "type": "string",
403
+ "description": "Path to the file to delete"
404
+ },
405
+ "message": {
406
+ "type": "string",
407
+ "description": "Commit message"
408
+ },
409
+ "sha": {
410
+ "type": "string",
411
+ "description": "SHA of file being deleted (from get-contents)"
412
+ },
413
+ "branch": {
414
+ "type": "string",
415
+ "description": "Branch to commit to"
416
+ }
417
+ },
418
+ "required": [
419
+ "owner",
420
+ "repo",
421
+ "path",
422
+ "message",
423
+ "sha"
424
+ ]
425
+ }
426
+ },
427
+ {
428
+ "name": "list_branches",
429
+ "description": "List branches in a repository",
430
+ "method": "GET",
431
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/branches",
432
+ "input_schema": {
433
+ "type": "object",
434
+ "properties": {
435
+ "owner": {
436
+ "type": "string",
437
+ "description": "Repository owner"
438
+ },
439
+ "repo": {
440
+ "type": "string",
441
+ "description": "Repository name"
442
+ },
443
+ "per_page": {
444
+ "type": "integer",
445
+ "description": "Results per page (max 100)",
446
+ "default": 30
447
+ },
448
+ "page": {
449
+ "type": "integer",
450
+ "description": "Page number",
451
+ "default": 1
452
+ }
453
+ },
454
+ "required": [
455
+ "owner",
456
+ "repo"
457
+ ]
458
+ }
459
+ },
460
+ {
461
+ "name": "create_branch",
462
+ "description": "Create a new branch. First get the SHA of the source branch via list-branches or get-contents, then create a git ref.",
463
+ "method": "POST",
464
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/git/refs",
465
+ "input_schema": {
466
+ "type": "object",
467
+ "properties": {
468
+ "owner": {
469
+ "type": "string",
470
+ "description": "Repository owner"
471
+ },
472
+ "repo": {
473
+ "type": "string",
474
+ "description": "Repository name"
475
+ },
476
+ "ref": {
477
+ "type": "string",
478
+ "description": "Full git ref to create (e.g., refs/heads/my-new-branch)"
479
+ },
480
+ "sha": {
481
+ "type": "string",
482
+ "description": "SHA of the commit to branch from"
483
+ }
484
+ },
485
+ "required": [
486
+ "owner",
487
+ "repo",
488
+ "ref",
489
+ "sha"
490
+ ]
491
+ }
492
+ },
493
+ {
494
+ "name": "list_commits",
495
+ "description": "List commits in a repository. Can filter by branch, path, author, and date range.",
496
+ "method": "GET",
497
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/commits",
498
+ "input_schema": {
499
+ "type": "object",
500
+ "properties": {
501
+ "owner": {
502
+ "type": "string",
503
+ "description": "Repository owner"
504
+ },
505
+ "repo": {
506
+ "type": "string",
507
+ "description": "Repository name"
508
+ },
509
+ "sha": {
510
+ "type": "string",
511
+ "description": "Branch name or commit SHA to start from"
512
+ },
513
+ "path": {
514
+ "type": "string",
515
+ "description": "Only commits containing this file path"
516
+ },
517
+ "author": {
518
+ "type": "string",
519
+ "description": "GitHub username or email to filter by"
520
+ },
521
+ "since": {
522
+ "type": "string",
523
+ "description": "ISO 8601 date — only commits after this date"
524
+ },
525
+ "until": {
526
+ "type": "string",
527
+ "description": "ISO 8601 date — only commits before this date"
528
+ },
529
+ "per_page": {
530
+ "type": "integer",
531
+ "description": "Results per page (max 100)",
532
+ "default": 30
533
+ },
534
+ "page": {
535
+ "type": "integer",
536
+ "description": "Page number",
537
+ "default": 1
538
+ }
539
+ },
540
+ "required": [
541
+ "owner",
542
+ "repo"
543
+ ]
55
544
  }
56
545
  },
57
546
  {
58
547
  "name": "list_issues",
59
- "description": "List issues for a repository",
548
+ "description": "List issues in a repository. Filter by state, labels, assignee, milestone, and more.",
60
549
  "method": "GET",
61
- "path": "/repos/{owner}/{repo}/issues",
550
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/issues",
62
551
  "input_schema": {
63
552
  "type": "object",
64
553
  "properties": {
65
- "owner": { "type": "string", "description": "Repository owner" },
66
- "repo": { "type": "string", "description": "Repository name" },
67
- "state": { "type": "string", "enum": ["open", "closed", "all"], "default": "open" },
68
- "per_page": { "type": "number", "default": 30 }
554
+ "owner": {
555
+ "type": "string",
556
+ "description": "Repository owner"
557
+ },
558
+ "repo": {
559
+ "type": "string",
560
+ "description": "Repository name"
561
+ },
562
+ "state": {
563
+ "type": "string",
564
+ "description": "Issue state filter",
565
+ "enum": [
566
+ "open",
567
+ "closed",
568
+ "all"
569
+ ],
570
+ "default": "open"
571
+ },
572
+ "labels": {
573
+ "type": "string",
574
+ "description": "Comma-separated label names"
575
+ },
576
+ "assignee": {
577
+ "type": "string",
578
+ "description": "Filter by assignee username (use * for any, none for unassigned)"
579
+ },
580
+ "sort": {
581
+ "type": "string",
582
+ "description": "Sort field",
583
+ "enum": [
584
+ "created",
585
+ "updated",
586
+ "comments"
587
+ ],
588
+ "default": "created"
589
+ },
590
+ "direction": {
591
+ "type": "string",
592
+ "description": "Sort direction",
593
+ "enum": [
594
+ "asc",
595
+ "desc"
596
+ ],
597
+ "default": "desc"
598
+ },
599
+ "per_page": {
600
+ "type": "integer",
601
+ "description": "Results per page (max 100)",
602
+ "default": 30
603
+ },
604
+ "page": {
605
+ "type": "integer",
606
+ "description": "Page number",
607
+ "default": 1
608
+ }
69
609
  },
70
- "required": ["owner", "repo"]
610
+ "required": [
611
+ "owner",
612
+ "repo"
613
+ ]
614
+ }
615
+ },
616
+ {
617
+ "name": "get_issue",
618
+ "description": "Get a specific issue by number with full details including body, labels, assignees, and milestone",
619
+ "method": "GET",
620
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/issues/%7B%7Bissue_number%7D%7D",
621
+ "input_schema": {
622
+ "type": "object",
623
+ "properties": {
624
+ "owner": {
625
+ "type": "string",
626
+ "description": "Repository owner"
627
+ },
628
+ "repo": {
629
+ "type": "string",
630
+ "description": "Repository name"
631
+ },
632
+ "issue_number": {
633
+ "type": "integer",
634
+ "description": "Issue number"
635
+ }
636
+ },
637
+ "required": [
638
+ "owner",
639
+ "repo",
640
+ "issue_number"
641
+ ]
71
642
  }
72
643
  },
73
644
  {
74
645
  "name": "create_issue",
75
- "description": "Create an issue in a repository",
646
+ "description": "Create a new issue in a repository with title, body, labels, and assignees",
647
+ "method": "POST",
648
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/issues",
649
+ "input_schema": {
650
+ "type": "object",
651
+ "properties": {
652
+ "owner": {
653
+ "type": "string",
654
+ "description": "Repository owner"
655
+ },
656
+ "repo": {
657
+ "type": "string",
658
+ "description": "Repository name"
659
+ },
660
+ "title": {
661
+ "type": "string",
662
+ "description": "Issue title"
663
+ },
664
+ "body": {
665
+ "type": "string",
666
+ "description": "Issue body (supports markdown)"
667
+ },
668
+ "labels": {
669
+ "type": "array",
670
+ "items": {
671
+ "type": "string"
672
+ },
673
+ "description": "Label names to apply"
674
+ },
675
+ "assignees": {
676
+ "type": "array",
677
+ "items": {
678
+ "type": "string"
679
+ },
680
+ "description": "Usernames to assign"
681
+ }
682
+ },
683
+ "required": [
684
+ "owner",
685
+ "repo",
686
+ "title"
687
+ ]
688
+ }
689
+ },
690
+ {
691
+ "name": "update_issue",
692
+ "description": "Update an issue — change title, body, state, labels, or assignees",
693
+ "method": "PATCH",
694
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/issues/%7B%7Bissue_number%7D%7D",
695
+ "input_schema": {
696
+ "type": "object",
697
+ "properties": {
698
+ "owner": {
699
+ "type": "string",
700
+ "description": "Repository owner"
701
+ },
702
+ "repo": {
703
+ "type": "string",
704
+ "description": "Repository name"
705
+ },
706
+ "issue_number": {
707
+ "type": "integer",
708
+ "description": "Issue number"
709
+ },
710
+ "title": {
711
+ "type": "string",
712
+ "description": "New title"
713
+ },
714
+ "body": {
715
+ "type": "string",
716
+ "description": "New body (markdown)"
717
+ },
718
+ "state": {
719
+ "type": "string",
720
+ "description": "Issue state",
721
+ "enum": [
722
+ "open",
723
+ "closed"
724
+ ]
725
+ },
726
+ "labels": {
727
+ "type": "array",
728
+ "items": {
729
+ "type": "string"
730
+ },
731
+ "description": "Labels to set (replaces all existing labels)"
732
+ },
733
+ "assignees": {
734
+ "type": "array",
735
+ "items": {
736
+ "type": "string"
737
+ },
738
+ "description": "Assignees to set (replaces all existing)"
739
+ }
740
+ },
741
+ "required": [
742
+ "owner",
743
+ "repo",
744
+ "issue_number"
745
+ ]
746
+ }
747
+ },
748
+ {
749
+ "name": "list_issue_comments",
750
+ "description": "List comments on an issue or pull request",
751
+ "method": "GET",
752
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/issues/%7B%7Bissue_number%7D%7D/comments",
753
+ "input_schema": {
754
+ "type": "object",
755
+ "properties": {
756
+ "owner": {
757
+ "type": "string",
758
+ "description": "Repository owner"
759
+ },
760
+ "repo": {
761
+ "type": "string",
762
+ "description": "Repository name"
763
+ },
764
+ "issue_number": {
765
+ "type": "integer",
766
+ "description": "Issue or PR number"
767
+ },
768
+ "per_page": {
769
+ "type": "integer",
770
+ "description": "Results per page (max 100)",
771
+ "default": 30
772
+ },
773
+ "page": {
774
+ "type": "integer",
775
+ "description": "Page number",
776
+ "default": 1
777
+ }
778
+ },
779
+ "required": [
780
+ "owner",
781
+ "repo",
782
+ "issue_number"
783
+ ]
784
+ }
785
+ },
786
+ {
787
+ "name": "add_issue_comment",
788
+ "description": "Add a comment to an issue or pull request",
789
+ "method": "POST",
790
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/issues/%7B%7Bissue_number%7D%7D/comments",
791
+ "input_schema": {
792
+ "type": "object",
793
+ "properties": {
794
+ "owner": {
795
+ "type": "string",
796
+ "description": "Repository owner"
797
+ },
798
+ "repo": {
799
+ "type": "string",
800
+ "description": "Repository name"
801
+ },
802
+ "issue_number": {
803
+ "type": "integer",
804
+ "description": "Issue or PR number"
805
+ },
806
+ "body": {
807
+ "type": "string",
808
+ "description": "Comment text (supports markdown)"
809
+ }
810
+ },
811
+ "required": [
812
+ "owner",
813
+ "repo",
814
+ "issue_number",
815
+ "body"
816
+ ]
817
+ }
818
+ },
819
+ {
820
+ "name": "search_issues",
821
+ "description": "Search issues and pull requests across all repos. Supports qualifiers like repo:, is:pr, is:issue, label:, author:, state:",
822
+ "method": "GET",
823
+ "path": "/search/issues",
824
+ "input_schema": {
825
+ "type": "object",
826
+ "properties": {
827
+ "q": {
828
+ "type": "string",
829
+ "description": "Search query (e.g., 'bug label:bug is:open repo:owner/repo', 'is:pr author:username')"
830
+ },
831
+ "sort": {
832
+ "type": "string",
833
+ "description": "Sort field",
834
+ "enum": [
835
+ "comments",
836
+ "reactions",
837
+ "reactions-+1",
838
+ "reactions--1",
839
+ "reactions-smile",
840
+ "reactions-thinking_face",
841
+ "reactions-heart",
842
+ "reactions-tada",
843
+ "interactions",
844
+ "created",
845
+ "updated"
846
+ ],
847
+ "default": "created"
848
+ },
849
+ "order": {
850
+ "type": "string",
851
+ "description": "Sort order",
852
+ "enum": [
853
+ "asc",
854
+ "desc"
855
+ ],
856
+ "default": "desc"
857
+ },
858
+ "per_page": {
859
+ "type": "integer",
860
+ "description": "Results per page (max 100)",
861
+ "default": 30
862
+ },
863
+ "page": {
864
+ "type": "integer",
865
+ "description": "Page number",
866
+ "default": 1
867
+ }
868
+ },
869
+ "required": [
870
+ "q"
871
+ ]
872
+ }
873
+ },
874
+ {
875
+ "name": "list_pulls",
876
+ "description": "List pull requests in a repository with state, branch, and sort filters",
877
+ "method": "GET",
878
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/pulls",
879
+ "input_schema": {
880
+ "type": "object",
881
+ "properties": {
882
+ "owner": {
883
+ "type": "string",
884
+ "description": "Repository owner"
885
+ },
886
+ "repo": {
887
+ "type": "string",
888
+ "description": "Repository name"
889
+ },
890
+ "state": {
891
+ "type": "string",
892
+ "description": "PR state filter",
893
+ "enum": [
894
+ "open",
895
+ "closed",
896
+ "all"
897
+ ],
898
+ "default": "open"
899
+ },
900
+ "head": {
901
+ "type": "string",
902
+ "description": "Filter by head branch (format: user:branch)"
903
+ },
904
+ "base": {
905
+ "type": "string",
906
+ "description": "Filter by base branch"
907
+ },
908
+ "sort": {
909
+ "type": "string",
910
+ "description": "Sort field",
911
+ "enum": [
912
+ "created",
913
+ "updated",
914
+ "popularity",
915
+ "long-running"
916
+ ],
917
+ "default": "created"
918
+ },
919
+ "direction": {
920
+ "type": "string",
921
+ "description": "Sort direction",
922
+ "enum": [
923
+ "asc",
924
+ "desc"
925
+ ],
926
+ "default": "desc"
927
+ },
928
+ "per_page": {
929
+ "type": "integer",
930
+ "description": "Results per page (max 100)",
931
+ "default": 30
932
+ },
933
+ "page": {
934
+ "type": "integer",
935
+ "description": "Page number",
936
+ "default": 1
937
+ }
938
+ },
939
+ "required": [
940
+ "owner",
941
+ "repo"
942
+ ]
943
+ }
944
+ },
945
+ {
946
+ "name": "get_pull",
947
+ "description": "Get a specific pull request with full details including diff stats, mergeable status, and review status",
948
+ "method": "GET",
949
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/pulls/%7B%7Bpull_number%7D%7D",
950
+ "input_schema": {
951
+ "type": "object",
952
+ "properties": {
953
+ "owner": {
954
+ "type": "string",
955
+ "description": "Repository owner"
956
+ },
957
+ "repo": {
958
+ "type": "string",
959
+ "description": "Repository name"
960
+ },
961
+ "pull_number": {
962
+ "type": "integer",
963
+ "description": "Pull request number"
964
+ }
965
+ },
966
+ "required": [
967
+ "owner",
968
+ "repo",
969
+ "pull_number"
970
+ ]
971
+ }
972
+ },
973
+ {
974
+ "name": "create_pull",
975
+ "description": "Create a new pull request from a head branch into a base branch",
976
+ "method": "POST",
977
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/pulls",
978
+ "input_schema": {
979
+ "type": "object",
980
+ "properties": {
981
+ "owner": {
982
+ "type": "string",
983
+ "description": "Repository owner"
984
+ },
985
+ "repo": {
986
+ "type": "string",
987
+ "description": "Repository name"
988
+ },
989
+ "title": {
990
+ "type": "string",
991
+ "description": "PR title"
992
+ },
993
+ "head": {
994
+ "type": "string",
995
+ "description": "Branch containing changes (e.g., 'feature-branch' or 'user:feature-branch' for cross-repo)"
996
+ },
997
+ "base": {
998
+ "type": "string",
999
+ "description": "Branch to merge into (e.g., 'main')"
1000
+ },
1001
+ "body": {
1002
+ "type": "string",
1003
+ "description": "PR description (supports markdown)"
1004
+ },
1005
+ "draft": {
1006
+ "type": "boolean",
1007
+ "description": "Create as draft PR",
1008
+ "default": false
1009
+ }
1010
+ },
1011
+ "required": [
1012
+ "owner",
1013
+ "repo",
1014
+ "title",
1015
+ "head",
1016
+ "base"
1017
+ ]
1018
+ }
1019
+ },
1020
+ {
1021
+ "name": "merge_pull",
1022
+ "description": "Merge a pull request. Choose merge method: merge commit, squash, or rebase.",
1023
+ "method": "PUT",
1024
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/pulls/%7B%7Bpull_number%7D%7D/merge",
1025
+ "input_schema": {
1026
+ "type": "object",
1027
+ "properties": {
1028
+ "owner": {
1029
+ "type": "string",
1030
+ "description": "Repository owner"
1031
+ },
1032
+ "repo": {
1033
+ "type": "string",
1034
+ "description": "Repository name"
1035
+ },
1036
+ "pull_number": {
1037
+ "type": "integer",
1038
+ "description": "Pull request number"
1039
+ },
1040
+ "commit_title": {
1041
+ "type": "string",
1042
+ "description": "Title for the merge commit"
1043
+ },
1044
+ "commit_message": {
1045
+ "type": "string",
1046
+ "description": "Extra detail for the merge commit"
1047
+ },
1048
+ "merge_method": {
1049
+ "type": "string",
1050
+ "description": "Merge method to use",
1051
+ "enum": [
1052
+ "merge",
1053
+ "squash",
1054
+ "rebase"
1055
+ ],
1056
+ "default": "merge"
1057
+ }
1058
+ },
1059
+ "required": [
1060
+ "owner",
1061
+ "repo",
1062
+ "pull_number"
1063
+ ]
1064
+ }
1065
+ },
1066
+ {
1067
+ "name": "list_pull_files",
1068
+ "description": "List files changed in a pull request with patch/diff details",
1069
+ "method": "GET",
1070
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/pulls/%7B%7Bpull_number%7D%7D/files",
1071
+ "input_schema": {
1072
+ "type": "object",
1073
+ "properties": {
1074
+ "owner": {
1075
+ "type": "string",
1076
+ "description": "Repository owner"
1077
+ },
1078
+ "repo": {
1079
+ "type": "string",
1080
+ "description": "Repository name"
1081
+ },
1082
+ "pull_number": {
1083
+ "type": "integer",
1084
+ "description": "Pull request number"
1085
+ },
1086
+ "per_page": {
1087
+ "type": "integer",
1088
+ "description": "Results per page (max 100)",
1089
+ "default": 30
1090
+ },
1091
+ "page": {
1092
+ "type": "integer",
1093
+ "description": "Page number",
1094
+ "default": 1
1095
+ }
1096
+ },
1097
+ "required": [
1098
+ "owner",
1099
+ "repo",
1100
+ "pull_number"
1101
+ ]
1102
+ }
1103
+ },
1104
+ {
1105
+ "name": "list_releases",
1106
+ "description": "List releases in a repository, ordered by creation date",
1107
+ "method": "GET",
1108
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/releases",
1109
+ "input_schema": {
1110
+ "type": "object",
1111
+ "properties": {
1112
+ "owner": {
1113
+ "type": "string",
1114
+ "description": "Repository owner"
1115
+ },
1116
+ "repo": {
1117
+ "type": "string",
1118
+ "description": "Repository name"
1119
+ },
1120
+ "per_page": {
1121
+ "type": "integer",
1122
+ "description": "Results per page (max 100)",
1123
+ "default": 30
1124
+ },
1125
+ "page": {
1126
+ "type": "integer",
1127
+ "description": "Page number",
1128
+ "default": 1
1129
+ }
1130
+ },
1131
+ "required": [
1132
+ "owner",
1133
+ "repo"
1134
+ ]
1135
+ }
1136
+ },
1137
+ {
1138
+ "name": "create_release",
1139
+ "description": "Create a new release with a tag, name, and release notes",
76
1140
  "method": "POST",
77
- "path": "/repos/{owner}/{repo}/issues",
1141
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/releases",
1142
+ "input_schema": {
1143
+ "type": "object",
1144
+ "properties": {
1145
+ "owner": {
1146
+ "type": "string",
1147
+ "description": "Repository owner"
1148
+ },
1149
+ "repo": {
1150
+ "type": "string",
1151
+ "description": "Repository name"
1152
+ },
1153
+ "tag_name": {
1154
+ "type": "string",
1155
+ "description": "Tag name for the release (e.g., v1.0.0)"
1156
+ },
1157
+ "name": {
1158
+ "type": "string",
1159
+ "description": "Release title"
1160
+ },
1161
+ "body": {
1162
+ "type": "string",
1163
+ "description": "Release notes (supports markdown)"
1164
+ },
1165
+ "target_commitish": {
1166
+ "type": "string",
1167
+ "description": "Branch or commit SHA to tag (defaults to default branch)"
1168
+ },
1169
+ "draft": {
1170
+ "type": "boolean",
1171
+ "description": "Create as draft release",
1172
+ "default": false
1173
+ },
1174
+ "prerelease": {
1175
+ "type": "boolean",
1176
+ "description": "Mark as pre-release",
1177
+ "default": false
1178
+ },
1179
+ "generate_release_notes": {
1180
+ "type": "boolean",
1181
+ "description": "Auto-generate release notes from commits",
1182
+ "default": false
1183
+ }
1184
+ },
1185
+ "required": [
1186
+ "owner",
1187
+ "repo",
1188
+ "tag_name"
1189
+ ]
1190
+ }
1191
+ },
1192
+ {
1193
+ "name": "list_workflows",
1194
+ "description": "List GitHub Actions workflows in a repository",
1195
+ "method": "GET",
1196
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/actions/workflows",
1197
+ "input_schema": {
1198
+ "type": "object",
1199
+ "properties": {
1200
+ "owner": {
1201
+ "type": "string",
1202
+ "description": "Repository owner"
1203
+ },
1204
+ "repo": {
1205
+ "type": "string",
1206
+ "description": "Repository name"
1207
+ },
1208
+ "per_page": {
1209
+ "type": "integer",
1210
+ "description": "Results per page (max 100)",
1211
+ "default": 30
1212
+ },
1213
+ "page": {
1214
+ "type": "integer",
1215
+ "description": "Page number",
1216
+ "default": 1
1217
+ }
1218
+ },
1219
+ "required": [
1220
+ "owner",
1221
+ "repo"
1222
+ ]
1223
+ }
1224
+ },
1225
+ {
1226
+ "name": "list_workflow_runs",
1227
+ "description": "List recent runs for a specific workflow",
1228
+ "method": "GET",
1229
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/actions/workflows/%7B%7Bworkflow_id%7D%7D/runs",
1230
+ "input_schema": {
1231
+ "type": "object",
1232
+ "properties": {
1233
+ "owner": {
1234
+ "type": "string",
1235
+ "description": "Repository owner"
1236
+ },
1237
+ "repo": {
1238
+ "type": "string",
1239
+ "description": "Repository name"
1240
+ },
1241
+ "workflow_id": {
1242
+ "type": "string",
1243
+ "description": "Workflow ID or filename (e.g., 'main.yml')"
1244
+ },
1245
+ "status": {
1246
+ "type": "string",
1247
+ "description": "Filter by status",
1248
+ "enum": [
1249
+ "completed",
1250
+ "action_required",
1251
+ "cancelled",
1252
+ "failure",
1253
+ "neutral",
1254
+ "skipped",
1255
+ "stale",
1256
+ "success",
1257
+ "timed_out",
1258
+ "in_progress",
1259
+ "queued",
1260
+ "requested",
1261
+ "waiting",
1262
+ "pending"
1263
+ ]
1264
+ },
1265
+ "branch": {
1266
+ "type": "string",
1267
+ "description": "Filter by branch"
1268
+ },
1269
+ "per_page": {
1270
+ "type": "integer",
1271
+ "description": "Results per page (max 100)",
1272
+ "default": 30
1273
+ },
1274
+ "page": {
1275
+ "type": "integer",
1276
+ "description": "Page number",
1277
+ "default": 1
1278
+ }
1279
+ },
1280
+ "required": [
1281
+ "owner",
1282
+ "repo",
1283
+ "workflow_id"
1284
+ ]
1285
+ }
1286
+ },
1287
+ {
1288
+ "name": "trigger_workflow",
1289
+ "description": "Manually trigger a workflow_dispatch workflow run",
1290
+ "method": "POST",
1291
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/actions/workflows/%7B%7Bworkflow_id%7D%7D/dispatches",
1292
+ "input_schema": {
1293
+ "type": "object",
1294
+ "properties": {
1295
+ "owner": {
1296
+ "type": "string",
1297
+ "description": "Repository owner"
1298
+ },
1299
+ "repo": {
1300
+ "type": "string",
1301
+ "description": "Repository name"
1302
+ },
1303
+ "workflow_id": {
1304
+ "type": "string",
1305
+ "description": "Workflow ID or filename (e.g., 'deploy.yml')"
1306
+ },
1307
+ "ref": {
1308
+ "type": "string",
1309
+ "description": "Branch or tag to run the workflow on"
1310
+ },
1311
+ "inputs": {
1312
+ "type": "object",
1313
+ "description": "Input parameters for the workflow (key-value pairs)"
1314
+ }
1315
+ },
1316
+ "required": [
1317
+ "owner",
1318
+ "repo",
1319
+ "workflow_id",
1320
+ "ref"
1321
+ ]
1322
+ }
1323
+ },
1324
+ {
1325
+ "name": "create_webhook",
1326
+ "description": "Create a repository webhook to receive event notifications",
1327
+ "method": "POST",
1328
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/hooks",
1329
+ "input_schema": {
1330
+ "type": "object",
1331
+ "properties": {
1332
+ "owner": {
1333
+ "type": "string",
1334
+ "description": "Repository owner"
1335
+ },
1336
+ "repo": {
1337
+ "type": "string",
1338
+ "description": "Repository name"
1339
+ },
1340
+ "config": {
1341
+ "type": "object",
1342
+ "description": "Webhook configuration",
1343
+ "properties": {
1344
+ "url": {
1345
+ "type": "string",
1346
+ "description": "Payload URL"
1347
+ },
1348
+ "content_type": {
1349
+ "type": "string",
1350
+ "description": "Content type (json or form)",
1351
+ "enum": [
1352
+ "json",
1353
+ "form"
1354
+ ],
1355
+ "default": "json"
1356
+ },
1357
+ "secret": {
1358
+ "type": "string",
1359
+ "description": "Webhook secret for payload signing"
1360
+ }
1361
+ },
1362
+ "required": [
1363
+ "url"
1364
+ ]
1365
+ },
1366
+ "events": {
1367
+ "type": "array",
1368
+ "items": {
1369
+ "type": "string"
1370
+ },
1371
+ "description": "Events to subscribe to (e.g., push, pull_request, issues). Use ['*'] for all.",
1372
+ "default": [
1373
+ "push"
1374
+ ]
1375
+ },
1376
+ "active": {
1377
+ "type": "boolean",
1378
+ "description": "Whether the webhook is active",
1379
+ "default": true
1380
+ }
1381
+ },
1382
+ "required": [
1383
+ "owner",
1384
+ "repo",
1385
+ "config"
1386
+ ]
1387
+ }
1388
+ },
1389
+ {
1390
+ "name": "list_webhooks",
1391
+ "description": "List webhooks configured for a repository",
1392
+ "method": "GET",
1393
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/hooks",
1394
+ "input_schema": {
1395
+ "type": "object",
1396
+ "properties": {
1397
+ "owner": {
1398
+ "type": "string",
1399
+ "description": "Repository owner"
1400
+ },
1401
+ "repo": {
1402
+ "type": "string",
1403
+ "description": "Repository name"
1404
+ },
1405
+ "per_page": {
1406
+ "type": "integer",
1407
+ "description": "Results per page (max 100)",
1408
+ "default": 30
1409
+ },
1410
+ "page": {
1411
+ "type": "integer",
1412
+ "description": "Page number",
1413
+ "default": 1
1414
+ }
1415
+ },
1416
+ "required": [
1417
+ "owner",
1418
+ "repo"
1419
+ ]
1420
+ }
1421
+ },
1422
+ {
1423
+ "name": "fork_repo",
1424
+ "description": "Fork a repository to the authenticated user's account or a specified organization",
1425
+ "method": "POST",
1426
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/forks",
1427
+ "input_schema": {
1428
+ "type": "object",
1429
+ "properties": {
1430
+ "owner": {
1431
+ "type": "string",
1432
+ "description": "Repository owner to fork from"
1433
+ },
1434
+ "repo": {
1435
+ "type": "string",
1436
+ "description": "Repository name to fork"
1437
+ },
1438
+ "organization": {
1439
+ "type": "string",
1440
+ "description": "Organization to fork into (omit to fork to your account)"
1441
+ },
1442
+ "name": {
1443
+ "type": "string",
1444
+ "description": "Custom name for the fork (defaults to original name)"
1445
+ }
1446
+ },
1447
+ "required": [
1448
+ "owner",
1449
+ "repo"
1450
+ ]
1451
+ }
1452
+ },
1453
+ {
1454
+ "name": "star_repo",
1455
+ "description": "Star a repository for the authenticated user",
1456
+ "method": "PUT",
1457
+ "path": "/user/starred/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D",
1458
+ "input_schema": {
1459
+ "type": "object",
1460
+ "properties": {
1461
+ "owner": {
1462
+ "type": "string",
1463
+ "description": "Repository owner"
1464
+ },
1465
+ "repo": {
1466
+ "type": "string",
1467
+ "description": "Repository name"
1468
+ }
1469
+ },
1470
+ "required": [
1471
+ "owner",
1472
+ "repo"
1473
+ ]
1474
+ }
1475
+ },
1476
+ {
1477
+ "name": "unstar_repo",
1478
+ "description": "Remove a star from a repository",
1479
+ "method": "DELETE",
1480
+ "path": "/user/starred/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D",
78
1481
  "input_schema": {
79
1482
  "type": "object",
80
1483
  "properties": {
81
- "owner": { "type": "string", "description": "Repository owner" },
82
- "repo": { "type": "string", "description": "Repository name" },
83
- "title": { "type": "string", "description": "Issue title" },
84
- "body": { "type": "string", "description": "Issue body (markdown)" },
85
- "labels": { "type": "array", "items": { "type": "string" }, "description": "Label names" }
1484
+ "owner": {
1485
+ "type": "string",
1486
+ "description": "Repository owner"
1487
+ },
1488
+ "repo": {
1489
+ "type": "string",
1490
+ "description": "Repository name"
1491
+ }
86
1492
  },
87
- "required": ["owner", "repo", "title"]
1493
+ "required": [
1494
+ "owner",
1495
+ "repo"
1496
+ ]
88
1497
  }
89
1498
  },
90
1499
  {
91
- "name": "list_pull_requests",
92
- "description": "List pull requests for a repository",
1500
+ "name": "compare_commits",
1501
+ "description": "Compare two commits, branches, or tags. Shows files changed and diff stats between base and head.",
93
1502
  "method": "GET",
94
- "path": "/repos/{owner}/{repo}/pulls",
1503
+ "path": "/repos/%7B%7Bowner%7D%7D/%7B%7Brepo%7D%7D/compare/%7B%7Bbasehead%7D%7D",
95
1504
  "input_schema": {
96
1505
  "type": "object",
97
1506
  "properties": {
98
- "owner": { "type": "string", "description": "Repository owner" },
99
- "repo": { "type": "string", "description": "Repository name" },
100
- "state": { "type": "string", "enum": ["open", "closed", "all"], "default": "open" }
1507
+ "owner": {
1508
+ "type": "string",
1509
+ "description": "Repository owner"
1510
+ },
1511
+ "repo": {
1512
+ "type": "string",
1513
+ "description": "Repository name"
1514
+ },
1515
+ "basehead": {
1516
+ "type": "string",
1517
+ "description": "Comparison in format base...head (e.g., main...feature-branch, v1.0.0...v2.0.0)"
1518
+ },
1519
+ "per_page": {
1520
+ "type": "integer",
1521
+ "description": "Results per page (max 100)",
1522
+ "default": 30
1523
+ },
1524
+ "page": {
1525
+ "type": "integer",
1526
+ "description": "Page number",
1527
+ "default": 1
1528
+ }
101
1529
  },
102
- "required": ["owner", "repo"]
1530
+ "required": [
1531
+ "owner",
1532
+ "repo",
1533
+ "basehead"
1534
+ ]
103
1535
  }
104
1536
  }
105
1537
  ]