@oh-gc/cli 0.5.0 → 0.6.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 (272) hide show
  1. package/README.md +169 -74
  2. package/dist/api/client.d.ts +5 -0
  3. package/dist/api/client.js +42 -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 +43 -0
  18. package/dist/api/issues.js +45 -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 +27 -0
  30. package/dist/api/prs.js +17 -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 +56 -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 +5 -2
  171. package/dist/commands/pr/comments.js +14 -10
  172. package/dist/commands/pr/comments.js.map +1 -1
  173. package/dist/commands/pr/commits.d.ts +3 -2
  174. package/dist/commands/pr/commits.js +8 -9
  175. package/dist/commands/pr/commits.js.map +1 -1
  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 +3 -2
  183. package/dist/commands/pr/labels.js +8 -9
  184. package/dist/commands/pr/labels.js.map +1 -1
  185. package/dist/commands/pr/link.d.ts +3 -2
  186. package/dist/commands/pr/link.js +7 -8
  187. package/dist/commands/pr/link.js.map +1 -1
  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 +3 -2
  192. package/dist/commands/pr/logs.js +8 -9
  193. package/dist/commands/pr/logs.js.map +1 -1
  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 +3 -2
  204. package/dist/commands/pr/review.js +6 -7
  205. package/dist/commands/pr/review.js.map +1 -1
  206. package/dist/commands/pr/reviewers.d.ts +4 -3
  207. package/dist/commands/pr/reviewers.js +30 -10
  208. package/dist/commands/pr/reviewers.js.map +1 -1
  209. package/dist/commands/pr/test.d.ts +3 -2
  210. package/dist/commands/pr/test.js +6 -7
  211. package/dist/commands/pr/test.js.map +1 -1
  212. package/dist/commands/pr/testers.d.ts +4 -3
  213. package/dist/commands/pr/testers.js +30 -10
  214. package/dist/commands/pr/testers.js.map +1 -1
  215. package/dist/commands/pr/update.d.ts +3 -2
  216. package/dist/commands/pr/update.js +6 -7
  217. package/dist/commands/pr/update.js.map +1 -1
  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
@@ -15,8 +15,6 @@ oh-gc pr:merge 5 --method squash
15
15
 
16
16
  ### npm (Recommended)
17
17
 
18
- The easiest way to install `oh-gc` is via npm:
19
-
20
18
  ```bash
21
19
  npm install -g @oh-gc/cli
22
20
  oh-gc --help
@@ -61,92 +59,173 @@ oh-gc repo:set-remote upstream
61
59
 
62
60
  ---
63
61
 
64
- ## Commands
62
+ ## Command Index
65
63
 
66
- ### Auth
64
+ ### Authentication
67
65
 
68
- | Command | Description |
69
- |---|---|
70
- | `oh-gc auth:login` | Log in with a personal access token |
71
- | `oh-gc auth:logout` | Remove stored token |
72
- | `oh-gc auth:status` | Show currently logged-in user |
66
+ | Command | Description | Docs |
67
+ |---------|-------------|------|
68
+ | `oh-gc auth:login` | Log in with a personal access token | [→ 详情](docs/commands/en/auth.md#oh-gc-authlogin) |
69
+ | `oh-gc auth:logout` | Remove stored token | [→ 详情](docs/commands/en/auth.md#oh-gc-authlogout) |
70
+ | `oh-gc auth:status` | Show currently logged-in user | [→ 详情](docs/commands/en/auth.md#oh-gc-authstatus) |
73
71
 
74
72
  ### Issues
75
-
76
- | Command | Description |
77
- |---|---|
78
- | `oh-gc issue:list` | List open issues |
79
- | `oh-gc issue:list --state closed` | List closed issues |
80
- | `oh-gc issue:list --state all` | List all issues |
81
- | `oh-gc issue:list --assignee alice` | Filter by assignee |
82
- | `oh-gc issue:list --search "login bug"` | Search by keyword |
83
- | `oh-gc issue:view <number>` | Show issue detail + recent comments |
84
- | `oh-gc issue:create` | Create issue interactively |
85
- | `oh-gc issue:create --title "Bug" --body "..."` | Create issue with flags |
86
- | `oh-gc issue:create --repo owner/repo --title "Bug"` | Create issue on different repo |
87
- | `oh-gc issue:comment <number>` | Add a comment interactively |
88
- | `oh-gc issue:comment <number> --body "..."` | Add a comment with a flag |
73
+ | Command | Description | Docs |
74
+ |---------|-------------|------|
75
+ | `oh-gc issue:list` | List issues | [→ 详情](docs/commands/en/issue.md#oh-gc-issuelist) |
76
+ | `oh-gc issue:view` | View issue details | [→ 详情](docs/commands/en/issue.md#oh-gc-issueview) |
77
+ | `oh-gc issue:create` | Create an issue | [→ 详情](docs/commands/en/issue.md#oh-gc-issuecreate) |
78
+ | `oh-gc issue:update` | Update an issue | [→ 详情](docs/commands/en/issue.md#oh-gc-issueupdate) |
79
+ | `oh-gc issue:close` | Close an issue | [→ 详情](docs/commands/en/issue.md#oh-gc-issueclose) |
80
+ | `oh-gc issue:reopen` | Reopen a closed issue | [→ 详情](docs/commands/en/issue.md#oh-gc-issuereopen) |
81
+ | `oh-gc issue:comment` | Add a comment | [→ 详情](docs/commands/en/issue.md#oh-gc-issuecomment) |
82
+ | `oh-gc issue:history` | View modification history | [→ 详情](docs/commands/en/issue.md#oh-gc-issuehistory) |
83
+ | `oh-gc issue:labels` | Add or remove labels | [→ 详情](docs/commands/en/issue.md#oh-gc-issuelabels) |
84
+ | `oh-gc issue:reactions` | List reactions | [→ 详情](docs/commands/en/issue.md#oh-gc-issuereactions) |
89
85
 
90
86
  ### Pull Requests
91
-
92
- | Command | Description |
93
- |---|---|
94
- | `oh-gc pr:list` | List open pull requests |
95
- | `oh-gc pr:list --state merged` | List merged PRs |
96
- | `oh-gc pr:list --author alice` | Filter by author |
97
- | `oh-gc pr:list --reviewer bob` | Filter by reviewer |
98
- | `oh-gc pr:view <number>` | Show PR detail |
99
- | `oh-gc pr:diff <number>` | View changes in a PR |
100
- | `oh-gc pr:diff <number> --name-only` | Show only changed file names |
101
- | `oh-gc pr:diff <number> --json` | Output raw JSON |
102
- | `oh-gc pr:create` | Create PR interactively |
103
- | `oh-gc pr:create --title "..." --base main` | Create PR with flags |
104
- | `oh-gc pr:create --repo owner/repo --head feature` | Create cross-repo PR |
105
- | `oh-gc pr:comment <number>` | Add a comment interactively |
106
- | `oh-gc pr:comment <number> --body "..."` | Add a comment with a flag |
107
- | `oh-gc pr:comment <number> --repo owner/repo --body "..."` | Add comment on different repo |
108
- | `oh-gc pr:comment <number> --body "..." --path file.ts --line 10` | Comment on specific line |
109
- | `oh-gc pr:update <number> --title "..."` | Update PR title, body, or state |
110
- | `oh-gc pr:update <number> --state closed` | Close a PR |
111
- | `oh-gc pr:merge <number>` | Merge PR (default: merge commit) |
112
- | `oh-gc pr:merge <number> --method squash` | Squash merge |
113
- | `oh-gc pr:merge <number> --method rebase` | Rebase merge |
114
- | `oh-gc pr:commits <number>` | List commits in a PR |
115
- | `oh-gc pr:comments <number>` | List comments on a PR |
116
- | `oh-gc pr:comments <number> --delete <id>` | Delete a PR comment |
117
- | `oh-gc pr:reviewers <number> alice,bob` | Assign reviewers |
118
- | `oh-gc pr:reviewers <number> alice --remove` | Remove a reviewer |
119
- | `oh-gc pr:testers <number> alice,bob` | Assign testers |
120
- | `oh-gc pr:testers <number> alice --remove` | Remove a tester |
121
- | `oh-gc pr:review <number>` | Approve a PR review |
122
- | `oh-gc pr:test <number>` | Mark PR test as passed |
123
- | `oh-gc pr:labels <number> bug,feature` | Add labels to a PR |
124
- | `oh-gc pr:labels <number> bug --remove` | Remove a label |
125
- | `oh-gc pr:link <number> 1,2` | Link issues to a PR |
126
- | `oh-gc pr:link <number> 1,2 --remove` | Unlink issues |
127
- | `oh-gc pr:logs <number>` | Show PR operation logs |
87
+ | Command | Description | Docs |
88
+ |---------|-------------|------|
89
+ | `oh-gc pr:list` | List pull requests | [→ 详情](docs/commands/en/pr.md#oh-gc-prlist) |
90
+ | `oh-gc pr:view` | View PR details | [→ 详情](docs/commands/en/pr.md#oh-gc-prview) |
91
+ | `oh-gc pr:create` | Create a pull request | [→ 详情](docs/commands/en/pr.md#oh-gc-prcreate) |
92
+ | `oh-gc pr:update` | Update a pull request | [→ 详情](docs/commands/en/pr.md#oh-gc-prupdate) |
93
+ | `oh-gc pr:close` | Close a pull request | [→ 详情](docs/commands/en/pr.md#oh-gc-prclose) |
94
+ | `oh-gc pr:reopen` | Reopen a closed PR | [→ 详情](docs/commands/en/pr.md#oh-gc-prreopen) |
95
+ | `oh-gc pr:merge` | Merge a pull request | [→ 详情](docs/commands/en/pr.md#oh-gc-prmerge) |
96
+ | `oh-gc pr:diff` | View PR changes | [→ 详情](docs/commands/en/pr.md#oh-gc-prdiff) |
97
+ | `oh-gc pr:comment` | Add a comment | [→ 详情](docs/commands/en/pr.md#oh-gc-prcomment) |
98
+ | `oh-gc pr:comments` | List or delete comments | [→ 详情](docs/commands/en/pr.md#oh-gc-prcomments) |
99
+ | `oh-gc pr:commits` | List commits in a PR | [→ 详情](docs/commands/en/pr.md#oh-gc-prcommits) |
100
+ | `oh-gc pr:logs` | View operation logs | [→ 详情](docs/commands/en/pr.md#oh-gc-prlogs) |
101
+ | `oh-gc pr:reactions` | List reactions | [→ 详情](docs/commands/en/pr.md#oh-gc-prreactions) |
102
+ | `oh-gc pr:reviewers` | Manage reviewers | [→ 详情](docs/commands/en/pr.md#oh-gc-prreviewers) |
103
+ | `oh-gc pr:testers` | Manage testers | [→ 详情](docs/commands/en/pr.md#oh-gc-prtesters) |
104
+ | `oh-gc pr:review` | Approve a PR review | [→ 详情](docs/commands/en/pr.md#oh-gc-prreview) |
105
+ | `oh-gc pr:test` | Mark test as passed | [→ 详情](docs/commands/en/pr.md#oh-gc-prtest) |
106
+ | `oh-gc pr:labels` | Add or remove labels | [→ 详情](docs/commands/en/pr.md#oh-gc-prlabels) |
107
+ | `oh-gc pr:link` | Link or unlink issues | [→ 详情](docs/commands/en/pr.md#oh-gc-prlink) |
108
+
109
+ ### Repository
110
+ | Command | Description | Docs |
111
+ |---------|-------------|------|
112
+ | `oh-gc repo:view` | View repository info | [→ 详情](docs/commands/en/repo.md#oh-gc-repoview) |
113
+ | `oh-gc repo:update` | Update repository settings | [→ 详情](docs/commands/en/repo.md#oh-gc-repoupdate) |
114
+ | `oh-gc repo:transfer` | Transfer repository ownership | [→ 详情](docs/commands/en/repo.md#oh-gc-repotransfer) |
115
+ | `oh-gc repo:set-remote` | Set which remote oh-gc uses | [→ 详情](docs/commands/en/repo.md#oh-gc-reposet-remote) |
116
+ | `oh-gc repo:get-remote` | Show current remote | [→ 详情](docs/commands/en/repo.md#oh-gc-repoget-remote) |
117
+
118
+ ### Branches
119
+ | Command | Description | Docs |
120
+ |---------|-------------|------|
121
+ | `oh-gc branch:list` | List branches | [→ 详情](docs/commands/en/branch.md#oh-gc-branchlist) |
122
+ | `oh-gc branch:get` | View branch details | [→ 详情](docs/commands/en/branch.md#oh-gc-branchget) |
123
+ | `oh-gc branch:protect` | Set branch protection | [→ 详情](docs/commands/en/branch.md#oh-gc-branchprotect) |
124
+
125
+ ### Commits
126
+ | Command | Description | Docs |
127
+ |---------|-------------|------|
128
+ | `oh-gc commit:list` | List commits | [→ 详情](docs/commands/en/commit.md#oh-gc-commitlist) |
129
+ | `oh-gc commit:get` | View commit details | [→ 详情](docs/commands/en/commit.md#oh-gc-commitget) |
130
+ | `oh-gc commit:diff` | View commit diff | [→ 详情](docs/commands/en/commit.md#oh-gc-commitdiff) |
131
+ | `oh-gc commit:compare` | Compare two refs | [→ 详情](docs/commands/en/commit.md#oh-gc-commitcompare) |
132
+
133
+ ### Files
134
+ | Command | Description | Docs |
135
+ |---------|-------------|------|
136
+ | `oh-gc file:get` | Get file contents (base64) | [→ 详情](docs/commands/en/file.md#oh-gc-fileget) |
137
+ | `oh-gc file:raw` | Get raw file contents | [→ 详情](docs/commands/en/file.md#oh-gc-fileraw) |
138
+ | `oh-gc file:list` | List directory contents | [→ 详情](docs/commands/en/file.md#oh-gc-filelist) |
139
+
140
+ ### Labels
141
+ | Command | Description | Docs |
142
+ |---------|-------------|------|
143
+ | `oh-gc label:list` | List repository labels | [→ 详情](docs/commands/en/label.md#oh-gc-labellist) |
144
+ | `oh-gc label:create` | Create a label | [→ 详情](docs/commands/en/label.md#oh-gc-labelcreate) |
145
+ | `oh-gc label:update` | Update a label | [→ 详情](docs/commands/en/label.md#oh-gc-labelupdate) |
146
+ | `oh-gc label:delete` | Delete a label | [→ 详情](docs/commands/en/label.md#oh-gc-labeldelete) |
147
+
148
+ ### Milestones
149
+ | Command | Description | Docs |
150
+ |---------|-------------|------|
151
+ | `oh-gc milestone:list` | List milestones | [→ 详情](docs/commands/en/milestone.md#oh-gc-milestonelist) |
152
+ | `oh-gc milestone:get` | View milestone details | [→ 详情](docs/commands/en/milestone.md#oh-gc-milestoneget) |
153
+ | `oh-gc milestone:create` | Create a milestone | [→ 详情](docs/commands/en/milestone.md#oh-gc-milestonecreate) |
154
+ | `oh-gc milestone:update` | Update a milestone | [→ 详情](docs/commands/en/milestone.md#oh-gc-milestoneupdate) |
155
+ | `oh-gc milestone:delete` | Delete a milestone | [→ 详情](docs/commands/en/milestone.md#oh-gc-milestonedelete) |
156
+
157
+ ### Collaborators
158
+ | Command | Description | Docs |
159
+ |---------|-------------|------|
160
+ | `oh-gc collaborator:list` | List collaborators | [→ 详情](docs/commands/en/collaborator.md#oh-gc-collaboratorlist) |
161
+ | `oh-gc collaborator:add` | Add a collaborator | [→ 详情](docs/commands/en/collaborator.md#oh-gc-collaboratoradd) |
162
+ | `oh-gc collaborator:remove` | Remove a collaborator | [→ 详情](docs/commands/en/collaborator.md#oh-gc-collaboratorremove) |
163
+ | `oh-gc collaborator:permission` | Get permission level | [→ 详情](docs/commands/en/collaborator.md#oh-gc-collaboratorpermission) |
164
+
165
+ ### Webhooks
166
+ | Command | Description | Docs |
167
+ |---------|-------------|------|
168
+ | `oh-gc hook:list` | List webhooks | [→ 详情](docs/commands/en/hook.md#oh-gc-hooklist) |
169
+ | `oh-gc hook:get` | View webhook details | [→ 详情](docs/commands/en/hook.md#oh-gc-hookget) |
170
+ | `oh-gc hook:create` | Create a webhook | [→ 详情](docs/commands/en/hook.md#oh-gc-hookcreate) |
171
+ | `oh-gc hook:delete` | Delete a webhook | [→ 详情](docs/commands/en/hook.md#oh-gc-hookdelete) |
172
+
173
+ ### Tags
174
+ | Command | Description | Docs |
175
+ |---------|-------------|------|
176
+ | `oh-gc tag:list` | List repository tags | [→ 详情](docs/commands/en/tag.md#oh-gc-taglist) |
177
+ | `oh-gc tag:protect` | Protect or unprotect a tag | [→ 详情](docs/commands/en/tag.md#oh-gc-tagprotect) |
128
178
 
129
179
  ### Release
180
+ | Command | Description | Docs |
181
+ |---------|-------------|------|
182
+ | `oh-gc release:create` | Create a release | [→ 详情](docs/commands/en/release.md#oh-gc-releasecreate) |
183
+
184
+ ### Organizations
185
+ | Command | Description | Docs |
186
+ |---------|-------------|------|
187
+ | `oh-gc org:list` | List your organizations | [→ 详情](docs/commands/en/org.md#oh-gc-orglist) |
188
+ | `oh-gc org:view` | View organization details | [→ 详情](docs/commands/en/org.md#oh-gc-orgview) |
189
+ | `oh-gc org:members` | List organization members | [→ 详情](docs/commands/en/org.md#oh-gc-orgmembers) |
190
+
191
+ ### User
192
+ | Command | Description | Docs |
193
+ |---------|-------------|------|
194
+ | `oh-gc user:view` | View user profile | [→ 详情](docs/commands/en/user.md#oh-gc-userview) |
195
+ | `oh-gc user:emails` | List your email addresses | [→ 详情](docs/commands/en/user.md#oh-gc-useremails) |
196
+ | `oh-gc user:followers` | List user followers | [→ 详情](docs/commands/en/user.md#oh-gc-userfollowers) |
197
+ | `oh-gc user:following` | List followed users | [→ 详情](docs/commands/en/user.md#oh-gc-userfollowing) |
198
+
199
+ ### Search
200
+ | Command | Description | Docs |
201
+ |---------|-------------|------|
202
+ | `oh-gc search:repos` | Search repositories | [→ 详情](docs/commands/en/search.md#oh-gc-searchrepos) |
203
+ | `oh-gc search:issues` | Search issues and PRs | [→ 详情](docs/commands/en/search.md#oh-gc-searchissues) |
204
+ | `oh-gc search:code` | Search code | [→ 详情](docs/commands/en/search.md#oh-gc-searchcode) |
205
+
206
+ ---
130
207
 
131
- | Command | Description |
132
- |---|---|
133
- | `oh-gc release:create [VERSION]` | Build, test, and publish a release |
134
- | `oh-gc release:create v0.3.0` | Create specific version |
135
- | `oh-gc release:create --prerelease` | Create prerelease |
208
+ ## Repository Flag
136
209
 
137
- ### Repo Config
210
+ 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:
138
211
 
139
- | Command | Description |
140
- |---|---|
141
- | `oh-gc repo:get-remote` | Show which remote `oh-gc` uses |
142
- | `oh-gc repo:set-remote <name>` | Set which remote `oh-gc` uses |
212
+ | Flag | Description |
213
+ |------|-------------|
214
+ | `--repo owner/repo` | Target repository in OWNER/REPO format |
143
215
 
144
- ### Global Flags
216
+ Examples:
217
+ ```bash
218
+ oh-gc issue:list --repo openharmony/arkui_ace_engine
219
+ oh-gc issue:create --repo owner/repo --title "Bug report"
220
+ oh-gc pr:view 123 --repo owner/repo
221
+ ```
222
+
223
+ ## Global Flags
145
224
 
146
225
  All commands support:
147
226
 
148
227
  | Flag | Description |
149
- |---|---|
228
+ |------|-------------|
150
229
  | `--json` | Output raw JSON instead of formatted table |
151
230
  | `--help` | Show command help |
152
231
 
@@ -160,9 +239,9 @@ Stored at `~/.config/gitcode-cli/config.json`. Set via `oh-gc auth:login`, remov
160
239
 
161
240
  ### Remote
162
241
 
163
- By default `oh-gc` uses the `origin` remote. To use a different remote for a specific repo, run `oh-gc repo:set-remote <name>`. This writes a `.gitcode/oh-gc-config.json` file in the repo root:
242
+ By default `oh-gc` uses the `origin` remote. To use a different remote for run `oh-gc repo:set-remote <name>`. This writes a `.gitcode/oh-gc-config.json` file in the repo root:
164
243
 
165
- ```json
244
+ ```json
166
245
  { "remote": "upstream" }
167
246
  ```
168
247
 
@@ -174,6 +253,22 @@ You can commit or gitignore the `.gitcode/` directory — `oh-gc` never modifies
174
253
 
175
254
  ---
176
255
 
256
+ ## AI Skill
257
+
258
+ `oh-gc` ships with a skill file that teaches AI assistants (Claude Code, OpenCode, Gemini CLI) how to use the CLI. To install:
259
+
260
+ ```bash
261
+ curl -fsSL https://raw.gitcode.com/guozejun/ohos_gitcode_cli/raw/master/skills/gitcode-cli/INSTALL.md
262
+ ```
263
+
264
+ Or ask your AI assistant to fetch and follow the instructions from:
265
+
266
+ ```
267
+ https://raw.gitcode.com/guozejun/ohos_gitcode_cli/raw/master/skills/gitcode-cli/INSTALL.md
268
+ ```
269
+
270
+ ---
271
+
177
272
  ## Exit Codes
178
273
 
179
274
  - `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,9 +12,50 @@ 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
+ // Always include access_token in query for GitCode API compatibility
19
+ url.searchParams.set('access_token', token);
20
+ if (query) {
21
+ for (const [key, value] of Object.entries(query)) {
22
+ if (value !== undefined)
23
+ url.searchParams.set(key, String(value));
24
+ }
25
+ }
26
+ let response;
27
+ try {
28
+ response = await fetch(url.toString(), {
29
+ method,
30
+ headers: {
31
+ 'Content-Type': 'application/json',
32
+ Accept: 'text/plain',
33
+ },
34
+ body: body !== undefined ? JSON.stringify(body) : undefined,
35
+ });
36
+ }
37
+ catch {
38
+ throw new GitCodeError(0, 'Could not connect to GitCode. Check your internet connection.');
39
+ }
40
+ if (response.status === 401) {
41
+ await response.text().catch(() => { });
42
+ throw new GitCodeError(401, 'Authentication failed. Check your token or run: gc auth login');
43
+ }
44
+ if (response.status === 429) {
45
+ await response.text().catch(() => { });
46
+ throw new GitCodeError(429, 'Rate limit exceeded. Try again shortly.');
47
+ }
48
+ if (!response.ok) {
49
+ const text = await response.text();
50
+ throw new GitCodeError(response.status, `API error ${response.status}: ${text}`);
51
+ }
52
+ return response.text();
53
+ }
14
54
  async function apiRequest(path, token, options = {}) {
15
55
  const { method = 'GET', body, query } = options;
16
56
  const url = new URL(`${BASE_URL}${path}`);
57
+ // Always include access_token in query for GitCode API compatibility
58
+ url.searchParams.set('access_token', token);
17
59
  if (query) {
18
60
  for (const [key, value] of Object.entries(query)) {
19
61
  if (value !== undefined)
@@ -25,7 +67,6 @@ async function apiRequest(path, token, options = {}) {
25
67
  response = await fetch(url.toString(), {
26
68
  method,
27
69
  headers: {
28
- Authorization: `Bearer ${token}`,
29
70
  'Content-Type': 'application/json',
30
71
  Accept: 'application/json',
31
72
  },
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":";;;AASA,gCAiEC;AA1ED,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,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,SAAc,CAAA;IACvB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAc,CAAA;IACvB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAA;IAC9B,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[]>;