@oh-gc/cli 0.4.5 → 0.6.0

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 (272) hide show
  1. package/README.md +161 -0
  2. package/dist/api/client.d.ts +5 -0
  3. package/dist/api/client.js +47 -1
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/collaborators.d.ts +32 -0
  6. package/dist/api/collaborators.js +23 -0
  7. package/dist/api/collaborators.js.map +1 -0
  8. package/dist/api/contents.d.ts +88 -0
  9. package/dist/api/contents.js +44 -0
  10. package/dist/api/contents.js.map +1 -0
  11. package/dist/api/enterprises.d.ts +55 -0
  12. package/dist/api/enterprises.js +16 -0
  13. package/dist/api/enterprises.js.map +1 -0
  14. package/dist/api/hooks.d.ts +35 -0
  15. package/dist/api/hooks.js +35 -0
  16. package/dist/api/hooks.js.map +1 -0
  17. package/dist/api/issues.d.ts +42 -0
  18. package/dist/api/issues.js +35 -0
  19. package/dist/api/issues.js.map +1 -1
  20. package/dist/api/labels.d.ts +27 -0
  21. package/dist/api/labels.js +35 -0
  22. package/dist/api/labels.js.map +1 -0
  23. package/dist/api/milestones.d.ts +34 -0
  24. package/dist/api/milestones.js +35 -0
  25. package/dist/api/milestones.js.map +1 -0
  26. package/dist/api/orgs.d.ts +43 -0
  27. package/dist/api/orgs.js +27 -0
  28. package/dist/api/orgs.js.map +1 -0
  29. package/dist/api/prs.d.ts +103 -0
  30. package/dist/api/prs.js +120 -0
  31. package/dist/api/prs.js.map +1 -1
  32. package/dist/api/repos.d.ts +170 -0
  33. package/dist/api/repos.js +68 -0
  34. package/dist/api/repos.js.map +1 -0
  35. package/dist/api/search.d.ts +49 -0
  36. package/dist/api/search.js +22 -0
  37. package/dist/api/search.js.map +1 -0
  38. package/dist/api/tags.d.ts +21 -0
  39. package/dist/api/tags.js +23 -0
  40. package/dist/api/tags.js.map +1 -0
  41. package/dist/api/user.d.ts +31 -0
  42. package/dist/api/user.js +21 -0
  43. package/dist/api/user.js.map +1 -1
  44. package/dist/commands/branch/get.d.ts +13 -0
  45. package/dist/commands/branch/get.js +50 -0
  46. package/dist/commands/branch/get.js.map +1 -0
  47. package/dist/commands/branch/list.d.ts +13 -0
  48. package/dist/commands/branch/list.js +55 -0
  49. package/dist/commands/branch/list.js.map +1 -0
  50. package/dist/commands/branch/protect.d.ts +17 -0
  51. package/dist/commands/branch/protect.js +81 -0
  52. package/dist/commands/branch/protect.js.map +1 -0
  53. package/dist/commands/collaborator/add.d.ts +14 -0
  54. package/dist/commands/collaborator/add.js +50 -0
  55. package/dist/commands/collaborator/add.js.map +1 -0
  56. package/dist/commands/collaborator/list.d.ts +13 -0
  57. package/dist/commands/collaborator/list.js +61 -0
  58. package/dist/commands/collaborator/list.js.map +1 -0
  59. package/dist/commands/collaborator/permission.d.ts +13 -0
  60. package/dist/commands/collaborator/permission.js +39 -0
  61. package/dist/commands/collaborator/permission.js.map +1 -0
  62. package/dist/commands/collaborator/remove.d.ts +13 -0
  63. package/dist/commands/collaborator/remove.js +37 -0
  64. package/dist/commands/collaborator/remove.js.map +1 -0
  65. package/dist/commands/commit/compare.d.ts +14 -0
  66. package/dist/commands/commit/compare.js +73 -0
  67. package/dist/commands/commit/compare.js.map +1 -0
  68. package/dist/commands/commit/diff.d.ts +13 -0
  69. package/dist/commands/commit/diff.js +56 -0
  70. package/dist/commands/commit/diff.js.map +1 -0
  71. package/dist/commands/commit/get.d.ts +13 -0
  72. package/dist/commands/commit/get.js +65 -0
  73. package/dist/commands/commit/get.js.map +1 -0
  74. package/dist/commands/commit/list.d.ts +17 -0
  75. package/dist/commands/commit/list.js +67 -0
  76. package/dist/commands/commit/list.js.map +1 -0
  77. package/dist/commands/file/get.d.ts +14 -0
  78. package/dist/commands/file/get.js +61 -0
  79. package/dist/commands/file/get.js.map +1 -0
  80. package/dist/commands/file/list.d.ts +14 -0
  81. package/dist/commands/file/list.js +58 -0
  82. package/dist/commands/file/list.js.map +1 -0
  83. package/dist/commands/file/raw.d.ts +14 -0
  84. package/dist/commands/file/raw.js +48 -0
  85. package/dist/commands/file/raw.js.map +1 -0
  86. package/dist/commands/hook/create.d.ts +17 -0
  87. package/dist/commands/hook/create.js +62 -0
  88. package/dist/commands/hook/create.js.map +1 -0
  89. package/dist/commands/hook/delete.d.ts +16 -0
  90. package/dist/commands/hook/delete.js +37 -0
  91. package/dist/commands/hook/delete.js.map +1 -0
  92. package/dist/commands/hook/get.d.ts +16 -0
  93. package/dist/commands/hook/get.js +46 -0
  94. package/dist/commands/hook/get.js.map +1 -0
  95. package/dist/commands/hook/list.d.ts +12 -0
  96. package/dist/commands/hook/list.js +47 -0
  97. package/dist/commands/hook/list.js.map +1 -0
  98. package/dist/commands/issue/close.d.ts +13 -0
  99. package/dist/commands/issue/close.js +34 -0
  100. package/dist/commands/issue/close.js.map +1 -0
  101. package/dist/commands/issue/comment.d.ts +3 -2
  102. package/dist/commands/issue/comment.js +6 -7
  103. package/dist/commands/issue/comment.js.map +1 -1
  104. package/dist/commands/issue/create.d.ts +2 -2
  105. package/dist/commands/issue/create.js +7 -15
  106. package/dist/commands/issue/create.js.map +1 -1
  107. package/dist/commands/issue/history.d.ts +13 -0
  108. package/dist/commands/issue/history.js +39 -0
  109. package/dist/commands/issue/history.js.map +1 -0
  110. package/dist/commands/issue/labels.d.ts +15 -0
  111. package/dist/commands/issue/labels.js +53 -0
  112. package/dist/commands/issue/labels.js.map +1 -0
  113. package/dist/commands/issue/list.d.ts +3 -2
  114. package/dist/commands/issue/list.js +8 -9
  115. package/dist/commands/issue/list.js.map +1 -1
  116. package/dist/commands/issue/reactions.d.ts +13 -0
  117. package/dist/commands/issue/reactions.js +34 -0
  118. package/dist/commands/issue/reactions.js.map +1 -0
  119. package/dist/commands/issue/reopen.d.ts +13 -0
  120. package/dist/commands/issue/reopen.js +34 -0
  121. package/dist/commands/issue/reopen.js.map +1 -0
  122. package/dist/commands/issue/update.d.ts +18 -0
  123. package/dist/commands/issue/update.js +54 -0
  124. package/dist/commands/issue/update.js.map +1 -0
  125. package/dist/commands/issue/view.d.ts +3 -2
  126. package/dist/commands/issue/view.js +8 -9
  127. package/dist/commands/issue/view.js.map +1 -1
  128. package/dist/commands/label/create.d.ts +15 -0
  129. package/dist/commands/label/create.js +56 -0
  130. package/dist/commands/label/create.js.map +1 -0
  131. package/dist/commands/label/delete.d.ts +13 -0
  132. package/dist/commands/label/delete.js +44 -0
  133. package/dist/commands/label/delete.js.map +1 -0
  134. package/dist/commands/label/list.d.ts +12 -0
  135. package/dist/commands/label/list.js +53 -0
  136. package/dist/commands/label/list.js.map +1 -0
  137. package/dist/commands/label/update.d.ts +16 -0
  138. package/dist/commands/label/update.js +63 -0
  139. package/dist/commands/label/update.js.map +1 -0
  140. package/dist/commands/milestone/create.d.ts +15 -0
  141. package/dist/commands/milestone/create.js +49 -0
  142. package/dist/commands/milestone/create.js.map +1 -0
  143. package/dist/commands/milestone/delete.d.ts +16 -0
  144. package/dist/commands/milestone/delete.js +37 -0
  145. package/dist/commands/milestone/delete.js.map +1 -0
  146. package/dist/commands/milestone/get.d.ts +16 -0
  147. package/dist/commands/milestone/get.js +48 -0
  148. package/dist/commands/milestone/get.js.map +1 -0
  149. package/dist/commands/milestone/list.d.ts +13 -0
  150. package/dist/commands/milestone/list.js +53 -0
  151. package/dist/commands/milestone/list.js.map +1 -0
  152. package/dist/commands/milestone/update.d.ts +20 -0
  153. package/dist/commands/milestone/update.js +62 -0
  154. package/dist/commands/milestone/update.js.map +1 -0
  155. package/dist/commands/org/list.d.ts +11 -0
  156. package/dist/commands/org/list.js +53 -0
  157. package/dist/commands/org/list.js.map +1 -0
  158. package/dist/commands/org/members.d.ts +14 -0
  159. package/dist/commands/org/members.js +48 -0
  160. package/dist/commands/org/members.js.map +1 -0
  161. package/dist/commands/org/view.d.ts +12 -0
  162. package/dist/commands/org/view.js +42 -0
  163. package/dist/commands/org/view.js.map +1 -0
  164. package/dist/commands/pr/close.d.ts +13 -0
  165. package/dist/commands/pr/close.js +34 -0
  166. package/dist/commands/pr/close.js.map +1 -0
  167. package/dist/commands/pr/comment.d.ts +3 -3
  168. package/dist/commands/pr/comment.js +7 -15
  169. package/dist/commands/pr/comment.js.map +1 -1
  170. package/dist/commands/pr/comments.d.ts +19 -0
  171. package/dist/commands/pr/comments.js +71 -0
  172. package/dist/commands/pr/comments.js.map +1 -0
  173. package/dist/commands/pr/commits.d.ts +17 -0
  174. package/dist/commands/pr/commits.js +58 -0
  175. package/dist/commands/pr/commits.js.map +1 -0
  176. package/dist/commands/pr/create.d.ts +2 -2
  177. package/dist/commands/pr/create.js +6 -13
  178. package/dist/commands/pr/create.js.map +1 -1
  179. package/dist/commands/pr/diff.d.ts +3 -2
  180. package/dist/commands/pr/diff.js +6 -7
  181. package/dist/commands/pr/diff.js.map +1 -1
  182. package/dist/commands/pr/labels.d.ts +18 -0
  183. package/dist/commands/pr/labels.js +70 -0
  184. package/dist/commands/pr/labels.js.map +1 -0
  185. package/dist/commands/pr/link.d.ts +18 -0
  186. package/dist/commands/pr/link.js +63 -0
  187. package/dist/commands/pr/link.js.map +1 -0
  188. package/dist/commands/pr/list.d.ts +3 -2
  189. package/dist/commands/pr/list.js +8 -9
  190. package/dist/commands/pr/list.js.map +1 -1
  191. package/dist/commands/pr/logs.d.ts +17 -0
  192. package/dist/commands/pr/logs.js +58 -0
  193. package/dist/commands/pr/logs.js.map +1 -0
  194. package/dist/commands/pr/merge.d.ts +3 -2
  195. package/dist/commands/pr/merge.js +6 -7
  196. package/dist/commands/pr/merge.js.map +1 -1
  197. package/dist/commands/pr/reactions.d.ts +13 -0
  198. package/dist/commands/pr/reactions.js +34 -0
  199. package/dist/commands/pr/reactions.js.map +1 -0
  200. package/dist/commands/pr/reopen.d.ts +13 -0
  201. package/dist/commands/pr/reopen.js +34 -0
  202. package/dist/commands/pr/reopen.js.map +1 -0
  203. package/dist/commands/pr/review.d.ts +17 -0
  204. package/dist/commands/pr/review.js +55 -0
  205. package/dist/commands/pr/review.js.map +1 -0
  206. package/dist/commands/pr/reviewers.d.ts +19 -0
  207. package/dist/commands/pr/reviewers.js +91 -0
  208. package/dist/commands/pr/reviewers.js.map +1 -0
  209. package/dist/commands/pr/test.d.ts +17 -0
  210. package/dist/commands/pr/test.js +55 -0
  211. package/dist/commands/pr/test.js.map +1 -0
  212. package/dist/commands/pr/testers.d.ts +19 -0
  213. package/dist/commands/pr/testers.js +91 -0
  214. package/dist/commands/pr/testers.js.map +1 -0
  215. package/dist/commands/pr/update.d.ts +21 -0
  216. package/dist/commands/pr/update.js +66 -0
  217. package/dist/commands/pr/update.js.map +1 -0
  218. package/dist/commands/pr/view.d.ts +3 -2
  219. package/dist/commands/pr/view.js +8 -9
  220. package/dist/commands/pr/view.js.map +1 -1
  221. package/dist/commands/release/create.d.ts +3 -2
  222. package/dist/commands/release/create.js +6 -14
  223. package/dist/commands/release/create.js.map +1 -1
  224. package/dist/commands/repo/get-remote.d.ts +3 -2
  225. package/dist/commands/repo/get-remote.js +3 -3
  226. package/dist/commands/repo/set-remote.d.ts +3 -2
  227. package/dist/commands/repo/set-remote.js +3 -3
  228. package/dist/commands/repo/transfer.d.ts +14 -0
  229. package/dist/commands/repo/transfer.js +59 -0
  230. package/dist/commands/repo/transfer.js.map +1 -0
  231. package/dist/commands/repo/update.d.ts +15 -0
  232. package/dist/commands/repo/update.js +66 -0
  233. package/dist/commands/repo/update.js.map +1 -0
  234. package/dist/commands/repo/view.d.ts +10 -0
  235. package/dist/commands/repo/view.js +50 -0
  236. package/dist/commands/repo/view.js.map +1 -0
  237. package/dist/commands/search/code.d.ts +16 -0
  238. package/dist/commands/search/code.js +75 -0
  239. package/dist/commands/search/code.js.map +1 -0
  240. package/dist/commands/search/issues.d.ts +16 -0
  241. package/dist/commands/search/issues.js +77 -0
  242. package/dist/commands/search/issues.js.map +1 -0
  243. package/dist/commands/search/repos.d.ts +16 -0
  244. package/dist/commands/search/repos.js +77 -0
  245. package/dist/commands/search/repos.js.map +1 -0
  246. package/dist/commands/tag/list.d.ts +12 -0
  247. package/dist/commands/tag/list.js +45 -0
  248. package/dist/commands/tag/list.js.map +1 -0
  249. package/dist/commands/tag/protect.d.ts +14 -0
  250. package/dist/commands/tag/protect.js +53 -0
  251. package/dist/commands/tag/protect.js.map +1 -0
  252. package/dist/commands/user/emails.d.ts +9 -0
  253. package/dist/commands/user/emails.js +33 -0
  254. package/dist/commands/user/emails.js.map +1 -0
  255. package/dist/commands/user/followers.d.ts +14 -0
  256. package/dist/commands/user/followers.js +92 -0
  257. package/dist/commands/user/followers.js.map +1 -0
  258. package/dist/commands/user/following.d.ts +14 -0
  259. package/dist/commands/user/following.js +57 -0
  260. package/dist/commands/user/following.js.map +1 -0
  261. package/dist/commands/user/view.d.ts +12 -0
  262. package/dist/commands/user/view.js +46 -0
  263. package/dist/commands/user/view.js.map +1 -0
  264. package/dist/git/index.js +1 -1
  265. package/dist/git/index.js.map +1 -1
  266. package/dist/repo-command.d.ts +19 -0
  267. package/dist/repo-command.js +29 -0
  268. package/dist/repo-command.js.map +1 -0
  269. package/dist/ui/index.d.ts +1 -1
  270. package/dist/ui/index.js +1 -0
  271. package/dist/ui/index.js.map +1 -1
  272. package/package.json +1 -1
package/README.md CHANGED
@@ -84,8 +84,13 @@ oh-gc repo:set-remote upstream
84
84
  | `oh-gc issue:create` | Create issue interactively |
85
85
  | `oh-gc issue:create --title "Bug" --body "..."` | Create issue with flags |
86
86
  | `oh-gc issue:create --repo owner/repo --title "Bug"` | Create issue on different repo |
87
+ | `oh-gc issue:update <number> --title "..."` | Update issue title or body |
88
+ | `oh-gc issue:close <number>` | Close an issue |
89
+ | `oh-gc issue:reopen <number>` | Reopen a closed issue |
87
90
  | `oh-gc issue:comment <number>` | Add a comment interactively |
88
91
  | `oh-gc issue:comment <number> --body "..."` | Add a comment with a flag |
92
+ | `oh-gc issue:labels <number> bug,feature` | Add labels to an issue |
93
+ | `oh-gc issue:labels <number> bug --remove` | Remove a label |
89
94
 
90
95
  ### Pull Requests
91
96
 
@@ -106,9 +111,26 @@ oh-gc repo:set-remote upstream
106
111
  | `oh-gc pr:comment <number> --body "..."` | Add a comment with a flag |
107
112
  | `oh-gc pr:comment <number> --repo owner/repo --body "..."` | Add comment on different repo |
108
113
  | `oh-gc pr:comment <number> --body "..." --path file.ts --line 10` | Comment on specific line |
114
+ | `oh-gc pr:update <number> --title "..."` | Update PR title, body, or state |
115
+ | `oh-gc pr:close <number>` | Close a PR |
116
+ | `oh-gc pr:reopen <number>` | Reopen a closed PR |
109
117
  | `oh-gc pr:merge <number>` | Merge PR (default: merge commit) |
110
118
  | `oh-gc pr:merge <number> --method squash` | Squash merge |
111
119
  | `oh-gc pr:merge <number> --method rebase` | Rebase merge |
120
+ | `oh-gc pr:commits <number>` | List commits in a PR |
121
+ | `oh-gc pr:comments <number>` | List comments on a PR |
122
+ | `oh-gc pr:comments <number> --delete <id>` | Delete a PR comment |
123
+ | `oh-gc pr:reviewers <number> alice,bob` | Assign reviewers |
124
+ | `oh-gc pr:reviewers <number> alice --remove` | Remove a reviewer |
125
+ | `oh-gc pr:testers <number> alice,bob` | Assign testers |
126
+ | `oh-gc pr:testers <number> alice --remove` | Remove a tester |
127
+ | `oh-gc pr:review <number>` | Approve a PR review |
128
+ | `oh-gc pr:test <number>` | Mark PR test as passed |
129
+ | `oh-gc pr:labels <number> bug,feature` | Add labels to a PR |
130
+ | `oh-gc pr:labels <number> bug --remove` | Remove a label |
131
+ | `oh-gc pr:link <number> 1,2` | Link issues to a PR |
132
+ | `oh-gc pr:link <number> 1,2 --remove` | Unlink issues |
133
+ | `oh-gc pr:logs <number>` | Show PR operation logs |
112
134
 
113
135
  ### Release
114
136
 
@@ -124,6 +146,128 @@ oh-gc repo:set-remote upstream
124
146
  |---|---|
125
147
  | `oh-gc repo:get-remote` | Show which remote `oh-gc` uses |
126
148
  | `oh-gc repo:set-remote <name>` | Set which remote `oh-gc` uses |
149
+ | `oh-gc repo:view` | View repository information |
150
+ | `oh-gc repo:update --description "..."` | Update repository settings |
151
+ | `oh-gc repo:transfer <new-owner>` | Transfer repository ownership |
152
+
153
+ ### Branches
154
+
155
+ | Command | Description |
156
+ |---|---|
157
+ | `oh-gc branch:list` | List all branches |
158
+ | `oh-gc branch:list --protected` | List only protected branches |
159
+ | `oh-gc branch:get <name>` | Get branch details |
160
+ | `oh-gc branch:protect <name>` | Set branch protection rules |
161
+
162
+ ### Commits
163
+
164
+ | Command | Description |
165
+ |---|---|
166
+ | `oh-gc commit:list` | List commits |
167
+ | `oh-gc commit:list --sha main` | List commits from specific branch |
168
+ | `oh-gc commit:get <sha>` | Get commit details |
169
+ | `oh-gc commit:diff <sha>` | View commit diff |
170
+ | `oh-gc commit:compare <base> <head>` | Compare two commits or branches |
171
+
172
+ ### Files
173
+
174
+ | Command | Description |
175
+ |---|---|
176
+ | `oh-gc file:get <path>` | Get file contents (base64 encoded) |
177
+ | `oh-gc file:raw <path> --ref main` | Get raw file contents |
178
+ | `oh-gc file:list` | List repository files |
179
+
180
+ ### Collaborators
181
+
182
+ | Command | Description |
183
+ |---|---|
184
+ | `oh-gc collaborator:list` | List repository collaborators |
185
+ | `oh-gc collaborator:add <username>` | Add a collaborator |
186
+ | `oh-gc collaborator:remove <username>` | Remove a collaborator |
187
+ | `oh-gc collaborator:permission <username>` | Get collaborator permission level |
188
+
189
+ ### Labels
190
+
191
+ | Command | Description |
192
+ |---|---|
193
+ | `oh-gc label:list` | List repository labels |
194
+ | `oh-gc label:get <name>` | Get label details |
195
+ | `oh-gc label:create` | Create a new label |
196
+ | `oh-gc label:update <name>` | Update a label |
197
+ | `oh-gc label:delete <name>` | Delete a label |
198
+
199
+ ### Milestones
200
+
201
+ | Command | Description |
202
+ |---|---|
203
+ | `oh-gc milestone:list` | List milestones |
204
+ | `oh-gc milestone:get <number>` | Get milestone details |
205
+ | `oh-gc milestone:create` | Create a new milestone |
206
+ | `oh-gc milestone:update <number>` | Update a milestone |
207
+ | `oh-gc milestone:delete <number>` | Delete a milestone |
208
+
209
+ ### Webhooks
210
+
211
+ | Command | Description |
212
+ |---|---|
213
+ | `oh-gc hook:list` | List repository webhooks |
214
+ | `oh-gc hook:get <id>` | Get webhook details |
215
+ | `oh-gc hook:create` | Create a webhook |
216
+ | `oh-gc hook:delete <id>` | Delete a webhook |
217
+
218
+ ### Tags
219
+
220
+ | Command | Description |
221
+ |---|---|
222
+ | `oh-gc tag:list` | List repository tags |
223
+ | `oh-gc tag:protect <name>` | Protect a tag |
224
+
225
+ ### Organizations
226
+
227
+ | Command | Description |
228
+ |---|---|
229
+ | `oh-gc org:list` | List your organizations |
230
+ | `oh-gc org:view <org>` | Get organization details |
231
+ | `oh-gc org:members <org>` | List organization members |
232
+ | `oh-gc org:repos <org>` | List organization repositories |
233
+
234
+ ### User
235
+
236
+ | Command | Description |
237
+ |---|---|
238
+ | `oh-gc user:view` | View your profile |
239
+ | `oh-gc user:view alice` | View another user's profile |
240
+ | `oh-gc user:emails` | List your email addresses |
241
+ | `oh-gc user:followers` | List your followers |
242
+ | `oh-gc user:following` | List users you follow |
243
+
244
+ ### Search
245
+
246
+ | Command | Description |
247
+ |---|---|
248
+ | `oh-gc search:repos "keyword"` | Search repositories |
249
+ | `oh-gc search:issues "keyword"` | Search issues across repos |
250
+ | `oh-gc search:code "keyword"` | Search code across repos |
251
+
252
+ ### Repository Flags
253
+
254
+ Most commands that operate on a repository support the `--repo` flag, which allows you to specify a target repository without being inside a git clone:
255
+
256
+ | Flag | Description |
257
+ |---|---|
258
+ | `--repo owner/repo` | Target repository in OWNER/REPO format |
259
+
260
+ Examples:
261
+ ```bash
262
+ # List issues in any repository
263
+ oh-gc issue:list --repo openharmony/arkui_ace_engine
264
+
265
+ # Create an issue on a different repo
266
+ oh-gc issue:create --repo owner/repo --title "Bug report"
267
+
268
+ # View a PR without cloning
269
+ oh-gc pr:view 123 --repo owner/repo
270
+ ```
127
271
 
128
272
  ### Global Flags
129
273
 
@@ -158,6 +302,23 @@ You can commit or gitignore the `.gitcode/` directory — `oh-gc` never modifies
158
302
 
159
303
  ---
160
304
 
305
+ ## AI Skill
306
+
307
+ `oh-gc` ships with a skill file that teaches AI assistants (Claude Code, OpenCode, Gemini CLI) how to use the CLI. To install:
308
+
309
+ ```bash
310
+ # Fetch the install guide and follow the instructions
311
+ curl -fsSL https://raw.gitcode.com/guozejun/ohos_gitcode_cli/raw/master/skills/gitcode-cli/INSTALL.md
312
+ ```
313
+
314
+ Or ask your AI assistant to fetch and follow the instructions from:
315
+
316
+ ```
317
+ https://raw.gitcode.com/guozejun/ohos_gitcode_cli/raw/master/skills/gitcode-cli/INSTALL.md
318
+ ```
319
+
320
+ ---
321
+
161
322
  ## Exit Codes
162
323
 
163
324
  - `0` — success
@@ -2,6 +2,11 @@ export declare class GitCodeError extends Error {
2
2
  statusCode: number;
3
3
  constructor(statusCode: number, message: string);
4
4
  }
5
+ export declare function rawApiRequest(path: string, token: string, options?: {
6
+ method?: string;
7
+ body?: unknown;
8
+ query?: Record<string, string | number | boolean | undefined>;
9
+ }): Promise<string>;
5
10
  export declare function apiRequest<T>(path: string, token: string, options?: {
6
11
  method?: string;
7
12
  body?: unknown;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GitCodeError = void 0;
4
+ exports.rawApiRequest = rawApiRequest;
4
5
  exports.apiRequest = apiRequest;
5
6
  const BASE_URL = 'https://api.gitcode.com/api/v5';
6
7
  class GitCodeError extends Error {
@@ -11,6 +12,44 @@ class GitCodeError extends Error {
11
12
  }
12
13
  }
13
14
  exports.GitCodeError = GitCodeError;
15
+ async function rawApiRequest(path, token, options = {}) {
16
+ const { method = 'GET', body, query } = options;
17
+ const url = new URL(`${BASE_URL}${path}`);
18
+ if (query) {
19
+ for (const [key, value] of Object.entries(query)) {
20
+ if (value !== undefined)
21
+ url.searchParams.set(key, String(value));
22
+ }
23
+ }
24
+ let response;
25
+ try {
26
+ response = await fetch(url.toString(), {
27
+ method,
28
+ headers: {
29
+ Authorization: `Bearer ${token}`,
30
+ 'Content-Type': 'application/json',
31
+ Accept: 'text/plain',
32
+ },
33
+ body: body !== undefined ? JSON.stringify(body) : undefined,
34
+ });
35
+ }
36
+ catch {
37
+ throw new GitCodeError(0, 'Could not connect to GitCode. Check your internet connection.');
38
+ }
39
+ if (response.status === 401) {
40
+ await response.text().catch(() => { });
41
+ throw new GitCodeError(401, 'Authentication failed. Check your token or run: gc auth login');
42
+ }
43
+ if (response.status === 429) {
44
+ await response.text().catch(() => { });
45
+ throw new GitCodeError(429, 'Rate limit exceeded. Try again shortly.');
46
+ }
47
+ if (!response.ok) {
48
+ const text = await response.text();
49
+ throw new GitCodeError(response.status, `API error ${response.status}: ${text}`);
50
+ }
51
+ return response.text();
52
+ }
14
53
  async function apiRequest(path, token, options = {}) {
15
54
  const { method = 'GET', body, query } = options;
16
55
  const url = new URL(`${BASE_URL}${path}`);
@@ -47,8 +86,15 @@ async function apiRequest(path, token, options = {}) {
47
86
  const text = await response.text();
48
87
  throw new GitCodeError(response.status, `API error ${response.status}: ${text}`);
49
88
  }
89
+ if (response.status === 204) {
90
+ return undefined;
91
+ }
92
+ const text = await response.text();
93
+ if (!text) {
94
+ return undefined;
95
+ }
50
96
  try {
51
- return (await response.json());
97
+ return JSON.parse(text);
52
98
  }
53
99
  catch {
54
100
  throw new GitCodeError(response.status, `API error ${response.status}: invalid JSON response`);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":";;;AASA,gCAwDC;AAjED,MAAM,QAAQ,GAAG,gCAAgC,CAAA;AAEjD,MAAa,YAAa,SAAQ,KAAK;IACrC,YAAmB,UAAkB,EAAE,OAAe;QACpD,KAAK,CAAC,OAAO,CAAC,CAAA;QADG,eAAU,GAAV,UAAU,CAAQ;QAEnC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;IAC5B,CAAC;CACF;AALD,oCAKC;AAEM,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,KAAa,EACb,UAII,EAAE;IAEN,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAE/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAA;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;IAED,IAAI,QAAkB,CAAA;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACrC,MAAM;YACN,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;YACD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,YAAY,CAAC,CAAC,EAAE,+DAA+D,CAAC,CAAA;IAC5F,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACrC,MAAM,IAAI,YAAY,CACpB,GAAG,EACH,+DAA+D,CAChE,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACrC,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,yCAAyC,CAAC,CAAA;IACxE,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAClC,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,QAAQ,CAAC,MAAM,yBAAyB,CAAC,CAAA;IAChG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface Collaborator {
2
+ login: string;
3
+ id: number;
4
+ avatar_url: string;
5
+ type: string;
6
+ permissions?: {
7
+ admin?: boolean;
8
+ maintain?: boolean;
9
+ push?: boolean;
10
+ triage?: boolean;
11
+ pull?: boolean;
12
+ };
13
+ }
14
+ export interface CollaboratorPermission {
15
+ permission: 'admin' | 'maintain' | 'write' | 'triage' | 'read' | 'none';
16
+ user: {
17
+ login: string;
18
+ id: number;
19
+ avatar_url: string;
20
+ };
21
+ }
22
+ export interface AddCollaboratorParams {
23
+ permission?: 'pull' | 'triage' | 'push' | 'maintain' | 'admin';
24
+ }
25
+ export declare function listCollaborators(token: string, owner: string, repo: string, params?: {
26
+ page?: number;
27
+ per_page?: number;
28
+ affiliation?: 'outside' | 'direct' | 'all';
29
+ }): Promise<Collaborator[]>;
30
+ export declare function addCollaborator(token: string, owner: string, repo: string, username: string, params?: AddCollaboratorParams): Promise<Collaborator>;
31
+ export declare function removeCollaborator(token: string, owner: string, repo: string, username: string): Promise<void>;
32
+ export declare function getCollaboratorPermission(token: string, owner: string, repo: string, username: string): Promise<CollaboratorPermission>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listCollaborators = listCollaborators;
4
+ exports.addCollaborator = addCollaborator;
5
+ exports.removeCollaborator = removeCollaborator;
6
+ exports.getCollaboratorPermission = getCollaboratorPermission;
7
+ const client_1 = require("./client");
8
+ // --- Collaborator API Functions ---
9
+ async function listCollaborators(token, owner, repo, params = {}) {
10
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/collaborators`, token, {
11
+ query: params,
12
+ });
13
+ }
14
+ async function addCollaborator(token, owner, repo, username, params = {}) {
15
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/collaborators/${username}`, token, { method: 'PUT', body: params });
16
+ }
17
+ async function removeCollaborator(token, owner, repo, username) {
18
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/collaborators/${username}`, token, { method: 'DELETE' });
19
+ }
20
+ async function getCollaboratorPermission(token, owner, repo, username) {
21
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/collaborators/${username}/permission`, token);
22
+ }
23
+ //# sourceMappingURL=collaborators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collaborators.js","sourceRoot":"","sources":["../../src/api/collaborators.ts"],"names":[],"mappings":";;AAiCA,8CASC;AAED,0CAYC;AAED,gDAWC;AAED,8DAUC;AAjFD,qCAAqC;AA+BrC,qCAAqC;AAE9B,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,KAAa,EACb,IAAY,EACZ,SAA2F,EAAE;IAE7F,OAAO,IAAA,mBAAU,EAAiB,UAAU,KAAK,IAAI,IAAI,gBAAgB,EAAE,KAAK,EAAE;QAChF,KAAK,EAAE,MAAqD;KAC7D,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,KAAa,EACb,IAAY,EACZ,QAAgB,EAChB,SAAgC,EAAE;IAElC,OAAO,IAAA,mBAAU,EACf,UAAU,KAAK,IAAI,IAAI,kBAAkB,QAAQ,EAAE,EACnD,KAAK,EACL,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAChC,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,KAAa,EACb,KAAa,EACb,IAAY,EACZ,QAAgB;IAEhB,OAAO,IAAA,mBAAU,EACf,UAAU,KAAK,IAAI,IAAI,kBAAkB,QAAQ,EAAE,EACnD,KAAK,EACL,EAAE,MAAM,EAAE,QAAQ,EAAE,CACrB,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,yBAAyB,CAC7C,KAAa,EACb,KAAa,EACb,IAAY,EACZ,QAAgB;IAEhB,OAAO,IAAA,mBAAU,EACf,UAAU,KAAK,IAAI,IAAI,kBAAkB,QAAQ,aAAa,EAC9D,KAAK,CACN,CAAA;AACH,CAAC"}
@@ -0,0 +1,88 @@
1
+ export interface FileContent {
2
+ name: string;
3
+ path: string;
4
+ sha: string;
5
+ size: number;
6
+ url: string;
7
+ html_url: string;
8
+ git_url: string;
9
+ download_url: string;
10
+ type: 'file';
11
+ content?: string;
12
+ encoding?: string;
13
+ target?: string;
14
+ submodule_git_url?: string;
15
+ }
16
+ export interface DirectoryItem {
17
+ name: string;
18
+ path: string;
19
+ sha: string;
20
+ size: number;
21
+ url: string;
22
+ html_url: string;
23
+ git_url: string;
24
+ download_url?: string;
25
+ type: 'file' | 'dir' | 'symlink' | 'submodule';
26
+ target?: string;
27
+ }
28
+ export interface GetFileOptions {
29
+ ref?: string;
30
+ }
31
+ export declare function getFile(token: string, owner: string, repo: string, path: string, options?: GetFileOptions): Promise<FileContent>;
32
+ export declare function getRawFile(token: string, owner: string, repo: string, path: string, ref: string): Promise<string>;
33
+ export declare function listDirectory(token: string, owner: string, repo: string, path?: string, options?: GetFileOptions): Promise<DirectoryItem[]>;
34
+ export declare function createFile(token: string, owner: string, repo: string, path: string, params: {
35
+ message: string;
36
+ content: string;
37
+ branch?: string;
38
+ author?: {
39
+ name: string;
40
+ email: string;
41
+ };
42
+ committer?: {
43
+ name: string;
44
+ email: string;
45
+ };
46
+ }): Promise<{
47
+ content: FileContent | null;
48
+ commit: {
49
+ sha: string;
50
+ };
51
+ }>;
52
+ export declare function updateFile(token: string, owner: string, repo: string, path: string, params: {
53
+ message: string;
54
+ content: string;
55
+ sha: string;
56
+ branch?: string;
57
+ author?: {
58
+ name: string;
59
+ email: string;
60
+ };
61
+ committer?: {
62
+ name: string;
63
+ email: string;
64
+ };
65
+ }): Promise<{
66
+ content: FileContent | null;
67
+ commit: {
68
+ sha: string;
69
+ };
70
+ }>;
71
+ export declare function deleteFile(token: string, owner: string, repo: string, path: string, params: {
72
+ message: string;
73
+ sha: string;
74
+ branch?: string;
75
+ author?: {
76
+ name: string;
77
+ email: string;
78
+ };
79
+ committer?: {
80
+ name: string;
81
+ email: string;
82
+ };
83
+ }): Promise<{
84
+ commit: {
85
+ sha: string;
86
+ };
87
+ content: null;
88
+ }>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFile = getFile;
4
+ exports.getRawFile = getRawFile;
5
+ exports.listDirectory = listDirectory;
6
+ exports.createFile = createFile;
7
+ exports.updateFile = updateFile;
8
+ exports.deleteFile = deleteFile;
9
+ const client_1 = require("./client");
10
+ // --- File API Functions ---
11
+ async function getFile(token, owner, repo, path, options = {}) {
12
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/contents/${path}`, token, {
13
+ query: options,
14
+ });
15
+ }
16
+ async function getRawFile(token, owner, repo, path, ref) {
17
+ // Raw file endpoint returns text, not JSON - use fetch directly
18
+ const BASE_URL = 'https://api.gitcode.com/api/v5';
19
+ const url = new URL(`${BASE_URL}/repos/${owner}/${repo}/raw/${path}`);
20
+ url.searchParams.set('ref', ref);
21
+ const response = await fetch(url.toString(), {
22
+ headers: {
23
+ Authorization: `Bearer ${token}`,
24
+ Accept: 'text/plain',
25
+ },
26
+ });
27
+ if (!response.ok) {
28
+ throw new Error(`Failed to get raw file: ${response.status}`);
29
+ }
30
+ return response.text();
31
+ }
32
+ async function listDirectory(token, owner, repo, path = '', options = {}) {
33
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/contents/${path}`, token, { query: options });
34
+ }
35
+ async function createFile(token, owner, repo, path, params) {
36
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/contents/${path}`, token, { method: 'PUT', body: params });
37
+ }
38
+ async function updateFile(token, owner, repo, path, params) {
39
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/contents/${path}`, token, { method: 'PUT', body: params });
40
+ }
41
+ async function deleteFile(token, owner, repo, path, params) {
42
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/contents/${path}`, token, { method: 'DELETE', body: params });
43
+ }
44
+ //# sourceMappingURL=contents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contents.js","sourceRoot":"","sources":["../../src/api/contents.ts"],"names":[],"mappings":";;AAuCA,0BAUC;AAED,gCAwBC;AAED,sCAYC;AAED,gCAkBC;AAED,gCAmBC;AAED,gCAkBC;AAtJD,qCAAqC;AAqCrC,6BAA6B;AAEtB,KAAK,UAAU,OAAO,CAC3B,KAAa,EACb,KAAa,EACb,IAAY,EACZ,IAAY,EACZ,UAA0B,EAAE;IAE5B,OAAO,IAAA,mBAAU,EAAc,UAAU,KAAK,IAAI,IAAI,aAAa,IAAI,EAAE,EAAE,KAAK,EAAE;QAChF,KAAK,EAAE,OAA6C;KACrD,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,KAAa,EACb,IAAY,EACZ,IAAY,EACZ,GAAW;IAEX,gEAAgE;IAChE,MAAM,QAAQ,GAAG,gCAAgC,CAAA;IACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,QAAQ,UAAU,KAAK,IAAI,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAA;IACrE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAEhC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC3C,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,MAAM,EAAE,YAAY;SACrB;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;AACxB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,KAAa,EACb,KAAa,EACb,IAAY,EACZ,OAAe,EAAE,EACjB,UAA0B,EAAE;IAE5B,OAAO,IAAA,mBAAU,EACf,UAAU,KAAK,IAAI,IAAI,aAAa,IAAI,EAAE,EAC1C,KAAK,EACL,EAAE,KAAK,EAAE,OAA6C,EAAE,CACzD,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,KAAa,EACb,IAAY,EACZ,IAAY,EACZ,MAMC;IAED,OAAO,IAAA,mBAAU,EACf,UAAU,KAAK,IAAI,IAAI,aAAa,IAAI,EAAE,EAC1C,KAAK,EACL,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAChC,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,KAAa,EACb,IAAY,EACZ,IAAY,EACZ,MAOC;IAED,OAAO,IAAA,mBAAU,EACf,UAAU,KAAK,IAAI,IAAI,aAAa,IAAI,EAAE,EAC1C,KAAK,EACL,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAChC,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,KAAa,EACb,IAAY,EACZ,IAAY,EACZ,MAMC;IAED,OAAO,IAAA,mBAAU,EACf,UAAU,KAAK,IAAI,IAAI,aAAa,IAAI,EAAE,EAC1C,KAAK,EACL,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CACnC,CAAA;AACH,CAAC"}
@@ -0,0 +1,55 @@
1
+ export interface Enterprise {
2
+ id: number;
3
+ name: string;
4
+ slug: string;
5
+ description?: string;
6
+ avatar_url: string;
7
+ members_count?: number;
8
+ }
9
+ export interface EnterpriseMember {
10
+ id: number;
11
+ login: string;
12
+ name: string;
13
+ avatar_url: string;
14
+ email?: string;
15
+ role?: string;
16
+ }
17
+ export interface EnterpriseIssue {
18
+ id: number;
19
+ number: string;
20
+ title: string;
21
+ state: string;
22
+ html_url: string;
23
+ user: {
24
+ login: string;
25
+ name: string;
26
+ };
27
+ repository?: {
28
+ full_name: string;
29
+ };
30
+ created_at: string;
31
+ updated_at: string;
32
+ }
33
+ export interface EnterpriseLabel {
34
+ id: number;
35
+ name: string;
36
+ color: string;
37
+ description?: string;
38
+ }
39
+ export declare function listEnterpriseIssues(token: string, enterprise: string, params?: {
40
+ state?: 'open' | 'closed' | 'all';
41
+ labels?: string;
42
+ sort?: 'created' | 'updated';
43
+ direction?: 'asc' | 'desc';
44
+ page?: number;
45
+ per_page?: number;
46
+ }): Promise<EnterpriseIssue[]>;
47
+ export declare function listEnterpriseMembers(token: string, enterprise: string, params?: {
48
+ page?: number;
49
+ per_page?: number;
50
+ role?: 'member' | 'admin';
51
+ }): Promise<EnterpriseMember[]>;
52
+ export declare function listEnterpriseLabels(token: string, enterprise: string, params?: {
53
+ page?: number;
54
+ per_page?: number;
55
+ }): Promise<EnterpriseLabel[]>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listEnterpriseIssues = listEnterpriseIssues;
4
+ exports.listEnterpriseMembers = listEnterpriseMembers;
5
+ exports.listEnterpriseLabels = listEnterpriseLabels;
6
+ const client_1 = require("./client");
7
+ async function listEnterpriseIssues(token, enterprise, params = {}) {
8
+ return (0, client_1.apiRequest)(`/enterprises/${enterprise}/issues`, token, { query: params });
9
+ }
10
+ async function listEnterpriseMembers(token, enterprise, params = {}) {
11
+ return (0, client_1.apiRequest)(`/enterprises/${enterprise}/members`, token, { query: params });
12
+ }
13
+ async function listEnterpriseLabels(token, enterprise, params = {}) {
14
+ return (0, client_1.apiRequest)(`/enterprises/${enterprise}/labels`, token, { query: params });
15
+ }
16
+ //# sourceMappingURL=enterprises.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprises.js","sourceRoot":"","sources":["../../src/api/enterprises.ts"],"names":[],"mappings":";;AAuCA,oDAiBC;AAED,sDAcC;AAED,oDAUC;AApFD,qCAAqC;AAuC9B,KAAK,UAAU,oBAAoB,CACxC,KAAa,EACb,UAAkB,EAClB,SAOI,EAAE;IAEN,OAAO,IAAA,mBAAU,EACf,gBAAgB,UAAU,SAAS,EACnC,KAAK,EACL,EAAE,KAAK,EAAE,MAAqD,EAAE,CACjE,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,KAAa,EACb,UAAkB,EAClB,SAII,EAAE;IAEN,OAAO,IAAA,mBAAU,EACf,gBAAgB,UAAU,UAAU,EACpC,KAAK,EACL,EAAE,KAAK,EAAE,MAAqD,EAAE,CACjE,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,KAAa,EACb,UAAkB,EAClB,SAA+C,EAAE;IAEjD,OAAO,IAAA,mBAAU,EACf,gBAAgB,UAAU,SAAS,EACnC,KAAK,EACL,EAAE,KAAK,EAAE,MAAqD,EAAE,CACjE,CAAA;AACH,CAAC"}
@@ -0,0 +1,35 @@
1
+ export interface Hook {
2
+ id: number;
3
+ url: string;
4
+ name: string;
5
+ type: string;
6
+ active: boolean;
7
+ events: string[];
8
+ config: {
9
+ url?: string;
10
+ content_type?: string;
11
+ secret?: string;
12
+ insecure_ssl?: string;
13
+ };
14
+ created_at: string;
15
+ updated_at: string;
16
+ }
17
+ export interface CreateHookParams {
18
+ name: string;
19
+ config: {
20
+ url: string;
21
+ content_type?: string;
22
+ secret?: string;
23
+ insecure_ssl?: string;
24
+ };
25
+ events?: string[];
26
+ active?: boolean;
27
+ }
28
+ export declare function listHooks(token: string, owner: string, repo: string, params?: {
29
+ page?: number;
30
+ per_page?: number;
31
+ }): Promise<Hook[]>;
32
+ export declare function getHook(token: string, owner: string, repo: string, id: number): Promise<Hook>;
33
+ export declare function createHook(token: string, owner: string, repo: string, params: CreateHookParams): Promise<Hook>;
34
+ export declare function updateHook(token: string, owner: string, repo: string, id: number, params: Partial<CreateHookParams>): Promise<Hook>;
35
+ export declare function deleteHook(token: string, owner: string, repo: string, id: number): Promise<void>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listHooks = listHooks;
4
+ exports.getHook = getHook;
5
+ exports.createHook = createHook;
6
+ exports.updateHook = updateHook;
7
+ exports.deleteHook = deleteHook;
8
+ const client_1 = require("./client");
9
+ // --- Hook API Functions ---
10
+ async function listHooks(token, owner, repo, params = {}) {
11
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/hooks`, token, {
12
+ query: params,
13
+ });
14
+ }
15
+ async function getHook(token, owner, repo, id) {
16
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/hooks/${id}`, token);
17
+ }
18
+ async function createHook(token, owner, repo, params) {
19
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/hooks`, token, {
20
+ method: 'POST',
21
+ body: params,
22
+ });
23
+ }
24
+ async function updateHook(token, owner, repo, id, params) {
25
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/hooks/${id}`, token, {
26
+ method: 'PATCH',
27
+ body: params,
28
+ });
29
+ }
30
+ async function deleteHook(token, owner, repo, id) {
31
+ return (0, client_1.apiRequest)(`/repos/${owner}/${repo}/hooks/${id}`, token, {
32
+ method: 'DELETE',
33
+ });
34
+ }
35
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/api/hooks.ts"],"names":[],"mappings":";;AAmCA,8BASC;AAED,0BAOC;AAED,gCAUC;AAED,gCAWC;AAED,gCASC;AAzFD,qCAAqC;AAiCrC,6BAA6B;AAEtB,KAAK,UAAU,SAAS,CAC7B,KAAa,EACb,KAAa,EACb,IAAY,EACZ,SAA+C,EAAE;IAEjD,OAAO,IAAA,mBAAU,EAAS,UAAU,KAAK,IAAI,IAAI,QAAQ,EAAE,KAAK,EAAE;QAChE,KAAK,EAAE,MAAqD;KAC7D,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,KAAa,EACb,KAAa,EACb,IAAY,EACZ,EAAU;IAEV,OAAO,IAAA,mBAAU,EAAO,UAAU,KAAK,IAAI,IAAI,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;AACvE,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,KAAa,EACb,IAAY,EACZ,MAAwB;IAExB,OAAO,IAAA,mBAAU,EAAO,UAAU,KAAK,IAAI,IAAI,QAAQ,EAAE,KAAK,EAAE;QAC9D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,MAAM;KACb,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,KAAa,EACb,IAAY,EACZ,EAAU,EACV,MAAiC;IAEjC,OAAO,IAAA,mBAAU,EAAO,UAAU,KAAK,IAAI,IAAI,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE;QACpE,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,MAAM;KACb,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,KAAa,EACb,IAAY,EACZ,EAAU;IAEV,OAAO,IAAA,mBAAU,EAAO,UAAU,KAAK,IAAI,IAAI,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE;QACpE,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAA;AACJ,CAAC"}