@enbox/gitd 0.0.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 (502) hide show
  1. package/LICENSE +177 -0
  2. package/README.md +134 -0
  3. package/dist/esm/ci.js +76 -0
  4. package/dist/esm/ci.js.map +1 -0
  5. package/dist/esm/cli/agent.js +86 -0
  6. package/dist/esm/cli/agent.js.map +1 -0
  7. package/dist/esm/cli/commands/ci.js +278 -0
  8. package/dist/esm/cli/commands/ci.js.map +1 -0
  9. package/dist/esm/cli/commands/clone.js +77 -0
  10. package/dist/esm/cli/commands/clone.js.map +1 -0
  11. package/dist/esm/cli/commands/daemon.js +132 -0
  12. package/dist/esm/cli/commands/daemon.js.map +1 -0
  13. package/dist/esm/cli/commands/github-api.js +36 -0
  14. package/dist/esm/cli/commands/github-api.js.map +1 -0
  15. package/dist/esm/cli/commands/init.js +69 -0
  16. package/dist/esm/cli/commands/init.js.map +1 -0
  17. package/dist/esm/cli/commands/issue.js +293 -0
  18. package/dist/esm/cli/commands/issue.js.map +1 -0
  19. package/dist/esm/cli/commands/log.js +90 -0
  20. package/dist/esm/cli/commands/log.js.map +1 -0
  21. package/dist/esm/cli/commands/migrate.js +444 -0
  22. package/dist/esm/cli/commands/migrate.js.map +1 -0
  23. package/dist/esm/cli/commands/notification.js +141 -0
  24. package/dist/esm/cli/commands/notification.js.map +1 -0
  25. package/dist/esm/cli/commands/org.js +353 -0
  26. package/dist/esm/cli/commands/org.js.map +1 -0
  27. package/dist/esm/cli/commands/patch.js +375 -0
  28. package/dist/esm/cli/commands/patch.js.map +1 -0
  29. package/dist/esm/cli/commands/registry.js +501 -0
  30. package/dist/esm/cli/commands/registry.js.map +1 -0
  31. package/dist/esm/cli/commands/release.js +197 -0
  32. package/dist/esm/cli/commands/release.js.map +1 -0
  33. package/dist/esm/cli/commands/repo.js +148 -0
  34. package/dist/esm/cli/commands/repo.js.map +1 -0
  35. package/dist/esm/cli/commands/serve.js +148 -0
  36. package/dist/esm/cli/commands/serve.js.map +1 -0
  37. package/dist/esm/cli/commands/setup.js +92 -0
  38. package/dist/esm/cli/commands/setup.js.map +1 -0
  39. package/dist/esm/cli/commands/shim.js +75 -0
  40. package/dist/esm/cli/commands/shim.js.map +1 -0
  41. package/dist/esm/cli/commands/social.js +206 -0
  42. package/dist/esm/cli/commands/social.js.map +1 -0
  43. package/dist/esm/cli/commands/web.js +36 -0
  44. package/dist/esm/cli/commands/web.js.map +1 -0
  45. package/dist/esm/cli/commands/wiki.js +185 -0
  46. package/dist/esm/cli/commands/wiki.js.map +1 -0
  47. package/dist/esm/cli/flags.js +29 -0
  48. package/dist/esm/cli/flags.js.map +1 -0
  49. package/dist/esm/cli/main.js +331 -0
  50. package/dist/esm/cli/main.js.map +1 -0
  51. package/dist/esm/cli/repo-context.js +53 -0
  52. package/dist/esm/cli/repo-context.js.map +1 -0
  53. package/dist/esm/daemon/adapter.js +18 -0
  54. package/dist/esm/daemon/adapter.js.map +1 -0
  55. package/dist/esm/daemon/adapters/github.js +112 -0
  56. package/dist/esm/daemon/adapters/github.js.map +1 -0
  57. package/dist/esm/daemon/adapters/go.js +51 -0
  58. package/dist/esm/daemon/adapters/go.js.map +1 -0
  59. package/dist/esm/daemon/adapters/index.js +32 -0
  60. package/dist/esm/daemon/adapters/index.js.map +1 -0
  61. package/dist/esm/daemon/adapters/npm.js +51 -0
  62. package/dist/esm/daemon/adapters/npm.js.map +1 -0
  63. package/dist/esm/daemon/adapters/oci.js +62 -0
  64. package/dist/esm/daemon/adapters/oci.js.map +1 -0
  65. package/dist/esm/daemon/index.js +12 -0
  66. package/dist/esm/daemon/index.js.map +1 -0
  67. package/dist/esm/daemon/server.js +167 -0
  68. package/dist/esm/daemon/server.js.map +1 -0
  69. package/dist/esm/git-remote/credential-helper.js +106 -0
  70. package/dist/esm/git-remote/credential-helper.js.map +1 -0
  71. package/dist/esm/git-remote/credential-main.js +109 -0
  72. package/dist/esm/git-remote/credential-main.js.map +1 -0
  73. package/dist/esm/git-remote/index.js +10 -0
  74. package/dist/esm/git-remote/index.js.map +1 -0
  75. package/dist/esm/git-remote/main.js +78 -0
  76. package/dist/esm/git-remote/main.js.map +1 -0
  77. package/dist/esm/git-remote/parse-url.js +60 -0
  78. package/dist/esm/git-remote/parse-url.js.map +1 -0
  79. package/dist/esm/git-remote/resolve.js +175 -0
  80. package/dist/esm/git-remote/resolve.js.map +1 -0
  81. package/dist/esm/git-remote/service.js +82 -0
  82. package/dist/esm/git-remote/service.js.map +1 -0
  83. package/dist/esm/git-server/auth.js +211 -0
  84. package/dist/esm/git-server/auth.js.map +1 -0
  85. package/dist/esm/git-server/bundle-restore.js +180 -0
  86. package/dist/esm/git-server/bundle-restore.js.map +1 -0
  87. package/dist/esm/git-server/bundle-sync.js +233 -0
  88. package/dist/esm/git-server/bundle-sync.js.map +1 -0
  89. package/dist/esm/git-server/did-service.js +73 -0
  90. package/dist/esm/git-server/did-service.js.map +1 -0
  91. package/dist/esm/git-server/git-backend.js +186 -0
  92. package/dist/esm/git-server/git-backend.js.map +1 -0
  93. package/dist/esm/git-server/http-handler.js +295 -0
  94. package/dist/esm/git-server/http-handler.js.map +1 -0
  95. package/dist/esm/git-server/index.js +16 -0
  96. package/dist/esm/git-server/index.js.map +1 -0
  97. package/dist/esm/git-server/push-authorizer.js +62 -0
  98. package/dist/esm/git-server/push-authorizer.js.map +1 -0
  99. package/dist/esm/git-server/ref-sync.js +132 -0
  100. package/dist/esm/git-server/ref-sync.js.map +1 -0
  101. package/dist/esm/git-server/server.js +185 -0
  102. package/dist/esm/git-server/server.js.map +1 -0
  103. package/dist/esm/git-server/verify.js +109 -0
  104. package/dist/esm/git-server/verify.js.map +1 -0
  105. package/dist/esm/github-shim/helpers.js +273 -0
  106. package/dist/esm/github-shim/helpers.js.map +1 -0
  107. package/dist/esm/github-shim/index.js +13 -0
  108. package/dist/esm/github-shim/index.js.map +1 -0
  109. package/dist/esm/github-shim/issues.js +318 -0
  110. package/dist/esm/github-shim/issues.js.map +1 -0
  111. package/dist/esm/github-shim/pulls.js +423 -0
  112. package/dist/esm/github-shim/pulls.js.map +1 -0
  113. package/dist/esm/github-shim/releases.js +154 -0
  114. package/dist/esm/github-shim/releases.js.map +1 -0
  115. package/dist/esm/github-shim/repos.js +86 -0
  116. package/dist/esm/github-shim/repos.js.map +1 -0
  117. package/dist/esm/github-shim/server.js +351 -0
  118. package/dist/esm/github-shim/server.js.map +1 -0
  119. package/dist/esm/github-shim/users.js +61 -0
  120. package/dist/esm/github-shim/users.js.map +1 -0
  121. package/dist/esm/index.js +26 -0
  122. package/dist/esm/index.js.map +1 -0
  123. package/dist/esm/indexer/api.js +132 -0
  124. package/dist/esm/indexer/api.js.map +1 -0
  125. package/dist/esm/indexer/crawler.js +256 -0
  126. package/dist/esm/indexer/crawler.js.map +1 -0
  127. package/dist/esm/indexer/index.js +9 -0
  128. package/dist/esm/indexer/index.js.map +1 -0
  129. package/dist/esm/indexer/main.js +76 -0
  130. package/dist/esm/indexer/main.js.map +1 -0
  131. package/dist/esm/indexer/store.js +334 -0
  132. package/dist/esm/indexer/store.js.map +1 -0
  133. package/dist/esm/issues.js +133 -0
  134. package/dist/esm/issues.js.map +1 -0
  135. package/dist/esm/notifications.js +47 -0
  136. package/dist/esm/notifications.js.map +1 -0
  137. package/dist/esm/org.js +90 -0
  138. package/dist/esm/org.js.map +1 -0
  139. package/dist/esm/patches.js +136 -0
  140. package/dist/esm/patches.js.map +1 -0
  141. package/dist/esm/refs.js +54 -0
  142. package/dist/esm/refs.js.map +1 -0
  143. package/dist/esm/registry.js +81 -0
  144. package/dist/esm/registry.js.map +1 -0
  145. package/dist/esm/releases.js +78 -0
  146. package/dist/esm/releases.js.map +1 -0
  147. package/dist/esm/repo.js +150 -0
  148. package/dist/esm/repo.js.map +1 -0
  149. package/dist/esm/resolver/index.js +10 -0
  150. package/dist/esm/resolver/index.js.map +1 -0
  151. package/dist/esm/resolver/resolve.js +189 -0
  152. package/dist/esm/resolver/resolve.js.map +1 -0
  153. package/dist/esm/resolver/trust-chain.js +155 -0
  154. package/dist/esm/resolver/trust-chain.js.map +1 -0
  155. package/dist/esm/resolver/verify.js +186 -0
  156. package/dist/esm/resolver/verify.js.map +1 -0
  157. package/dist/esm/shims/go/index.js +9 -0
  158. package/dist/esm/shims/go/index.js.map +1 -0
  159. package/dist/esm/shims/go/proxy.js +275 -0
  160. package/dist/esm/shims/go/proxy.js.map +1 -0
  161. package/dist/esm/shims/go/server.js +70 -0
  162. package/dist/esm/shims/go/server.js.map +1 -0
  163. package/dist/esm/shims/index.js +15 -0
  164. package/dist/esm/shims/index.js.map +1 -0
  165. package/dist/esm/shims/npm/index.js +9 -0
  166. package/dist/esm/shims/npm/index.js.map +1 -0
  167. package/dist/esm/shims/npm/registry.js +234 -0
  168. package/dist/esm/shims/npm/registry.js.map +1 -0
  169. package/dist/esm/shims/npm/server.js +72 -0
  170. package/dist/esm/shims/npm/server.js.map +1 -0
  171. package/dist/esm/shims/oci/index.js +9 -0
  172. package/dist/esm/shims/oci/index.js.map +1 -0
  173. package/dist/esm/shims/oci/registry.js +276 -0
  174. package/dist/esm/shims/oci/registry.js.map +1 -0
  175. package/dist/esm/shims/oci/server.js +82 -0
  176. package/dist/esm/shims/oci/server.js.map +1 -0
  177. package/dist/esm/social.js +70 -0
  178. package/dist/esm/social.js.map +1 -0
  179. package/dist/esm/web/html.js +123 -0
  180. package/dist/esm/web/html.js.map +1 -0
  181. package/dist/esm/web/index.js +7 -0
  182. package/dist/esm/web/index.js.map +1 -0
  183. package/dist/esm/web/routes.js +420 -0
  184. package/dist/esm/web/routes.js.map +1 -0
  185. package/dist/esm/web/server.js +225 -0
  186. package/dist/esm/web/server.js.map +1 -0
  187. package/dist/esm/wiki.js +63 -0
  188. package/dist/esm/wiki.js.map +1 -0
  189. package/dist/types/ci.d.ts +203 -0
  190. package/dist/types/ci.d.ts.map +1 -0
  191. package/dist/types/cli/agent.d.ts +59 -0
  192. package/dist/types/cli/agent.d.ts.map +1 -0
  193. package/dist/types/cli/commands/ci.d.ts +16 -0
  194. package/dist/types/cli/commands/ci.d.ts.map +1 -0
  195. package/dist/types/cli/commands/clone.d.ts +13 -0
  196. package/dist/types/cli/commands/clone.d.ts.map +1 -0
  197. package/dist/types/cli/commands/daemon.d.ts +29 -0
  198. package/dist/types/cli/commands/daemon.d.ts.map +1 -0
  199. package/dist/types/cli/commands/github-api.d.ts +14 -0
  200. package/dist/types/cli/commands/github-api.d.ts.map +1 -0
  201. package/dist/types/cli/commands/init.d.ts +11 -0
  202. package/dist/types/cli/commands/init.d.ts.map +1 -0
  203. package/dist/types/cli/commands/issue.d.ts +16 -0
  204. package/dist/types/cli/commands/issue.d.ts.map +1 -0
  205. package/dist/types/cli/commands/log.d.ts +13 -0
  206. package/dist/types/cli/commands/log.d.ts.map +1 -0
  207. package/dist/types/cli/commands/migrate.d.ts +19 -0
  208. package/dist/types/cli/commands/migrate.d.ts.map +1 -0
  209. package/dist/types/cli/commands/notification.d.ts +16 -0
  210. package/dist/types/cli/commands/notification.d.ts.map +1 -0
  211. package/dist/types/cli/commands/org.d.ts +19 -0
  212. package/dist/types/cli/commands/org.d.ts.map +1 -0
  213. package/dist/types/cli/commands/patch.d.ts +17 -0
  214. package/dist/types/cli/commands/patch.d.ts.map +1 -0
  215. package/dist/types/cli/commands/registry.d.ts +25 -0
  216. package/dist/types/cli/commands/registry.d.ts.map +1 -0
  217. package/dist/types/cli/commands/release.d.ts +13 -0
  218. package/dist/types/cli/commands/release.d.ts.map +1 -0
  219. package/dist/types/cli/commands/repo.d.ts +15 -0
  220. package/dist/types/cli/commands/repo.d.ts.map +1 -0
  221. package/dist/types/cli/commands/serve.d.ts +22 -0
  222. package/dist/types/cli/commands/serve.d.ts.map +1 -0
  223. package/dist/types/cli/commands/setup.d.ts +16 -0
  224. package/dist/types/cli/commands/setup.d.ts.map +1 -0
  225. package/dist/types/cli/commands/shim.d.ts +16 -0
  226. package/dist/types/cli/commands/shim.d.ts.map +1 -0
  227. package/dist/types/cli/commands/social.d.ts +19 -0
  228. package/dist/types/cli/commands/social.d.ts.map +1 -0
  229. package/dist/types/cli/commands/web.d.ts +14 -0
  230. package/dist/types/cli/commands/web.d.ts.map +1 -0
  231. package/dist/types/cli/commands/wiki.d.ts +14 -0
  232. package/dist/types/cli/commands/wiki.d.ts.map +1 -0
  233. package/dist/types/cli/flags.d.ts +16 -0
  234. package/dist/types/cli/flags.d.ts.map +1 -0
  235. package/dist/types/cli/main.d.ts +69 -0
  236. package/dist/types/cli/main.d.ts.map +1 -0
  237. package/dist/types/cli/repo-context.d.ts +30 -0
  238. package/dist/types/cli/repo-context.d.ts.map +1 -0
  239. package/dist/types/daemon/adapter.d.ts +74 -0
  240. package/dist/types/daemon/adapter.d.ts.map +1 -0
  241. package/dist/types/daemon/adapters/github.d.ts +10 -0
  242. package/dist/types/daemon/adapters/github.d.ts.map +1 -0
  243. package/dist/types/daemon/adapters/go.d.ts +10 -0
  244. package/dist/types/daemon/adapters/go.d.ts.map +1 -0
  245. package/dist/types/daemon/adapters/index.d.ts +22 -0
  246. package/dist/types/daemon/adapters/index.d.ts.map +1 -0
  247. package/dist/types/daemon/adapters/npm.d.ts +10 -0
  248. package/dist/types/daemon/adapters/npm.d.ts.map +1 -0
  249. package/dist/types/daemon/adapters/oci.d.ts +10 -0
  250. package/dist/types/daemon/adapters/oci.d.ts.map +1 -0
  251. package/dist/types/daemon/index.d.ts +14 -0
  252. package/dist/types/daemon/index.d.ts.map +1 -0
  253. package/dist/types/daemon/server.d.ts +55 -0
  254. package/dist/types/daemon/server.d.ts.map +1 -0
  255. package/dist/types/git-remote/credential-helper.d.ts +49 -0
  256. package/dist/types/git-remote/credential-helper.d.ts.map +1 -0
  257. package/dist/types/git-remote/credential-main.d.ts +24 -0
  258. package/dist/types/git-remote/credential-main.d.ts.map +1 -0
  259. package/dist/types/git-remote/index.d.ts +10 -0
  260. package/dist/types/git-remote/index.d.ts.map +1 -0
  261. package/dist/types/git-remote/main.d.ts +23 -0
  262. package/dist/types/git-remote/main.d.ts.map +1 -0
  263. package/dist/types/git-remote/parse-url.d.ts +32 -0
  264. package/dist/types/git-remote/parse-url.d.ts.map +1 -0
  265. package/dist/types/git-remote/resolve.d.ts +30 -0
  266. package/dist/types/git-remote/resolve.d.ts.map +1 -0
  267. package/dist/types/git-remote/service.d.ts +75 -0
  268. package/dist/types/git-remote/service.d.ts.map +1 -0
  269. package/dist/types/git-server/auth.d.ts +129 -0
  270. package/dist/types/git-server/auth.d.ts.map +1 -0
  271. package/dist/types/git-server/bundle-restore.d.ts +48 -0
  272. package/dist/types/git-server/bundle-restore.d.ts.map +1 -0
  273. package/dist/types/git-server/bundle-sync.d.ts +90 -0
  274. package/dist/types/git-server/bundle-sync.d.ts.map +1 -0
  275. package/dist/types/git-server/did-service.d.ts +26 -0
  276. package/dist/types/git-server/did-service.d.ts.map +1 -0
  277. package/dist/types/git-server/git-backend.d.ts +84 -0
  278. package/dist/types/git-server/git-backend.d.ts.map +1 -0
  279. package/dist/types/git-server/http-handler.d.ts +73 -0
  280. package/dist/types/git-server/http-handler.d.ts.map +1 -0
  281. package/dist/types/git-server/index.d.ts +16 -0
  282. package/dist/types/git-server/index.d.ts.map +1 -0
  283. package/dist/types/git-server/push-authorizer.d.ts +38 -0
  284. package/dist/types/git-server/push-authorizer.d.ts.map +1 -0
  285. package/dist/types/git-server/ref-sync.d.ts +52 -0
  286. package/dist/types/git-server/ref-sync.d.ts.map +1 -0
  287. package/dist/types/git-server/server.d.ts +70 -0
  288. package/dist/types/git-server/server.d.ts.map +1 -0
  289. package/dist/types/git-server/verify.d.ts +12 -0
  290. package/dist/types/git-server/verify.d.ts.map +1 -0
  291. package/dist/types/github-shim/helpers.d.ts +108 -0
  292. package/dist/types/github-shim/helpers.d.ts.map +1 -0
  293. package/dist/types/github-shim/index.d.ts +15 -0
  294. package/dist/types/github-shim/index.d.ts.map +1 -0
  295. package/dist/types/github-shim/issues.d.ts +24 -0
  296. package/dist/types/github-shim/issues.d.ts.map +1 -0
  297. package/dist/types/github-shim/pulls.d.ts +31 -0
  298. package/dist/types/github-shim/pulls.d.ts.map +1 -0
  299. package/dist/types/github-shim/releases.d.ts +18 -0
  300. package/dist/types/github-shim/releases.d.ts.map +1 -0
  301. package/dist/types/github-shim/repos.d.ts +21 -0
  302. package/dist/types/github-shim/repos.d.ts.map +1 -0
  303. package/dist/types/github-shim/server.d.ts +53 -0
  304. package/dist/types/github-shim/server.d.ts.map +1 -0
  305. package/dist/types/github-shim/users.d.ts +17 -0
  306. package/dist/types/github-shim/users.d.ts.map +1 -0
  307. package/dist/types/index.d.ts +26 -0
  308. package/dist/types/index.d.ts.map +1 -0
  309. package/dist/types/indexer/api.d.ts +32 -0
  310. package/dist/types/indexer/api.d.ts.map +1 -0
  311. package/dist/types/indexer/crawler.d.ts +72 -0
  312. package/dist/types/indexer/crawler.d.ts.map +1 -0
  313. package/dist/types/indexer/index.d.ts +12 -0
  314. package/dist/types/indexer/index.d.ts.map +1 -0
  315. package/dist/types/indexer/main.d.ts +21 -0
  316. package/dist/types/indexer/main.d.ts.map +1 -0
  317. package/dist/types/indexer/store.d.ts +168 -0
  318. package/dist/types/indexer/store.d.ts.map +1 -0
  319. package/dist/types/issues.d.ts +395 -0
  320. package/dist/types/issues.d.ts.map +1 -0
  321. package/dist/types/notifications.d.ts +93 -0
  322. package/dist/types/notifications.d.ts.map +1 -0
  323. package/dist/types/org.d.ts +232 -0
  324. package/dist/types/org.d.ts.map +1 -0
  325. package/dist/types/patches.d.ts +410 -0
  326. package/dist/types/patches.d.ts.map +1 -0
  327. package/dist/types/refs.d.ts +114 -0
  328. package/dist/types/refs.d.ts.map +1 -0
  329. package/dist/types/registry.d.ts +212 -0
  330. package/dist/types/registry.d.ts.map +1 -0
  331. package/dist/types/releases.d.ts +204 -0
  332. package/dist/types/releases.d.ts.map +1 -0
  333. package/dist/types/repo.d.ts +450 -0
  334. package/dist/types/repo.d.ts.map +1 -0
  335. package/dist/types/resolver/index.d.ts +13 -0
  336. package/dist/types/resolver/index.d.ts.map +1 -0
  337. package/dist/types/resolver/resolve.d.ts +80 -0
  338. package/dist/types/resolver/resolve.d.ts.map +1 -0
  339. package/dist/types/resolver/trust-chain.d.ts +54 -0
  340. package/dist/types/resolver/trust-chain.d.ts.map +1 -0
  341. package/dist/types/resolver/verify.d.ts +62 -0
  342. package/dist/types/resolver/verify.d.ts.map +1 -0
  343. package/dist/types/shims/go/index.d.ts +11 -0
  344. package/dist/types/shims/go/index.d.ts.map +1 -0
  345. package/dist/types/shims/go/proxy.d.ts +51 -0
  346. package/dist/types/shims/go/proxy.d.ts.map +1 -0
  347. package/dist/types/shims/go/server.d.ts +23 -0
  348. package/dist/types/shims/go/server.d.ts.map +1 -0
  349. package/dist/types/shims/index.d.ts +18 -0
  350. package/dist/types/shims/index.d.ts.map +1 -0
  351. package/dist/types/shims/npm/index.d.ts +11 -0
  352. package/dist/types/shims/npm/index.d.ts.map +1 -0
  353. package/dist/types/shims/npm/registry.d.ts +46 -0
  354. package/dist/types/shims/npm/registry.d.ts.map +1 -0
  355. package/dist/types/shims/npm/server.d.ts +23 -0
  356. package/dist/types/shims/npm/server.d.ts.map +1 -0
  357. package/dist/types/shims/oci/index.d.ts +11 -0
  358. package/dist/types/shims/oci/index.d.ts.map +1 -0
  359. package/dist/types/shims/oci/registry.d.ts +56 -0
  360. package/dist/types/shims/oci/registry.d.ts.map +1 -0
  361. package/dist/types/shims/oci/server.d.ts +23 -0
  362. package/dist/types/shims/oci/server.d.ts.map +1 -0
  363. package/dist/types/social.d.ts +162 -0
  364. package/dist/types/social.d.ts.map +1 -0
  365. package/dist/types/web/html.d.ts +23 -0
  366. package/dist/types/web/html.d.ts.map +1 -0
  367. package/dist/types/web/index.d.ts +8 -0
  368. package/dist/types/web/index.d.ts.map +1 -0
  369. package/dist/types/web/routes.d.ts +21 -0
  370. package/dist/types/web/routes.d.ts.map +1 -0
  371. package/dist/types/web/server.d.ts +38 -0
  372. package/dist/types/web/server.d.ts.map +1 -0
  373. package/dist/types/wiki.d.ts +143 -0
  374. package/dist/types/wiki.d.ts.map +1 -0
  375. package/package.json +108 -0
  376. package/schemas/ci/check-run.json +23 -0
  377. package/schemas/ci/check-suite.json +23 -0
  378. package/schemas/issues/assignment.json +17 -0
  379. package/schemas/issues/comment.json +14 -0
  380. package/schemas/issues/issue.json +20 -0
  381. package/schemas/issues/label.json +17 -0
  382. package/schemas/issues/reaction.json +14 -0
  383. package/schemas/issues/status-change.json +14 -0
  384. package/schemas/notifications/notification.json +20 -0
  385. package/schemas/org/org-member.json +17 -0
  386. package/schemas/org/org.json +26 -0
  387. package/schemas/org/team-member.json +17 -0
  388. package/schemas/org/team.json +17 -0
  389. package/schemas/patches/merge-result.json +14 -0
  390. package/schemas/patches/patch-status-change.json +14 -0
  391. package/schemas/patches/patch.json +20 -0
  392. package/schemas/patches/review-comment.json +17 -0
  393. package/schemas/patches/review.json +14 -0
  394. package/schemas/patches/revision.json +30 -0
  395. package/schemas/refs/git-ref.json +32 -0
  396. package/schemas/registry/attestation.json +23 -0
  397. package/schemas/registry/package-version.json +23 -0
  398. package/schemas/registry/package.json +32 -0
  399. package/schemas/releases/release.json +17 -0
  400. package/schemas/repo/collaborator.json +17 -0
  401. package/schemas/repo/repo.json +35 -0
  402. package/schemas/repo/settings.json +39 -0
  403. package/schemas/repo/topic.json +14 -0
  404. package/schemas/repo/webhook.json +26 -0
  405. package/schemas/social/activity.json +23 -0
  406. package/schemas/social/follow.json +17 -0
  407. package/schemas/social/star.json +20 -0
  408. package/schemas/wiki/wiki-history.json +20 -0
  409. package/schemas/wiki/wiki-page.json +17 -0
  410. package/src/ci.ts +118 -0
  411. package/src/cli/agent.ts +117 -0
  412. package/src/cli/commands/ci.ts +300 -0
  413. package/src/cli/commands/clone.ts +78 -0
  414. package/src/cli/commands/daemon.ts +129 -0
  415. package/src/cli/commands/github-api.ts +30 -0
  416. package/src/cli/commands/init.ts +69 -0
  417. package/src/cli/commands/issue.ts +321 -0
  418. package/src/cli/commands/log.ts +106 -0
  419. package/src/cli/commands/migrate.ts +525 -0
  420. package/src/cli/commands/notification.ts +148 -0
  421. package/src/cli/commands/org.ts +381 -0
  422. package/src/cli/commands/patch.ts +413 -0
  423. package/src/cli/commands/registry.ts +542 -0
  424. package/src/cli/commands/release.ts +189 -0
  425. package/src/cli/commands/repo.ts +160 -0
  426. package/src/cli/commands/serve.ts +153 -0
  427. package/src/cli/commands/setup.ts +97 -0
  428. package/src/cli/commands/shim.ts +79 -0
  429. package/src/cli/commands/social.ts +221 -0
  430. package/src/cli/commands/web.ts +30 -0
  431. package/src/cli/commands/wiki.ts +199 -0
  432. package/src/cli/flags.ts +28 -0
  433. package/src/cli/main.ts +350 -0
  434. package/src/cli/repo-context.ts +55 -0
  435. package/src/daemon/adapter.ts +95 -0
  436. package/src/daemon/adapters/github.ts +86 -0
  437. package/src/daemon/adapters/go.ts +47 -0
  438. package/src/daemon/adapters/index.ts +36 -0
  439. package/src/daemon/adapters/npm.ts +47 -0
  440. package/src/daemon/adapters/oci.ts +59 -0
  441. package/src/daemon/index.ts +16 -0
  442. package/src/daemon/server.ts +204 -0
  443. package/src/git-remote/credential-helper.ts +114 -0
  444. package/src/git-remote/credential-main.ts +118 -0
  445. package/src/git-remote/index.ts +10 -0
  446. package/src/git-remote/main.ts +74 -0
  447. package/src/git-remote/parse-url.ts +81 -0
  448. package/src/git-remote/resolve.ts +207 -0
  449. package/src/git-remote/service.ts +126 -0
  450. package/src/git-server/auth.ts +308 -0
  451. package/src/git-server/bundle-restore.ts +217 -0
  452. package/src/git-server/bundle-sync.ts +300 -0
  453. package/src/git-server/did-service.ts +77 -0
  454. package/src/git-server/git-backend.ts +222 -0
  455. package/src/git-server/http-handler.ts +386 -0
  456. package/src/git-server/index.ts +16 -0
  457. package/src/git-server/push-authorizer.ts +77 -0
  458. package/src/git-server/ref-sync.ts +166 -0
  459. package/src/git-server/server.ts +236 -0
  460. package/src/git-server/verify.ts +116 -0
  461. package/src/github-shim/helpers.ts +311 -0
  462. package/src/github-shim/index.ts +35 -0
  463. package/src/github-shim/issues.ts +389 -0
  464. package/src/github-shim/pulls.ts +500 -0
  465. package/src/github-shim/releases.ts +185 -0
  466. package/src/github-shim/repos.ts +95 -0
  467. package/src/github-shim/server.ts +334 -0
  468. package/src/github-shim/users.ts +63 -0
  469. package/src/index.ts +26 -0
  470. package/src/indexer/api.ts +162 -0
  471. package/src/indexer/crawler.ts +290 -0
  472. package/src/indexer/index.ts +22 -0
  473. package/src/indexer/main.ts +83 -0
  474. package/src/indexer/store.ts +408 -0
  475. package/src/issues.ts +200 -0
  476. package/src/notifications.ts +80 -0
  477. package/src/org.ts +147 -0
  478. package/src/patches.ts +203 -0
  479. package/src/refs.ts +94 -0
  480. package/src/registry.ts +132 -0
  481. package/src/releases.ts +124 -0
  482. package/src/repo.ts +234 -0
  483. package/src/resolver/index.ts +42 -0
  484. package/src/resolver/resolve.ts +244 -0
  485. package/src/resolver/trust-chain.ts +217 -0
  486. package/src/resolver/verify.ts +237 -0
  487. package/src/shims/go/index.ts +14 -0
  488. package/src/shims/go/proxy.ts +336 -0
  489. package/src/shims/go/server.ts +82 -0
  490. package/src/shims/index.ts +20 -0
  491. package/src/shims/npm/index.ts +14 -0
  492. package/src/shims/npm/registry.ts +288 -0
  493. package/src/shims/npm/server.ts +84 -0
  494. package/src/shims/oci/index.ts +14 -0
  495. package/src/shims/oci/registry.ts +334 -0
  496. package/src/shims/oci/server.ts +94 -0
  497. package/src/social.ts +116 -0
  498. package/src/web/html.ts +120 -0
  499. package/src/web/index.ts +8 -0
  500. package/src/web/routes.ts +449 -0
  501. package/src/web/server.ts +256 -0
  502. package/src/wiki.ts +102 -0
@@ -0,0 +1,423 @@
1
+ /**
2
+ * GitHub API shim — `/repos/:did/:repo/pulls` endpoints.
3
+ *
4
+ * Maps DWN patch records to GitHub REST API v3 pull request responses.
5
+ *
6
+ * Endpoints:
7
+ * GET /repos/:did/:repo/pulls List pull requests
8
+ * GET /repos/:did/:repo/pulls/:number Pull request detail
9
+ * GET /repos/:did/:repo/pulls/:number/reviews Pull request reviews
10
+ * POST /repos/:did/:repo/pulls Create pull request
11
+ * PATCH /repos/:did/:repo/pulls/:number Update pull request
12
+ * PUT /repos/:did/:repo/pulls/:number/merge Merge pull request
13
+ * POST /repos/:did/:repo/pulls/:number/reviews Create review
14
+ *
15
+ * Status mapping:
16
+ * - `open` -> state: "open"
17
+ * - `closed` -> state: "closed", merged: false
18
+ * - `merged` -> state: "closed", merged: true
19
+ *
20
+ * @module
21
+ */
22
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
23
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
24
+ return new (P || (P = Promise))(function (resolve, reject) {
25
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
26
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
27
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
28
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
29
+ });
30
+ };
31
+ import { DateSort } from '@enbox/dwn-sdk-js';
32
+ import { buildApiUrl, buildLinkHeader, buildOwner, fromOpt, getNextPatchNumber, getRepoRecord, jsonCreated, jsonMethodNotAllowed, jsonNotFound, jsonOk, jsonValidationError, numericId, paginate, parsePagination, toISODate, } from './helpers.js';
33
+ // ---------------------------------------------------------------------------
34
+ // Verdict -> GitHub review state mapping
35
+ // ---------------------------------------------------------------------------
36
+ const VERDICT_MAP = {
37
+ approve: 'APPROVED',
38
+ reject: 'CHANGES_REQUESTED',
39
+ comment: 'COMMENTED',
40
+ };
41
+ // ---------------------------------------------------------------------------
42
+ // Pull request object builder
43
+ // ---------------------------------------------------------------------------
44
+ function buildPullResponse(rec, data, tags, targetDid, repoName, baseUrl) {
45
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
46
+ const owner = buildOwner(targetDid, baseUrl);
47
+ const number = parseInt((_b = (_a = tags.number) !== null && _a !== void 0 ? _a : data.number) !== null && _b !== void 0 ? _b : '0', 10);
48
+ const dwnStatus = (_c = tags.status) !== null && _c !== void 0 ? _c : 'open';
49
+ const merged = dwnStatus === 'merged';
50
+ const state = dwnStatus === 'open' ? 'open' : 'closed';
51
+ const baseBranch = (_d = tags.baseBranch) !== null && _d !== void 0 ? _d : 'main';
52
+ const headBranch = (_e = tags.headBranch) !== null && _e !== void 0 ? _e : '';
53
+ return {
54
+ id: numericId((_f = rec.id) !== null && _f !== void 0 ? _f : ''),
55
+ node_id: (_g = rec.id) !== null && _g !== void 0 ? _g : '',
56
+ url: `${baseUrl}/repos/${targetDid}/${repoName}/pulls/${number}`,
57
+ html_url: `${baseUrl}/repos/${targetDid}/${repoName}/pulls/${number}`,
58
+ diff_url: `${baseUrl}/repos/${targetDid}/${repoName}/pulls/${number}.diff`,
59
+ patch_url: `${baseUrl}/repos/${targetDid}/${repoName}/pulls/${number}.patch`,
60
+ issue_url: `${baseUrl}/repos/${targetDid}/${repoName}/issues/${number}`,
61
+ commits_url: `${baseUrl}/repos/${targetDid}/${repoName}/pulls/${number}/commits`,
62
+ review_comments_url: `${baseUrl}/repos/${targetDid}/${repoName}/pulls/${number}/comments`,
63
+ comments_url: `${baseUrl}/repos/${targetDid}/${repoName}/issues/${number}/comments`,
64
+ number,
65
+ title: (_h = data.title) !== null && _h !== void 0 ? _h : '',
66
+ body: (_j = data.body) !== null && _j !== void 0 ? _j : null,
67
+ state,
68
+ locked: false,
69
+ merged,
70
+ mergeable: state === 'open' ? true : null,
71
+ merge_commit_sha: merged ? '0000000000000000000000000000000000000000' : null,
72
+ merged_at: merged ? toISODate(rec.timestamp) : null,
73
+ merged_by: merged ? owner : null,
74
+ created_at: toISODate(rec.dateCreated),
75
+ updated_at: toISODate(rec.timestamp),
76
+ closed_at: state === 'closed' ? toISODate(rec.timestamp) : null,
77
+ user: owner,
78
+ author_association: 'OWNER',
79
+ draft: false,
80
+ head: {
81
+ label: `${targetDid}:${headBranch}`,
82
+ ref: headBranch,
83
+ sha: '',
84
+ },
85
+ base: {
86
+ label: `${targetDid}:${baseBranch}`,
87
+ ref: baseBranch,
88
+ sha: '',
89
+ },
90
+ labels: [],
91
+ assignees: [],
92
+ milestone: null,
93
+ requested_reviewers: [],
94
+ commits: 0,
95
+ additions: 0,
96
+ deletions: 0,
97
+ changed_files: 0,
98
+ };
99
+ }
100
+ // ---------------------------------------------------------------------------
101
+ // GET /repos/:did/:repo/pulls
102
+ // ---------------------------------------------------------------------------
103
+ export function handleListPulls(ctx, targetDid, repoName, url) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ var _a, _b, _c;
106
+ const repo = yield getRepoRecord(ctx, targetDid);
107
+ if (!repo) {
108
+ return jsonNotFound(`Repository '${repoName}' not found for DID '${targetDid}'.`);
109
+ }
110
+ const from = fromOpt(ctx, targetDid);
111
+ const baseUrl = buildApiUrl(url);
112
+ const stateFilter = (_a = url.searchParams.get('state')) !== null && _a !== void 0 ? _a : 'open';
113
+ const direction = (_b = url.searchParams.get('direction')) !== null && _b !== void 0 ? _b : 'desc';
114
+ const pagination = parsePagination(url);
115
+ const dateSort = direction === 'asc'
116
+ ? DateSort.CreatedAscending
117
+ : DateSort.CreatedDescending;
118
+ const { records } = yield ctx.patches.records.query('repo/patch', {
119
+ from,
120
+ filter: { contextId: repo.contextId },
121
+ dateSort,
122
+ });
123
+ // Filter by state — GitHub treats `closed` as "closed or merged".
124
+ let filtered = records;
125
+ if (stateFilter !== 'all') {
126
+ filtered = records.filter((r) => {
127
+ var _a;
128
+ const t = r.tags;
129
+ const s = (_a = t === null || t === void 0 ? void 0 : t.status) !== null && _a !== void 0 ? _a : 'open';
130
+ if (stateFilter === 'open') {
131
+ return s === 'open';
132
+ }
133
+ // 'closed' includes both closed and merged.
134
+ return s === 'closed' || s === 'merged';
135
+ });
136
+ }
137
+ const page = paginate(filtered, pagination);
138
+ const items = [];
139
+ for (const rec of page) {
140
+ const data = yield rec.data.json();
141
+ const tags = (_c = rec.tags) !== null && _c !== void 0 ? _c : {};
142
+ items.push(buildPullResponse(rec, data, tags, targetDid, repoName, baseUrl));
143
+ }
144
+ const linkHeader = buildLinkHeader(baseUrl, `/repos/${targetDid}/${repoName}/pulls`, pagination.page, pagination.perPage, filtered.length);
145
+ const extraHeaders = {};
146
+ if (linkHeader) {
147
+ extraHeaders['Link'] = linkHeader;
148
+ }
149
+ return jsonOk(items, extraHeaders);
150
+ });
151
+ }
152
+ // ---------------------------------------------------------------------------
153
+ // GET /repos/:did/:repo/pulls/:number
154
+ // ---------------------------------------------------------------------------
155
+ export function handleGetPull(ctx, targetDid, repoName, number, url) {
156
+ return __awaiter(this, void 0, void 0, function* () {
157
+ var _a;
158
+ const repo = yield getRepoRecord(ctx, targetDid);
159
+ if (!repo) {
160
+ return jsonNotFound(`Repository '${repoName}' not found for DID '${targetDid}'.`);
161
+ }
162
+ const from = fromOpt(ctx, targetDid);
163
+ const baseUrl = buildApiUrl(url);
164
+ const { records } = yield ctx.patches.records.query('repo/patch', {
165
+ from,
166
+ filter: { contextId: repo.contextId, tags: { number } },
167
+ });
168
+ if (records.length === 0) {
169
+ return jsonNotFound(`Pull request #${number} not found.`);
170
+ }
171
+ const rec = records[0];
172
+ const data = yield rec.data.json();
173
+ const tags = (_a = rec.tags) !== null && _a !== void 0 ? _a : {};
174
+ return jsonOk(buildPullResponse(rec, data, tags, targetDid, repoName, baseUrl));
175
+ });
176
+ }
177
+ // ---------------------------------------------------------------------------
178
+ // GET /repos/:did/:repo/pulls/:number/reviews
179
+ // ---------------------------------------------------------------------------
180
+ export function handleListPullReviews(ctx, targetDid, repoName, number, url) {
181
+ return __awaiter(this, void 0, void 0, function* () {
182
+ var _a, _b, _c, _d, _e, _f, _g;
183
+ const repo = yield getRepoRecord(ctx, targetDid);
184
+ if (!repo) {
185
+ return jsonNotFound(`Repository '${repoName}' not found for DID '${targetDid}'.`);
186
+ }
187
+ const from = fromOpt(ctx, targetDid);
188
+ const baseUrl = buildApiUrl(url);
189
+ const pagination = parsePagination(url);
190
+ // Find the patch first.
191
+ const { records: patches } = yield ctx.patches.records.query('repo/patch', {
192
+ from,
193
+ filter: { contextId: repo.contextId, tags: { number } },
194
+ });
195
+ if (patches.length === 0) {
196
+ return jsonNotFound(`Pull request #${number} not found.`);
197
+ }
198
+ const patchRec = patches[0];
199
+ const owner = buildOwner(targetDid, baseUrl);
200
+ // Fetch reviews.
201
+ const { records: reviews } = yield ctx.patches.records.query('repo/patch/review', {
202
+ from,
203
+ filter: { contextId: patchRec.contextId },
204
+ dateSort: DateSort.CreatedAscending,
205
+ });
206
+ const paged = paginate(reviews, pagination);
207
+ const items = [];
208
+ for (const review of paged) {
209
+ const rData = yield review.data.json();
210
+ const rTags = (_a = review.tags) !== null && _a !== void 0 ? _a : {};
211
+ const verdict = (_b = rTags.verdict) !== null && _b !== void 0 ? _b : 'comment';
212
+ items.push({
213
+ id: numericId((_c = review.id) !== null && _c !== void 0 ? _c : ''),
214
+ node_id: (_d = review.id) !== null && _d !== void 0 ? _d : '',
215
+ user: owner,
216
+ body: (_e = rData.body) !== null && _e !== void 0 ? _e : '',
217
+ state: (_f = VERDICT_MAP[verdict]) !== null && _f !== void 0 ? _f : 'COMMENTED',
218
+ html_url: `${baseUrl}/repos/${targetDid}/${repoName}/pulls/${number}#pullrequestreview-${numericId((_g = review.id) !== null && _g !== void 0 ? _g : '')}`,
219
+ pull_request_url: `${baseUrl}/repos/${targetDid}/${repoName}/pulls/${number}`,
220
+ submitted_at: toISODate(review.dateCreated),
221
+ commit_id: '',
222
+ author_association: 'OWNER',
223
+ });
224
+ }
225
+ const linkHeader = buildLinkHeader(baseUrl, `/repos/${targetDid}/${repoName}/pulls/${number}/reviews`, pagination.page, pagination.perPage, reviews.length);
226
+ const extraHeaders = {};
227
+ if (linkHeader) {
228
+ extraHeaders['Link'] = linkHeader;
229
+ }
230
+ return jsonOk(items, extraHeaders);
231
+ });
232
+ }
233
+ // ---------------------------------------------------------------------------
234
+ // POST /repos/:did/:repo/pulls — create pull request
235
+ // ---------------------------------------------------------------------------
236
+ export function handleCreatePull(ctx, targetDid, repoName, reqBody, url) {
237
+ return __awaiter(this, void 0, void 0, function* () {
238
+ var _a, _b, _c, _d;
239
+ const repo = yield getRepoRecord(ctx, targetDid);
240
+ if (!repo) {
241
+ return jsonNotFound(`Repository '${repoName}' not found for DID '${targetDid}'.`);
242
+ }
243
+ const title = reqBody.title;
244
+ if (!title) {
245
+ return jsonValidationError('Validation Failed: title is required.');
246
+ }
247
+ const body = (_a = reqBody.body) !== null && _a !== void 0 ? _a : '';
248
+ const baseBranch = (_b = reqBody.base) !== null && _b !== void 0 ? _b : 'main';
249
+ const headBranch = (_c = reqBody.head) !== null && _c !== void 0 ? _c : '';
250
+ const baseUrl = buildApiUrl(url);
251
+ const number = yield getNextPatchNumber(ctx, repo.contextId);
252
+ const tags = {
253
+ status: 'open',
254
+ baseBranch,
255
+ number: String(number),
256
+ };
257
+ if (headBranch) {
258
+ tags.headBranch = headBranch;
259
+ }
260
+ const { status, record } = yield ctx.patches.records.create('repo/patch', {
261
+ data: { title, body, number },
262
+ tags,
263
+ parentContextId: repo.contextId,
264
+ });
265
+ if (status.code >= 300) {
266
+ return jsonValidationError(`Failed to create pull request: ${status.detail}`);
267
+ }
268
+ const recTags = (_d = record.tags) !== null && _d !== void 0 ? _d : {};
269
+ const data = yield record.data.json();
270
+ const pr = buildPullResponse(record, data, recTags, targetDid, repoName, baseUrl);
271
+ return jsonCreated(pr);
272
+ });
273
+ }
274
+ // ---------------------------------------------------------------------------
275
+ // PATCH /repos/:did/:repo/pulls/:number — update pull request
276
+ // ---------------------------------------------------------------------------
277
+ export function handleUpdatePull(ctx, targetDid, repoName, number, reqBody, url) {
278
+ return __awaiter(this, void 0, void 0, function* () {
279
+ var _a, _b, _c, _d, _e;
280
+ const repo = yield getRepoRecord(ctx, targetDid);
281
+ if (!repo) {
282
+ return jsonNotFound(`Repository '${repoName}' not found for DID '${targetDid}'.`);
283
+ }
284
+ const baseUrl = buildApiUrl(url);
285
+ const { records } = yield ctx.patches.records.query('repo/patch', {
286
+ filter: { contextId: repo.contextId, tags: { number } },
287
+ });
288
+ if (records.length === 0) {
289
+ return jsonNotFound(`Pull request #${number} not found.`);
290
+ }
291
+ const rec = records[0];
292
+ const data = yield rec.data.json();
293
+ const tags = (_a = rec.tags) !== null && _a !== void 0 ? _a : {};
294
+ // Apply updates.
295
+ const newTitle = (_b = reqBody.title) !== null && _b !== void 0 ? _b : data.title;
296
+ const newBody = (_c = reqBody.body) !== null && _c !== void 0 ? _c : data.body;
297
+ const newBase = (_d = reqBody.base) !== null && _d !== void 0 ? _d : tags.baseBranch;
298
+ // GitHub API uses "state" (open/closed), DWN uses "status" tag.
299
+ let newStatus = (_e = tags.status) !== null && _e !== void 0 ? _e : 'open';
300
+ if (reqBody.state === 'closed') {
301
+ newStatus = 'closed';
302
+ }
303
+ if (reqBody.state === 'open') {
304
+ newStatus = 'open';
305
+ }
306
+ const newTags = Object.assign(Object.assign({}, tags), { status: newStatus });
307
+ if (newBase) {
308
+ newTags.baseBranch = newBase;
309
+ }
310
+ const { status } = yield rec.update({
311
+ data: { title: newTitle, body: newBody, number: data.number },
312
+ tags: newTags,
313
+ });
314
+ if (status.code >= 300) {
315
+ return jsonValidationError(`Failed to update pull request: ${status.detail}`);
316
+ }
317
+ const updatedData = { title: newTitle, body: newBody, number: data.number };
318
+ const pr = buildPullResponse(rec, updatedData, newTags, targetDid, repoName, baseUrl);
319
+ return jsonOk(pr);
320
+ });
321
+ }
322
+ // ---------------------------------------------------------------------------
323
+ // PUT /repos/:did/:repo/pulls/:number/merge — merge pull request
324
+ // ---------------------------------------------------------------------------
325
+ export function handleMergePull(ctx, targetDid, repoName, number, reqBody, _url) {
326
+ return __awaiter(this, void 0, void 0, function* () {
327
+ var _a, _b;
328
+ const repo = yield getRepoRecord(ctx, targetDid);
329
+ if (!repo) {
330
+ return jsonNotFound(`Repository '${repoName}' not found for DID '${targetDid}'.`);
331
+ }
332
+ const { records } = yield ctx.patches.records.query('repo/patch', {
333
+ filter: { contextId: repo.contextId, tags: { number } },
334
+ });
335
+ if (records.length === 0) {
336
+ return jsonNotFound(`Pull request #${number} not found.`);
337
+ }
338
+ const rec = records[0];
339
+ const data = yield rec.data.json();
340
+ const tags = (_a = rec.tags) !== null && _a !== void 0 ? _a : {};
341
+ if (tags.status === 'merged') {
342
+ return jsonMethodNotAllowed(`Pull request #${number} is already merged.`);
343
+ }
344
+ if (tags.status === 'closed') {
345
+ return jsonMethodNotAllowed(`Pull request #${number} is closed. Reopen it before merging.`);
346
+ }
347
+ // Update the patch status to merged.
348
+ const mergeStrategy = (_b = reqBody.merge_method) !== null && _b !== void 0 ? _b : 'merge';
349
+ const { status } = yield rec.update({
350
+ data: data,
351
+ tags: Object.assign(Object.assign({}, tags), { status: 'merged' }),
352
+ });
353
+ if (status.code >= 300) {
354
+ return jsonValidationError(`Failed to merge pull request: ${status.detail}`);
355
+ }
356
+ // Create a merge result record.
357
+ yield ctx.patches.records.create('repo/patch/mergeResult', {
358
+ data: { mergedBy: ctx.did },
359
+ tags: { mergeCommit: 'pending', strategy: mergeStrategy },
360
+ parentContextId: rec.contextId,
361
+ });
362
+ // GitHub returns a merge result object.
363
+ return jsonOk({
364
+ sha: '0000000000000000000000000000000000000000',
365
+ merged: true,
366
+ message: `Pull request #${number} merged successfully.`,
367
+ });
368
+ });
369
+ }
370
+ // ---------------------------------------------------------------------------
371
+ // POST /repos/:did/:repo/pulls/:number/reviews — create review
372
+ // ---------------------------------------------------------------------------
373
+ export function handleCreatePullReview(ctx, targetDid, repoName, number, reqBody, url) {
374
+ return __awaiter(this, void 0, void 0, function* () {
375
+ var _a, _b, _c, _d, _e, _f, _g;
376
+ const repo = yield getRepoRecord(ctx, targetDid);
377
+ if (!repo) {
378
+ return jsonNotFound(`Repository '${repoName}' not found for DID '${targetDid}'.`);
379
+ }
380
+ const baseUrl = buildApiUrl(url);
381
+ // Find the patch.
382
+ const { records: patches } = yield ctx.patches.records.query('repo/patch', {
383
+ filter: { contextId: repo.contextId, tags: { number } },
384
+ });
385
+ if (patches.length === 0) {
386
+ return jsonNotFound(`Pull request #${number} not found.`);
387
+ }
388
+ const patchRec = patches[0];
389
+ const reviewBody = (_a = reqBody.body) !== null && _a !== void 0 ? _a : '';
390
+ // GitHub API uses "event" field: APPROVE, REQUEST_CHANGES, COMMENT.
391
+ // Map to DWN verdict tags.
392
+ const event = (_c = (_b = reqBody.event) === null || _b === void 0 ? void 0 : _b.toUpperCase()) !== null && _c !== void 0 ? _c : 'COMMENT';
393
+ let verdict = 'comment';
394
+ if (event === 'APPROVE') {
395
+ verdict = 'approve';
396
+ }
397
+ if (event === 'REQUEST_CHANGES') {
398
+ verdict = 'reject';
399
+ }
400
+ const { status, record: reviewRec } = yield ctx.patches.records.create('repo/patch/review', {
401
+ data: { body: reviewBody },
402
+ tags: { verdict },
403
+ parentContextId: patchRec.contextId,
404
+ });
405
+ if (status.code >= 300) {
406
+ return jsonValidationError(`Failed to create review: ${status.detail}`);
407
+ }
408
+ const owner = buildOwner(targetDid, baseUrl);
409
+ return jsonCreated({
410
+ id: numericId((_d = reviewRec.id) !== null && _d !== void 0 ? _d : ''),
411
+ node_id: (_e = reviewRec.id) !== null && _e !== void 0 ? _e : '',
412
+ user: owner,
413
+ body: reviewBody,
414
+ state: (_f = VERDICT_MAP[verdict]) !== null && _f !== void 0 ? _f : 'COMMENTED',
415
+ html_url: `${baseUrl}/repos/${targetDid}/${repoName}/pulls/${number}#pullrequestreview-${numericId((_g = reviewRec.id) !== null && _g !== void 0 ? _g : '')}`,
416
+ pull_request_url: `${baseUrl}/repos/${targetDid}/${repoName}/pulls/${number}`,
417
+ submitted_at: toISODate(reviewRec.dateCreated),
418
+ commit_id: '',
419
+ author_association: 'OWNER',
420
+ });
421
+ });
422
+ }
423
+ //# sourceMappingURL=pulls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulls.js","sourceRoot":"","sources":["../../../src/github-shim/pulls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * GitHub API shim — `/repos/:did/:repo/releases` endpoints.
3
+ *
4
+ * Maps DWN release records to GitHub REST API v3 release responses.
5
+ *
6
+ * Endpoints:
7
+ * GET /repos/:did/:repo/releases List releases
8
+ * GET /repos/:did/:repo/releases/tags/:tag Release by tag name
9
+ * POST /repos/:did/:repo/releases Create release
10
+ *
11
+ * @module
12
+ */
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ import { DateSort } from '@enbox/dwn-sdk-js';
23
+ import { buildApiUrl, buildLinkHeader, buildOwner, fromOpt, getRepoRecord, jsonCreated, jsonNotFound, jsonOk, jsonValidationError, numericId, paginate, parsePagination, toISODate, } from './helpers.js';
24
+ // ---------------------------------------------------------------------------
25
+ // Release object builder
26
+ // ---------------------------------------------------------------------------
27
+ function buildReleaseResponse(rec, data, tags, targetDid, repoName, baseUrl) {
28
+ var _a, _b, _c, _d, _e;
29
+ const owner = buildOwner(targetDid, baseUrl);
30
+ const tagName = (_a = tags.tagName) !== null && _a !== void 0 ? _a : '';
31
+ const prerelease = tags.prerelease === true;
32
+ const draft = tags.draft === true;
33
+ const id = numericId((_b = rec.id) !== null && _b !== void 0 ? _b : '');
34
+ return {
35
+ id,
36
+ node_id: (_c = rec.id) !== null && _c !== void 0 ? _c : '',
37
+ url: `${baseUrl}/repos/${targetDid}/${repoName}/releases/${id}`,
38
+ html_url: `${baseUrl}/repos/${targetDid}/${repoName}/releases/tags/${tagName}`,
39
+ assets_url: `${baseUrl}/repos/${targetDid}/${repoName}/releases/${id}/assets`,
40
+ upload_url: `${baseUrl}/repos/${targetDid}/${repoName}/releases/${id}/assets{?name,label}`,
41
+ tarball_url: `${baseUrl}/repos/${targetDid}/${repoName}/tarball/${tagName}`,
42
+ zipball_url: `${baseUrl}/repos/${targetDid}/${repoName}/zipball/${tagName}`,
43
+ tag_name: tagName,
44
+ target_commitish: 'main',
45
+ name: (_d = data.name) !== null && _d !== void 0 ? _d : tagName,
46
+ body: (_e = data.body) !== null && _e !== void 0 ? _e : '',
47
+ draft,
48
+ prerelease,
49
+ created_at: toISODate(rec.dateCreated),
50
+ published_at: toISODate(rec.dateCreated),
51
+ author: owner,
52
+ assets: [],
53
+ };
54
+ }
55
+ // ---------------------------------------------------------------------------
56
+ // GET /repos/:did/:repo/releases
57
+ // ---------------------------------------------------------------------------
58
+ export function handleListReleases(ctx, targetDid, repoName, url) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ var _a;
61
+ const repo = yield getRepoRecord(ctx, targetDid);
62
+ if (!repo) {
63
+ return jsonNotFound(`Repository '${repoName}' not found for DID '${targetDid}'.`);
64
+ }
65
+ const from = fromOpt(ctx, targetDid);
66
+ const baseUrl = buildApiUrl(url);
67
+ const pagination = parsePagination(url);
68
+ const { records } = yield ctx.releases.records.query('repo/release', {
69
+ from,
70
+ filter: { contextId: repo.contextId },
71
+ dateSort: DateSort.CreatedDescending,
72
+ });
73
+ const paged = paginate(records, pagination);
74
+ const items = [];
75
+ for (const rec of paged) {
76
+ const data = yield rec.data.json();
77
+ const tags = (_a = rec.tags) !== null && _a !== void 0 ? _a : {};
78
+ items.push(buildReleaseResponse(rec, data, tags, targetDid, repoName, baseUrl));
79
+ }
80
+ const linkHeader = buildLinkHeader(baseUrl, `/repos/${targetDid}/${repoName}/releases`, pagination.page, pagination.perPage, records.length);
81
+ const extraHeaders = {};
82
+ if (linkHeader) {
83
+ extraHeaders['Link'] = linkHeader;
84
+ }
85
+ return jsonOk(items, extraHeaders);
86
+ });
87
+ }
88
+ // ---------------------------------------------------------------------------
89
+ // GET /repos/:did/:repo/releases/tags/:tag
90
+ // ---------------------------------------------------------------------------
91
+ export function handleGetReleaseByTag(ctx, targetDid, repoName, tag, url) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ var _a;
94
+ const repo = yield getRepoRecord(ctx, targetDid);
95
+ if (!repo) {
96
+ return jsonNotFound(`Repository '${repoName}' not found for DID '${targetDid}'.`);
97
+ }
98
+ const from = fromOpt(ctx, targetDid);
99
+ const baseUrl = buildApiUrl(url);
100
+ const { records } = yield ctx.releases.records.query('repo/release', {
101
+ from,
102
+ filter: { contextId: repo.contextId, tags: { tagName: tag } },
103
+ });
104
+ if (records.length === 0) {
105
+ return jsonNotFound(`Release with tag '${tag}' not found.`);
106
+ }
107
+ const rec = records[0];
108
+ const data = yield rec.data.json();
109
+ const tags = (_a = rec.tags) !== null && _a !== void 0 ? _a : {};
110
+ return jsonOk(buildReleaseResponse(rec, data, tags, targetDid, repoName, baseUrl));
111
+ });
112
+ }
113
+ // ---------------------------------------------------------------------------
114
+ // POST /repos/:did/:repo/releases — create release
115
+ // ---------------------------------------------------------------------------
116
+ export function handleCreateRelease(ctx, targetDid, repoName, reqBody, url) {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ var _a, _b, _c;
119
+ const repo = yield getRepoRecord(ctx, targetDid);
120
+ if (!repo) {
121
+ return jsonNotFound(`Repository '${repoName}' not found for DID '${targetDid}'.`);
122
+ }
123
+ const tagName = reqBody.tag_name;
124
+ if (!tagName) {
125
+ return jsonValidationError('Validation Failed: tag_name is required.');
126
+ }
127
+ const name = (_a = reqBody.name) !== null && _a !== void 0 ? _a : tagName;
128
+ const body = (_b = reqBody.body) !== null && _b !== void 0 ? _b : '';
129
+ const baseUrl = buildApiUrl(url);
130
+ const tags = { tagName };
131
+ if (reqBody.target_commitish) {
132
+ tags.commitSha = reqBody.target_commitish;
133
+ }
134
+ if (reqBody.prerelease === true) {
135
+ tags.prerelease = true;
136
+ }
137
+ if (reqBody.draft === true) {
138
+ tags.draft = true;
139
+ }
140
+ const { status, record } = yield ctx.releases.records.create('repo/release', {
141
+ data: { name, body },
142
+ tags,
143
+ parentContextId: repo.contextId,
144
+ });
145
+ if (status.code >= 300) {
146
+ return jsonValidationError(`Failed to create release: ${status.detail}`);
147
+ }
148
+ const recTags = (_c = record.tags) !== null && _c !== void 0 ? _c : {};
149
+ const data = yield record.data.json();
150
+ const release = buildReleaseResponse(record, data, recTags, targetDid, repoName, baseUrl);
151
+ return jsonCreated(release);
152
+ });
153
+ }
154
+ //# sourceMappingURL=releases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"releases.js","sourceRoot":"","sources":["../../../src/github-shim/releases.ts"],"names":[],"mappings":"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"}