pr-merge-queue 0.0.0-stage → 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +125 -2
  3. package/dist/claim-pr/claim-pr.d.mts +45 -0
  4. package/dist/claim-pr/claim-pr.d.mts.map +1 -0
  5. package/dist/claim-pr/claim-pr.mjs +217 -0
  6. package/dist/claim-pr/claim-pr.mjs.map +1 -0
  7. package/dist/claim-pr/index.d.mts +2 -0
  8. package/dist/claim-pr/index.d.mts.map +1 -0
  9. package/dist/claim-pr/index.mjs +2 -0
  10. package/dist/claim-pr/index.mjs.map +1 -0
  11. package/dist/cmd/claim-pr.d.mts +3 -0
  12. package/dist/cmd/claim-pr.d.mts.map +1 -0
  13. package/dist/cmd/claim-pr.mjs +20 -0
  14. package/dist/cmd/claim-pr.mjs.map +1 -0
  15. package/dist/cmd/open-pr.d.mts +3 -0
  16. package/dist/cmd/open-pr.d.mts.map +1 -0
  17. package/dist/cmd/open-pr.mjs +20 -0
  18. package/dist/cmd/open-pr.mjs.map +1 -0
  19. package/dist/cmd/pr-report.d.mts +3 -0
  20. package/dist/cmd/pr-report.d.mts.map +1 -0
  21. package/dist/cmd/pr-report.mjs +20 -0
  22. package/dist/cmd/pr-report.mjs.map +1 -0
  23. package/dist/cmd/push-fixed-pr.d.mts +3 -0
  24. package/dist/cmd/push-fixed-pr.d.mts.map +1 -0
  25. package/dist/cmd/push-fixed-pr.mjs +20 -0
  26. package/dist/cmd/push-fixed-pr.mjs.map +1 -0
  27. package/dist/cmd/report-unowned-prs.d.mts +3 -0
  28. package/dist/cmd/report-unowned-prs.d.mts.map +1 -0
  29. package/dist/cmd/report-unowned-prs.mjs +20 -0
  30. package/dist/cmd/report-unowned-prs.mjs.map +1 -0
  31. package/dist/cmd/unblock-prs.d.mts +3 -0
  32. package/dist/cmd/unblock-prs.d.mts.map +1 -0
  33. package/dist/cmd/unblock-prs.mjs +19 -0
  34. package/dist/cmd/unblock-prs.mjs.map +1 -0
  35. package/dist/entry-point.d.mts +3 -0
  36. package/dist/entry-point.d.mts.map +1 -0
  37. package/dist/entry-point.mjs +3 -0
  38. package/dist/entry-point.mjs.map +1 -0
  39. package/dist/lib/cli-args.d.mts +27 -0
  40. package/dist/lib/cli-args.d.mts.map +1 -0
  41. package/dist/lib/cli-args.mjs +55 -0
  42. package/dist/lib/cli-args.mjs.map +1 -0
  43. package/dist/lib/github-api.d.mts +153 -0
  44. package/dist/lib/github-api.d.mts.map +1 -0
  45. package/dist/lib/github-api.mjs +291 -0
  46. package/dist/lib/github-api.mjs.map +1 -0
  47. package/dist/lib/index.d.mts +7 -0
  48. package/dist/lib/index.d.mts.map +1 -0
  49. package/dist/lib/index.mjs +7 -0
  50. package/dist/lib/index.mjs.map +1 -0
  51. package/dist/lib/json.d.mts +12 -0
  52. package/dist/lib/json.d.mts.map +1 -0
  53. package/dist/lib/json.mjs +28 -0
  54. package/dist/lib/json.mjs.map +1 -0
  55. package/dist/lib/log.d.mts +10 -0
  56. package/dist/lib/log.d.mts.map +1 -0
  57. package/dist/lib/log.mjs +13 -0
  58. package/dist/lib/log.mjs.map +1 -0
  59. package/dist/lib/shell.d.mts +18 -0
  60. package/dist/lib/shell.d.mts.map +1 -0
  61. package/dist/lib/shell.mjs +42 -0
  62. package/dist/lib/shell.mjs.map +1 -0
  63. package/dist/lib/time.d.mts +17 -0
  64. package/dist/lib/time.d.mts.map +1 -0
  65. package/dist/lib/time.mjs +35 -0
  66. package/dist/lib/time.mjs.map +1 -0
  67. package/dist/open-pr/github.d.mts +72 -0
  68. package/dist/open-pr/github.d.mts.map +1 -0
  69. package/dist/open-pr/github.mjs +249 -0
  70. package/dist/open-pr/github.mjs.map +1 -0
  71. package/dist/open-pr/index.d.mts +6 -0
  72. package/dist/open-pr/index.d.mts.map +1 -0
  73. package/dist/open-pr/index.mjs +6 -0
  74. package/dist/open-pr/index.mjs.map +1 -0
  75. package/dist/open-pr/main.d.mts +36 -0
  76. package/dist/open-pr/main.d.mts.map +1 -0
  77. package/dist/open-pr/main.mjs +204 -0
  78. package/dist/open-pr/main.mjs.map +1 -0
  79. package/dist/open-pr/options.d.mts +20 -0
  80. package/dist/open-pr/options.d.mts.map +1 -0
  81. package/dist/open-pr/options.mjs +66 -0
  82. package/dist/open-pr/options.mjs.map +1 -0
  83. package/dist/open-pr/steps.d.mts +23 -0
  84. package/dist/open-pr/steps.d.mts.map +1 -0
  85. package/dist/open-pr/steps.mjs +38 -0
  86. package/dist/open-pr/steps.mjs.map +1 -0
  87. package/dist/open-pr/types.d.mts +179 -0
  88. package/dist/open-pr/types.d.mts.map +1 -0
  89. package/dist/open-pr/types.mjs +20 -0
  90. package/dist/open-pr/types.mjs.map +1 -0
  91. package/dist/pr-report/github.d.mts +59 -0
  92. package/dist/pr-report/github.d.mts.map +1 -0
  93. package/dist/pr-report/github.mjs +561 -0
  94. package/dist/pr-report/github.mjs.map +1 -0
  95. package/dist/pr-report/index.d.mts +8 -0
  96. package/dist/pr-report/index.d.mts.map +1 -0
  97. package/dist/pr-report/index.mjs +8 -0
  98. package/dist/pr-report/index.mjs.map +1 -0
  99. package/dist/pr-report/linked-issues.d.mts +15 -0
  100. package/dist/pr-report/linked-issues.d.mts.map +1 -0
  101. package/dist/pr-report/linked-issues.mjs +39 -0
  102. package/dist/pr-report/linked-issues.mjs.map +1 -0
  103. package/dist/pr-report/main.d.mts +42 -0
  104. package/dist/pr-report/main.d.mts.map +1 -0
  105. package/dist/pr-report/main.mjs +163 -0
  106. package/dist/pr-report/main.mjs.map +1 -0
  107. package/dist/pr-report/options.d.mts +36 -0
  108. package/dist/pr-report/options.d.mts.map +1 -0
  109. package/dist/pr-report/options.mjs +90 -0
  110. package/dist/pr-report/options.mjs.map +1 -0
  111. package/dist/pr-report/queue.d.mts +28 -0
  112. package/dist/pr-report/queue.d.mts.map +1 -0
  113. package/dist/pr-report/queue.mjs +74 -0
  114. package/dist/pr-report/queue.mjs.map +1 -0
  115. package/dist/pr-report/render.d.mts +14 -0
  116. package/dist/pr-report/render.d.mts.map +1 -0
  117. package/dist/pr-report/render.mjs +318 -0
  118. package/dist/pr-report/render.mjs.map +1 -0
  119. package/dist/pr-report/repo-settings.d.mts +12 -0
  120. package/dist/pr-report/repo-settings.d.mts.map +1 -0
  121. package/dist/pr-report/repo-settings.mjs +22 -0
  122. package/dist/pr-report/repo-settings.mjs.map +1 -0
  123. package/dist/push-fixed-pr/index.d.mts +2 -0
  124. package/dist/push-fixed-pr/index.d.mts.map +1 -0
  125. package/dist/push-fixed-pr/index.mjs +2 -0
  126. package/dist/push-fixed-pr/index.mjs.map +1 -0
  127. package/dist/push-fixed-pr/push-fixed-pr.d.mts +54 -0
  128. package/dist/push-fixed-pr/push-fixed-pr.d.mts.map +1 -0
  129. package/dist/push-fixed-pr/push-fixed-pr.mjs +172 -0
  130. package/dist/push-fixed-pr/push-fixed-pr.mjs.map +1 -0
  131. package/dist/report-unowned-prs/index.d.mts +2 -0
  132. package/dist/report-unowned-prs/index.d.mts.map +1 -0
  133. package/dist/report-unowned-prs/index.mjs +2 -0
  134. package/dist/report-unowned-prs/index.mjs.map +1 -0
  135. package/dist/report-unowned-prs/report-unowned-prs.d.mts +49 -0
  136. package/dist/report-unowned-prs/report-unowned-prs.d.mts.map +1 -0
  137. package/dist/report-unowned-prs/report-unowned-prs.mjs +127 -0
  138. package/dist/report-unowned-prs/report-unowned-prs.mjs.map +1 -0
  139. package/dist/tsconfig.json +1 -0
  140. package/dist/unblock-prs/auto-fix.d.mts +45 -0
  141. package/dist/unblock-prs/auto-fix.d.mts.map +1 -0
  142. package/dist/unblock-prs/auto-fix.mjs +207 -0
  143. package/dist/unblock-prs/auto-fix.mjs.map +1 -0
  144. package/dist/unblock-prs/checks.d.mts +307 -0
  145. package/dist/unblock-prs/checks.d.mts.map +1 -0
  146. package/dist/unblock-prs/checks.mjs +372 -0
  147. package/dist/unblock-prs/checks.mjs.map +1 -0
  148. package/dist/unblock-prs/claims.d.mts +21 -0
  149. package/dist/unblock-prs/claims.d.mts.map +1 -0
  150. package/dist/unblock-prs/claims.mjs +23 -0
  151. package/dist/unblock-prs/claims.mjs.map +1 -0
  152. package/dist/unblock-prs/config.d.mts +487 -0
  153. package/dist/unblock-prs/config.d.mts.map +1 -0
  154. package/dist/unblock-prs/config.mjs +119 -0
  155. package/dist/unblock-prs/config.mjs.map +1 -0
  156. package/dist/unblock-prs/constants.d.mts +28 -0
  157. package/dist/unblock-prs/constants.d.mts.map +1 -0
  158. package/dist/unblock-prs/constants.mjs +28 -0
  159. package/dist/unblock-prs/constants.mjs.map +1 -0
  160. package/dist/unblock-prs/demotions.d.mts +42 -0
  161. package/dist/unblock-prs/demotions.d.mts.map +1 -0
  162. package/dist/unblock-prs/demotions.mjs +50 -0
  163. package/dist/unblock-prs/demotions.mjs.map +1 -0
  164. package/dist/unblock-prs/github.d.mts +739 -0
  165. package/dist/unblock-prs/github.d.mts.map +1 -0
  166. package/dist/unblock-prs/github.mjs +626 -0
  167. package/dist/unblock-prs/github.mjs.map +1 -0
  168. package/dist/unblock-prs/index.d.mts +25 -0
  169. package/dist/unblock-prs/index.d.mts.map +1 -0
  170. package/dist/unblock-prs/index.mjs +25 -0
  171. package/dist/unblock-prs/index.mjs.map +1 -0
  172. package/dist/unblock-prs/labels.d.mts +49 -0
  173. package/dist/unblock-prs/labels.d.mts.map +1 -0
  174. package/dist/unblock-prs/labels.mjs +49 -0
  175. package/dist/unblock-prs/labels.mjs.map +1 -0
  176. package/dist/unblock-prs/main.d.mts +179 -0
  177. package/dist/unblock-prs/main.d.mts.map +1 -0
  178. package/dist/unblock-prs/main.mjs +640 -0
  179. package/dist/unblock-prs/main.mjs.map +1 -0
  180. package/dist/unblock-prs/merge-after.d.mts +46 -0
  181. package/dist/unblock-prs/merge-after.d.mts.map +1 -0
  182. package/dist/unblock-prs/merge-after.mjs +65 -0
  183. package/dist/unblock-prs/merge-after.mjs.map +1 -0
  184. package/dist/unblock-prs/options.d.mts +35 -0
  185. package/dist/unblock-prs/options.d.mts.map +1 -0
  186. package/dist/unblock-prs/options.mjs +88 -0
  187. package/dist/unblock-prs/options.mjs.map +1 -0
  188. package/dist/unblock-prs/owner.d.mts +32 -0
  189. package/dist/unblock-prs/owner.d.mts.map +1 -0
  190. package/dist/unblock-prs/owner.mjs +63 -0
  191. package/dist/unblock-prs/owner.mjs.map +1 -0
  192. package/dist/unblock-prs/quiet.d.mts +21 -0
  193. package/dist/unblock-prs/quiet.d.mts.map +1 -0
  194. package/dist/unblock-prs/quiet.mjs +42 -0
  195. package/dist/unblock-prs/quiet.mjs.map +1 -0
  196. package/dist/unblock-prs/rebase.d.mts +120 -0
  197. package/dist/unblock-prs/rebase.d.mts.map +1 -0
  198. package/dist/unblock-prs/rebase.mjs +576 -0
  199. package/dist/unblock-prs/rebase.mjs.map +1 -0
  200. package/dist/unblock-prs/release.d.mts +62 -0
  201. package/dist/unblock-prs/release.d.mts.map +1 -0
  202. package/dist/unblock-prs/release.mjs +94 -0
  203. package/dist/unblock-prs/release.mjs.map +1 -0
  204. package/dist/unblock-prs/set-aside-comment.d.mts +20 -0
  205. package/dist/unblock-prs/set-aside-comment.d.mts.map +1 -0
  206. package/dist/unblock-prs/set-aside-comment.mjs +93 -0
  207. package/dist/unblock-prs/set-aside-comment.mjs.map +1 -0
  208. package/dist/unblock-prs/set-aside-detail.d.mts +41 -0
  209. package/dist/unblock-prs/set-aside-detail.d.mts.map +1 -0
  210. package/dist/unblock-prs/set-aside-detail.mjs +56 -0
  211. package/dist/unblock-prs/set-aside-detail.mjs.map +1 -0
  212. package/dist/unblock-prs/skips.d.mts +85 -0
  213. package/dist/unblock-prs/skips.d.mts.map +1 -0
  214. package/dist/unblock-prs/skips.mjs +141 -0
  215. package/dist/unblock-prs/skips.mjs.map +1 -0
  216. package/dist/unblock-prs/stack.d.mts +98 -0
  217. package/dist/unblock-prs/stack.d.mts.map +1 -0
  218. package/dist/unblock-prs/stack.mjs +141 -0
  219. package/dist/unblock-prs/stack.mjs.map +1 -0
  220. package/dist/unblock-prs/triage.d.mts +28 -0
  221. package/dist/unblock-prs/triage.d.mts.map +1 -0
  222. package/dist/unblock-prs/triage.mjs +396 -0
  223. package/dist/unblock-prs/triage.mjs.map +1 -0
  224. package/dist/unblock-prs/types.d.mts +793 -0
  225. package/dist/unblock-prs/types.d.mts.map +1 -0
  226. package/dist/unblock-prs/types.mjs +26 -0
  227. package/dist/unblock-prs/types.mjs.map +1 -0
  228. package/dist/unblock-prs/util.d.mts +23 -0
  229. package/dist/unblock-prs/util.d.mts.map +1 -0
  230. package/dist/unblock-prs/util.mjs +60 -0
  231. package/dist/unblock-prs/util.mjs.map +1 -0
  232. package/dist/unblock-prs/version-pr.d.mts +57 -0
  233. package/dist/unblock-prs/version-pr.d.mts.map +1 -0
  234. package/dist/unblock-prs/version-pr.mjs +79 -0
  235. package/dist/unblock-prs/version-pr.mjs.map +1 -0
  236. package/dist/unblock-prs/watch.d.mts +17 -0
  237. package/dist/unblock-prs/watch.d.mts.map +1 -0
  238. package/dist/unblock-prs/watch.mjs +128 -0
  239. package/dist/unblock-prs/watch.mjs.map +1 -0
  240. package/package.json +118 -3
  241. package/src/claim-pr/claim-pr.mts +380 -0
  242. package/src/claim-pr/claim-pr.test.mts +176 -0
  243. package/src/claim-pr/index.mts +1 -0
  244. package/src/cmd/claim-pr.mts +32 -0
  245. package/src/cmd/open-pr.mts +28 -0
  246. package/src/cmd/pr-report.mts +28 -0
  247. package/src/cmd/push-fixed-pr.mts +36 -0
  248. package/src/cmd/report-unowned-prs.mts +37 -0
  249. package/src/cmd/unblock-prs.mts +24 -0
  250. package/src/entry-point.mts +3 -0
  251. package/src/lib/cli-args.mts +86 -0
  252. package/src/lib/cli-args.test.mts +92 -0
  253. package/src/lib/github-api.mts +463 -0
  254. package/src/lib/github-api.test.mts +40 -0
  255. package/src/lib/index.mts +6 -0
  256. package/src/lib/json.mts +43 -0
  257. package/src/lib/json.test.mts +34 -0
  258. package/src/lib/log.mts +19 -0
  259. package/src/lib/log.test.mts +45 -0
  260. package/src/lib/shell.mts +52 -0
  261. package/src/lib/time.mts +49 -0
  262. package/src/open-pr/README.md +237 -0
  263. package/src/open-pr/github.mts +444 -0
  264. package/src/open-pr/index.mts +5 -0
  265. package/src/open-pr/main.mts +327 -0
  266. package/src/open-pr/options.mts +101 -0
  267. package/src/open-pr/options.test.mts +67 -0
  268. package/src/open-pr/steps.mts +57 -0
  269. package/src/open-pr/steps.test.mts +59 -0
  270. package/src/open-pr/types.mts +42 -0
  271. package/src/pr-report/README.md +244 -0
  272. package/src/pr-report/github.mts +911 -0
  273. package/src/pr-report/index.mts +7 -0
  274. package/src/pr-report/linked-issues.mts +51 -0
  275. package/src/pr-report/linked-issues.test.mts +65 -0
  276. package/src/pr-report/main.mts +257 -0
  277. package/src/pr-report/options.mts +140 -0
  278. package/src/pr-report/queue.mts +125 -0
  279. package/src/pr-report/render.mts +428 -0
  280. package/src/pr-report/render.test.mts +379 -0
  281. package/src/pr-report/repo-settings.mts +34 -0
  282. package/src/push-fixed-pr/index.mts +1 -0
  283. package/src/push-fixed-pr/push-fixed-pr.mts +276 -0
  284. package/src/push-fixed-pr/push-fixed-pr.test.mts +228 -0
  285. package/src/report-unowned-prs/index.mts +1 -0
  286. package/src/report-unowned-prs/report-unowned-prs.mts +190 -0
  287. package/src/report-unowned-prs/report-unowned-prs.test.mts +87 -0
  288. package/src/unblock-prs/README.md +1616 -0
  289. package/src/unblock-prs/auto-fix.mts +334 -0
  290. package/src/unblock-prs/auto-fix.test.mts +159 -0
  291. package/src/unblock-prs/checks.mts +538 -0
  292. package/src/unblock-prs/checks.test.mts +507 -0
  293. package/src/unblock-prs/claims.mts +33 -0
  294. package/src/unblock-prs/claims.test.mts +64 -0
  295. package/src/unblock-prs/config.mts +187 -0
  296. package/src/unblock-prs/config.schema.json +71 -0
  297. package/src/unblock-prs/config.test.mts +139 -0
  298. package/src/unblock-prs/constants.mts +33 -0
  299. package/src/unblock-prs/demotions.mts +73 -0
  300. package/src/unblock-prs/demotions.test.mts +100 -0
  301. package/src/unblock-prs/github.mts +1042 -0
  302. package/src/unblock-prs/github.test.mts +84 -0
  303. package/src/unblock-prs/index.mts +24 -0
  304. package/src/unblock-prs/labels.mts +70 -0
  305. package/src/unblock-prs/main.mts +1051 -0
  306. package/src/unblock-prs/merge-after.mts +117 -0
  307. package/src/unblock-prs/merge-after.test.mts +120 -0
  308. package/src/unblock-prs/options.mts +157 -0
  309. package/src/unblock-prs/owner.mts +91 -0
  310. package/src/unblock-prs/owner.test.mts +114 -0
  311. package/src/unblock-prs/quiet.mts +62 -0
  312. package/src/unblock-prs/quiet.test.mts +175 -0
  313. package/src/unblock-prs/rebase.mts +962 -0
  314. package/src/unblock-prs/release.mts +149 -0
  315. package/src/unblock-prs/release.test.mts +209 -0
  316. package/src/unblock-prs/set-aside-comment.mts +143 -0
  317. package/src/unblock-prs/set-aside-comment.test.mts +148 -0
  318. package/src/unblock-prs/set-aside-detail.mts +82 -0
  319. package/src/unblock-prs/set-aside-detail.test.mts +131 -0
  320. package/src/unblock-prs/skips.mts +215 -0
  321. package/src/unblock-prs/skips.test.mts +280 -0
  322. package/src/unblock-prs/stack.mts +220 -0
  323. package/src/unblock-prs/stack.test.mts +449 -0
  324. package/src/unblock-prs/triage.mts +669 -0
  325. package/src/unblock-prs/triage.test.mts +100 -0
  326. package/src/unblock-prs/types.mts +358 -0
  327. package/src/unblock-prs/util.mts +78 -0
  328. package/src/unblock-prs/util.test.mts +26 -0
  329. package/src/unblock-prs/version-pr.mts +112 -0
  330. package/src/unblock-prs/version-pr.test.mts +78 -0
  331. package/src/unblock-prs/watch.mts +219 -0
@@ -0,0 +1,561 @@
1
+
2
+ import { anyRunInProgress, closingIssuesIn, epochMsOf, parseMergeAfter, readQueueComments, referenceStatusOf, reportedContexts, requirementsOfRules, waitsFor, } from 'pr-report-core';
3
+ import { Arr, Result } from 'ts-data-forge';
4
+ import * as t from 'ts-fortress';
5
+ import { currentEpochMs, parseJson, send } from '../lib/index.mjs';
6
+ import { parseClosingIssueRefs } from './linked-issues.mjs';
7
+
8
+
9
+
10
+
11
+
12
+ const PAGE_SIZE = 100;
13
+
14
+
15
+
16
+
17
+
18
+
19
+ const MAX_CHECK_RUN_PAGES = 10;
20
+ const PullRequestSchema = t.record({
21
+ number: t.number(),
22
+ title: t.string(),
23
+ body: t.union([t.string(), t.nullType]),
24
+ draft: t.boolean(),
25
+ html_url: t.string(),
26
+ updated_at: t.string(),
27
+ user: t.union([t.record({ login: t.string() }), t.nullType]),
28
+
29
+
30
+ labels: t.array(t.record({
31
+ name: t.string(),
32
+ color: t.string(),
33
+ description: t.union([t.string(), t.nullType]),
34
+ })),
35
+ merged_at: t.union([t.string(), t.nullType]),
36
+
37
+
38
+
39
+ auto_merge: t.union([t.record({}), t.nullType]),
40
+
41
+
42
+ head: t.record({
43
+ ref: t.string(),
44
+ sha: t.string(),
45
+ repo: t.union([t.record({ full_name: t.string() }), t.nullType]),
46
+ }),
47
+ base: t.record({ ref: t.string() }),
48
+ });
49
+ const PullRequestListSchema = t.array(PullRequestSchema);
50
+ const ComparisonSchema = t.record({
51
+ ahead_by: t.number(),
52
+ behind_by: t.number(),
53
+
54
+
55
+
56
+
57
+
58
+
59
+ commits: t.array(t.record({
60
+ commit: t.record({ committer: t.record({ date: t.string() }) }),
61
+ })),
62
+ });
63
+ const CheckRunsSchema = t.record({
64
+ total_count: t.number(),
65
+ check_runs: t.array(t.record({
66
+
67
+
68
+ id: t.number(),
69
+ check_suite: t.record({ id: t.number() }),
70
+ name: t.string(),
71
+ status: t.string(),
72
+ conclusion: t.union([t.string(), t.nullType]),
73
+ })),
74
+ });
75
+
76
+
77
+
78
+
79
+ const DependenciesSummarySchema = t.optional(t.record({ total_blocked_by: t.number() }));
80
+
81
+
82
+
83
+
84
+ const IssueListSchema = t.array(t.record({
85
+ number: t.number(),
86
+ title: t.string(),
87
+
88
+ body: t.union([t.string(), t.nullType]),
89
+ issue_dependencies_summary: DependenciesSummarySchema,
90
+ html_url: t.string(),
91
+ created_at: t.string(),
92
+ updated_at: t.string(),
93
+ comments: t.number(),
94
+ user: t.union([t.record({ login: t.string() }), t.nullType]),
95
+ labels: t.array(t.record({
96
+ name: t.string(),
97
+ color: t.string(),
98
+ description: t.union([t.string(), t.nullType]),
99
+ })),
100
+ pull_request: t.optional(t.record({})),
101
+ }));
102
+ const IssueBodySchema = t.record({
103
+ state: t.string(),
104
+ body: t.union([t.string(), t.nullType]),
105
+ pull_request: t.optional(t.record({})),
106
+ issue_dependencies_summary: DependenciesSummarySchema,
107
+ });
108
+
109
+ const BlockedByListSchema = t.array(t.record({ number: t.number(), repository_url: t.string() }));
110
+
111
+ const ReferenceSchema = t.record({
112
+ state: t.string(),
113
+ state_reason: t.optional(t.union([t.string(), t.nullType])),
114
+ pull_request: t.optional(t.record({ merged_at: t.union([t.string(), t.nullType]) })),
115
+ });
116
+ const WorkflowRunsSchema = t.record({
117
+ total_count: t.number(),
118
+ workflow_runs: t.array(t.record({
119
+ check_suite_id: t.union([t.number(), t.nullType]),
120
+ workflow_id: t.number(),
121
+ status: t.union([t.string(), t.nullType]),
122
+ })),
123
+ });
124
+ const CombinedStatusSchema = t.record({
125
+ statuses: t.array(t.record({ context: t.string(), state: t.string() })),
126
+ });
127
+ const CommentListSchema = t.array(t.record({
128
+ id: t.number(),
129
+ body: t.union([t.string(), t.nullType]),
130
+ user: t.union([t.record({ login: t.string() }), t.nullType]),
131
+ }));
132
+ const ClosingIssuesSchema = t.record({
133
+ data: t.record({
134
+ repository: t.record({
135
+ pullRequests: t.record({
136
+ nodes: t.array(t.record({
137
+ number: t.number(),
138
+
139
+
140
+
141
+ closingIssuesReferences: t.record({
142
+ nodes: t.array(t.union([
143
+ t.record({
144
+ number: t.number(),
145
+ title: t.string(),
146
+ url: t.string(),
147
+ state: t.string(),
148
+ repository: t.record({ nameWithOwner: t.string() }),
149
+ }),
150
+ t.nullType,
151
+ ])),
152
+ }),
153
+ })),
154
+ }),
155
+ }),
156
+ }),
157
+ });
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+ export const createClient = (token, baseUrl = 'https://api.github.com') => {
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+ const mut_state = { rateLimited: false };
177
+
178
+
179
+
180
+
181
+ const request = async (route, body) => {
182
+ const response = await send({
183
+ url: `${baseUrl}${route}`,
184
+ method: body === undefined ? 'GET' : 'POST',
185
+ token,
186
+ accept: 'application/vnd.github+json',
187
+ body,
188
+ });
189
+ if (Result.isOk(response)) {
190
+ return response;
191
+ }
192
+ if (response.value.rateLimited) {
193
+ mut_state.rateLimited = true;
194
+ }
195
+ const refused = `${route} answered ${response.value.message}`;
196
+ return Result.err(response.value.rateLimited
197
+ ? `${refused}\nThe rate limit is spent. Set GH_TOKEN or GITHUB_TOKEN to raise it from 60 requests an hour to 5000.`
198
+ : refused);
199
+ };
200
+ const getJson = async (route, schema) => {
201
+ const text = await request(route);
202
+ return Result.isErr(text) ? text : parseJson(text.value, schema, route);
203
+ };
204
+ const comparison = async (repo, base, headSha) => {
205
+ const compared = await getJson(
206
+
207
+
208
+ `/repos/${repo.owner}/${repo.name}/compare/${base.replaceAll('/', '%2F')}...${headSha}`, ComparisonSchema);
209
+ if (Result.isErr(compared)) {
210
+ return { comparison: undefined, headCommittedAt: undefined };
211
+ }
212
+ const { ahead_by, behind_by, commits } = compared.value;
213
+ return {
214
+ comparison: { aheadBy: ahead_by, behindBy: behind_by },
215
+
216
+
217
+
218
+ headCommittedAt: commits.length === ahead_by
219
+ ? commits.at(-1)?.commit.committer.date
220
+ : undefined,
221
+ };
222
+ };
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+ const checkRuns = async (prefix, rounds) => {
234
+ const mut_collected = [];
235
+ for (const page of Arr.seq(MAX_CHECK_RUN_PAGES)) {
236
+ const answered = await getJson(`${prefix}/check-runs?per_page=${PAGE_SIZE}&page=${page + 1}`, CheckRunsSchema);
237
+ if (Result.isErr(answered)) {
238
+ return answered;
239
+ }
240
+ for (const run of answered.value.check_runs) {
241
+ mut_collected.push({
242
+ id: run.id,
243
+ checkSuiteId: run.check_suite.id,
244
+ name: run.name,
245
+ status: run.status,
246
+ conclusion: run.conclusion ?? undefined,
247
+ round: rounds.get(run.check_suite.id),
248
+ });
249
+ }
250
+ if (Arr.isEmpty(answered.value.check_runs) ||
251
+ mut_collected.length >= answered.value.total_count) {
252
+ return Result.ok(mut_collected);
253
+ }
254
+ }
255
+ return Result.err(`${prefix}/check-runs has more than ${PAGE_SIZE * MAX_CHECK_RUN_PAGES} runs, which is more than this reads.`);
256
+ };
257
+
258
+
259
+
260
+
261
+
262
+
263
+ const workflowRounds = async (repo, sha) => {
264
+ const mut_rounds = new Map();
265
+ for (const page of Arr.seq(MAX_CHECK_RUN_PAGES)) {
266
+ const answered = await getJson(`/repos/${repo.owner}/${repo.name}/actions/runs?head_sha=${sha}&per_page=${PAGE_SIZE}&page=${page + 1}`, WorkflowRunsSchema);
267
+ if (Result.isErr(answered)) {
268
+ return new Map();
269
+ }
270
+ for (const run of answered.value.workflow_runs) {
271
+ if (run.check_suite_id !== null) {
272
+ mut_rounds.set(run.check_suite_id, {
273
+ workflowId: run.workflow_id,
274
+ completed: run.status === 'completed',
275
+ });
276
+ }
277
+ }
278
+ if (Arr.isEmpty(answered.value.workflow_runs) ||
279
+ (page + 1) * PAGE_SIZE >= answered.value.total_count) {
280
+ return mut_rounds;
281
+ }
282
+ }
283
+ return new Map();
284
+ };
285
+
286
+
287
+
288
+
289
+
290
+
291
+ const contextStates = async (repo, sha) => {
292
+ const prefix = `/repos/${repo.owner}/${repo.name}/commits/${sha}`;
293
+ const runs = await checkRuns(prefix, await workflowRounds(repo, sha));
294
+ const statuses = await getJson(`${prefix}/status?per_page=${PAGE_SIZE}`, CombinedStatusSchema);
295
+ const runList = Result.isErr(runs) ? [] : runs.value;
296
+ return {
297
+ reported: reportedContexts(runList, Result.isErr(statuses) ? [] : statuses.value.statuses),
298
+ running: anyRunInProgress(runList),
299
+ };
300
+ };
301
+
302
+
303
+
304
+
305
+
306
+
307
+ const blockedByOf = async (repo, issue) => {
308
+ if ((issue.issue_dependencies_summary?.total_blocked_by ?? 0) === 0) {
309
+ return [];
310
+ }
311
+ const listed = await getJson(`/repos/${repo.owner}/${repo.name}/issues/${issue.number}/dependencies/blocked_by?per_page=${PAGE_SIZE}`, BlockedByListSchema);
312
+ const own = `https://api.github.com/repos/${repo.owner}/${repo.name}`.toLowerCase();
313
+ return Result.isErr(listed)
314
+ ? []
315
+ : listed.value
316
+ .filter(({ repository_url: url }) => url.toLowerCase() === own)
317
+ .map(({ number }) => number);
318
+ };
319
+
320
+
321
+
322
+
323
+
324
+
325
+ const closingIssues = async (repo) => {
326
+ const query = [
327
+ 'query($owner: String!, $name: String!) {',
328
+ ' repository(owner: $owner, name: $name) {',
329
+ ` pullRequests(states: OPEN, first: ${PAGE_SIZE}) {`,
330
+ ' nodes {',
331
+ ' number',
332
+ ' closingIssuesReferences(first: 10) {',
333
+ ' nodes { number title url state repository { nameWithOwner } }',
334
+ ' }',
335
+ ' }',
336
+ ' }',
337
+ ' }',
338
+ '}',
339
+ ].join('\n');
340
+ const answered = await request('/graphql', JSON.stringify({
341
+ query,
342
+ variables: { owner: repo.owner, name: repo.name },
343
+ }));
344
+ if (Result.isErr(answered)) {
345
+ return new Map();
346
+ }
347
+ const parsed = parseJson(answered.value, ClosingIssuesSchema, '/graphql');
348
+ if (Result.isErr(parsed)) {
349
+ return new Map();
350
+ }
351
+ return new Map(parsed.value.data.repository.pullRequests.nodes.map((node) => [
352
+ node.number,
353
+ closingIssuesIn(repo, node.closingIssuesReferences.nodes),
354
+ ]));
355
+ };
356
+ return {
357
+ authenticated: token !== undefined,
358
+ defaultBranch: async (repo) => {
359
+ const answered = await getJson(`/repos/${repo.owner}/${repo.name}`, t.record({ default_branch: t.string() }));
360
+ return Result.isErr(answered)
361
+ ? answered
362
+ : Result.ok(answered.value.default_branch);
363
+ },
364
+ requiredContexts: async (repo, branch) => {
365
+
366
+
367
+
368
+ const segment = encodeURIComponent(branch);
369
+ const answered = await getJson(`/repos/${repo.owner}/${repo.name}/rules/branches/${segment}`, t.array(t.unknown()));
370
+ return Result.map(answered, (rules) => requirementsOfRules(rules).requiredContexts);
371
+ },
372
+ queueComments: async (repo, defaultBranch, pulls) => {
373
+
374
+ const viewer = await getJson('/user', t.record({ login: t.string() }));
375
+ const tip = await getJson(`/repos/${repo.owner}/${repo.name}/git/ref/heads/${defaultBranch}`, t.record({ object: t.record({ sha: t.string() }) }));
376
+ if (Result.isErr(viewer) || Result.isErr(tip)) {
377
+ return new Map();
378
+ }
379
+ const nowEpochMs = currentEpochMs();
380
+ const mut_read = new Map();
381
+ for (const pr of pulls) {
382
+
383
+
384
+ const listed = await getJson(`/repos/${repo.owner}/${repo.name}/issues/${pr.number}/comments?per_page=${PAGE_SIZE}`, CommentListSchema);
385
+ if (Result.isOk(listed)) {
386
+ mut_read.set(pr.number, readQueueComments(Arr.generate(function* () {
387
+ for (const { id, body, user } of listed.value) {
388
+ if (user?.login === viewer.value.login) {
389
+ yield { id, body: body ?? '' };
390
+ }
391
+ }
392
+ }), {
393
+ headSha: pr.headSha,
394
+ baseTip: tip.value.object.sha,
395
+ nowEpochMs,
396
+ }));
397
+ }
398
+ }
399
+ return mut_read;
400
+ },
401
+ issues: async (repo, limit) => {
402
+
403
+
404
+
405
+
406
+ const listed = await getJson(`/repos/${repo.owner}/${repo.name}/issues?state=open&per_page=${PAGE_SIZE}&sort=updated&direction=desc`, IssueListSchema);
407
+ if (Result.isErr(listed)) {
408
+ return listed;
409
+ }
410
+ const mut_issues = [];
411
+ for (const issue of listed.value
412
+ .filter((each) => each.pull_request === undefined)
413
+ .slice(0, limit)) {
414
+ const blockedBy = await blockedByOf(repo, issue);
415
+ mut_issues.push({
416
+ number: issue.number,
417
+ title: issue.title,
418
+ author: issue.user?.login ?? 'unknown',
419
+ url: issue.html_url,
420
+ labels: labelsOf(issue.labels),
421
+ createdAt: issue.created_at,
422
+ updatedAt: issue.updated_at,
423
+ comments: issue.comments,
424
+ startAfter: waitsFor(issue.body ?? '', blockedBy),
425
+ misplacedMergeAfter: parseMergeAfter(issue.body ?? ''),
426
+ });
427
+ }
428
+ return Result.ok(mut_issues);
429
+ },
430
+ issueBodies: async (repo, numbers) => {
431
+ const mut_read = new Map();
432
+ for (const number of numbers) {
433
+ const read = await getJson(`/repos/${repo.owner}/${repo.name}/issues/${number}`, IssueBodySchema);
434
+
435
+ if (Result.isOk(read) && read.value.pull_request === undefined) {
436
+ mut_read.set(number, {
437
+ open: read.value.state === 'open',
438
+ startAfter: waitsFor(read.value.body ?? '', await blockedByOf(repo, { number, ...read.value })),
439
+ });
440
+ }
441
+ }
442
+ return mut_read;
443
+ },
444
+ references: async (repo, numbers) => {
445
+ const mut_read = new Map();
446
+ for (const number of numbers) {
447
+ const read = await getJson(`/repos/${repo.owner}/${repo.name}/issues/${number}`, ReferenceSchema);
448
+ if (Result.isErr(read)) {
449
+ continue;
450
+ }
451
+ const { state, state_reason: stateReason, pull_request: pull, } = read.value;
452
+ mut_read.set(number, referenceStatusOf(pull === undefined
453
+ ? { kind: 'issue', state, stateReason: stateReason ?? undefined }
454
+ : {
455
+ kind: 'pull-request',
456
+ state,
457
+ merged: pull.merged_at !== null,
458
+ }));
459
+ }
460
+ return mut_read;
461
+ },
462
+ merged: async (repo, withinDays, limit) => {
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+ const listed = await getJson(`/repos/${repo.owner}/${repo.name}/pulls?state=closed&per_page=${PAGE_SIZE}&sort=updated&direction=desc`, PullRequestListSchema);
471
+ if (Result.isErr(listed)) {
472
+ return listed;
473
+ }
474
+ const cutoff = currentEpochMs() - withinDays * 24 * 60 * 60 * 1000;
475
+ const within = listed.value.filter((pr) => {
476
+ if (pr.merged_at === null) {
477
+ return false;
478
+ }
479
+ const at = epochMsOf(pr.merged_at);
480
+ return at !== undefined && at >= cutoff;
481
+ });
482
+ return Result.ok(within
483
+ .map((pr) => ({
484
+ number: pr.number,
485
+ title: pr.title,
486
+ author: pr.user?.login ?? 'unknown',
487
+ url: pr.html_url,
488
+ headRef: pr.head.ref,
489
+ baseRef: pr.base.ref,
490
+ mergedAt: pr.merged_at ?? '',
491
+ labels: labelsOf(pr.labels),
492
+ linkedIssues: parseClosingIssueRefs(pr.body ?? '', repo).map((number) => ({
493
+ number,
494
+ title: '',
495
+ url: `https://github.com/${repo.owner}/${repo.name}/issues/${number}`,
496
+ state: 'unknown',
497
+ })),
498
+ }))
499
+ .toSorted((a, b) => b.mergedAt.localeCompare(a.mergedAt))
500
+ .slice(0, limit));
501
+ },
502
+ facts: async (repo) => {
503
+ const listed = await getJson(`/repos/${repo.owner}/${repo.name}/pulls?state=open&per_page=${PAGE_SIZE}&sort=created&direction=asc`, PullRequestListSchema);
504
+ if (Result.isErr(listed)) {
505
+ return listed;
506
+ }
507
+ if (Arr.isFixedLengthArray(PAGE_SIZE, listed.value)) {
508
+ return Result.err(`There are at least ${PAGE_SIZE} open pull requests; this reads one page and would report a part of them as the whole.`);
509
+ }
510
+ const linked = token === undefined
511
+ ? new Map()
512
+ : await closingIssues(repo);
513
+ const mut_facts = [];
514
+ for (const pr of listed.value) {
515
+ const body = pr.body ?? '';
516
+ const compared = await comparison(repo, pr.base.ref, pr.head.sha);
517
+ const checks = await contextStates(repo, pr.head.sha);
518
+ mut_facts.push({
519
+ number: pr.number,
520
+ title: pr.title,
521
+ body,
522
+ author: pr.user?.login ?? 'unknown',
523
+ isDraft: pr.draft,
524
+ labels: labelsOf(pr.labels),
525
+ autoMerge: pr.auto_merge !== null,
526
+ headRef: pr.head.ref,
527
+ headSha: pr.head.sha,
528
+ baseRef: pr.base.ref,
529
+ fromFork: pr.head.repo?.full_name !== `${repo.owner}/${repo.name}`,
530
+ url: pr.html_url,
531
+ updatedAt: pr.updated_at,
532
+ headCommittedAt: compared.headCommittedAt,
533
+ comparison: compared.comparison,
534
+ reported: checks.reported,
535
+ checksRunning: checks.running,
536
+ linkedIssues: linked.get(pr.number) ??
537
+ parseClosingIssueRefs(body, repo).map((number) => ({
538
+ number,
539
+ title: '',
540
+ url: `https://github.com/${repo.owner}/${repo.name}/issues/${number}`,
541
+ state: 'unknown',
542
+ })),
543
+ });
544
+ }
545
+ return mut_state.rateLimited
546
+ ? Result.err('The GitHub rate limit was spent part way through, so this report would have been missing commit counts and check verdicts without saying which.\nSet GH_TOKEN or GITHUB_TOKEN to raise it from 60 requests an hour to 5000.')
547
+ : Result.ok(mut_facts);
548
+ },
549
+ };
550
+ };
551
+
552
+
553
+
554
+
555
+
556
+ const labelsOf = (labels) => labels.map(({ name, color, description }) => ({
557
+ name,
558
+ color,
559
+ description: description ?? '',
560
+ }));
561
+ //# sourceMappingURL=github.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.mjs","sourceRoot":"","sources":["../../src/pr-report/github.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export * from './github.mjs';
2
+ export * from './linked-issues.mjs';
3
+ export * from './main.mjs';
4
+ export * from './options.mjs';
5
+ export * from './queue.mjs';
6
+ export * from './render.mjs';
7
+ export * from './repo-settings.mjs';
8
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/pr-report/index.mts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './github.mjs';
2
+ export * from './linked-issues.mjs';
3
+ export * from './main.mjs';
4
+ export * from './options.mjs';
5
+ export * from './queue.mjs';
6
+ export * from './render.mjs';
7
+ export * from './repo-settings.mjs';
8
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/pr-report/index.mts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** The issues a pull request body says it closes. */
2
+ import { type RepoRef } from 'pr-report-core';
3
+ /**
4
+ * The issue numbers a body declares this pull request closes, in the order
5
+ * they first appear.
6
+ *
7
+ * Read from the body rather than from GitHub's own list because that list is
8
+ * only in the GraphQL API, which needs a token. What this misses is a link
9
+ * made by hand in the sidebar, and a reference to another repository's issue
10
+ * — deliberately, since neither can be rendered as a local `#N`.
11
+ *
12
+ * Fenced code is skipped for the same reason `Merge-After:` skips it.
13
+ */
14
+ export declare const parseClosingIssueRefs: (body: string, repo: RepoRef) => readonly number[];
15
+ //# sourceMappingURL=linked-issues.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linked-issues.d.mts","sourceRoot":"","sources":["../../src/pr-report/linked-issues.mts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAcjE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,SAC1B,MAAM,QACN,OAAO,KACZ,SAAS,MAAM,EAcf,CAAC"}