@chief-clancy/core 0.1.0 → 0.1.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 (308) hide show
  1. package/README.md +17 -14
  2. package/dist/board/azdo/azdo-board.d.ts.map +1 -1
  3. package/dist/board/azdo/azdo-board.js +1 -0
  4. package/dist/board/azdo/azdo-board.js.map +1 -1
  5. package/dist/board/github/api/api.d.ts.map +1 -1
  6. package/dist/board/github/api/api.js +5 -2
  7. package/dist/board/github/api/api.js.map +1 -1
  8. package/dist/board/github/github-board.d.ts.map +1 -1
  9. package/dist/board/github/github-board.js +2 -1
  10. package/dist/board/github/github-board.js.map +1 -1
  11. package/dist/board/github/relations/relations.js +2 -2
  12. package/dist/board/github/relations/relations.js.map +1 -1
  13. package/dist/board/jira/jira-board.d.ts.map +1 -1
  14. package/dist/board/jira/jira-board.js +1 -0
  15. package/dist/board/jira/jira-board.js.map +1 -1
  16. package/dist/board/linear/linear-board.d.ts.map +1 -1
  17. package/dist/board/linear/linear-board.js +1 -0
  18. package/dist/board/linear/linear-board.js.map +1 -1
  19. package/dist/board/notion/notion-board.d.ts.map +1 -1
  20. package/dist/board/notion/notion-board.js +2 -1
  21. package/dist/board/notion/notion-board.js.map +1 -1
  22. package/dist/board/shortcut/shortcut-board.d.ts.map +1 -1
  23. package/dist/board/shortcut/shortcut-board.js +1 -0
  24. package/dist/board/shortcut/shortcut-board.js.map +1 -1
  25. package/dist/index.d.ts +1 -31
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1 -23
  28. package/dist/index.js.map +1 -1
  29. package/dist/shared/remote/remote.js.map +1 -1
  30. package/dist/types/board.d.ts +2 -0
  31. package/dist/types/board.d.ts.map +1 -1
  32. package/package.json +6 -2
  33. package/dist/dev/lifecycle/branch/branch.d.ts +0 -35
  34. package/dist/dev/lifecycle/branch/branch.d.ts.map +0 -1
  35. package/dist/dev/lifecycle/branch/branch.js +0 -48
  36. package/dist/dev/lifecycle/branch/branch.js.map +0 -1
  37. package/dist/dev/lifecycle/branch/index.d.ts +0 -2
  38. package/dist/dev/lifecycle/branch/index.d.ts.map +0 -1
  39. package/dist/dev/lifecycle/branch/index.js +0 -2
  40. package/dist/dev/lifecycle/branch/index.js.map +0 -1
  41. package/dist/dev/lifecycle/commit-type/commit-type.d.ts +0 -22
  42. package/dist/dev/lifecycle/commit-type/commit-type.d.ts.map +0 -1
  43. package/dist/dev/lifecycle/commit-type/commit-type.js +0 -50
  44. package/dist/dev/lifecycle/commit-type/commit-type.js.map +0 -1
  45. package/dist/dev/lifecycle/commit-type/index.d.ts +0 -2
  46. package/dist/dev/lifecycle/commit-type/index.d.ts.map +0 -1
  47. package/dist/dev/lifecycle/commit-type/index.js +0 -2
  48. package/dist/dev/lifecycle/commit-type/index.js.map +0 -1
  49. package/dist/dev/lifecycle/cost/cost.d.ts +0 -28
  50. package/dist/dev/lifecycle/cost/cost.d.ts.map +0 -1
  51. package/dist/dev/lifecycle/cost/cost.js +0 -36
  52. package/dist/dev/lifecycle/cost/cost.js.map +0 -1
  53. package/dist/dev/lifecycle/deliver-epic/deliver-epic.d.ts +0 -44
  54. package/dist/dev/lifecycle/deliver-epic/deliver-epic.d.ts.map +0 -1
  55. package/dist/dev/lifecycle/deliver-epic/deliver-epic.js +0 -75
  56. package/dist/dev/lifecycle/deliver-epic/deliver-epic.js.map +0 -1
  57. package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.d.ts +0 -51
  58. package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.d.ts.map +0 -1
  59. package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.js +0 -132
  60. package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.js.map +0 -1
  61. package/dist/dev/lifecycle/epic/epic.d.ts +0 -66
  62. package/dist/dev/lifecycle/epic/epic.d.ts.map +0 -1
  63. package/dist/dev/lifecycle/epic/epic.js +0 -91
  64. package/dist/dev/lifecycle/epic/epic.js.map +0 -1
  65. package/dist/dev/lifecycle/epic/index.d.ts +0 -2
  66. package/dist/dev/lifecycle/epic/index.d.ts.map +0 -1
  67. package/dist/dev/lifecycle/epic/index.js +0 -2
  68. package/dist/dev/lifecycle/epic/index.js.map +0 -1
  69. package/dist/dev/lifecycle/feasibility/feasibility.d.ts +0 -55
  70. package/dist/dev/lifecycle/feasibility/feasibility.d.ts.map +0 -1
  71. package/dist/dev/lifecycle/feasibility/feasibility.js +0 -75
  72. package/dist/dev/lifecycle/feasibility/feasibility.js.map +0 -1
  73. package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.d.ts +0 -49
  74. package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.d.ts.map +0 -1
  75. package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.js +0 -81
  76. package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.js.map +0 -1
  77. package/dist/dev/lifecycle/format/format.d.ts +0 -11
  78. package/dist/dev/lifecycle/format/format.d.ts.map +0 -1
  79. package/dist/dev/lifecycle/format/format.js +0 -23
  80. package/dist/dev/lifecycle/format/format.js.map +0 -1
  81. package/dist/dev/lifecycle/lock/index.d.ts +0 -3
  82. package/dist/dev/lifecycle/lock/index.d.ts.map +0 -1
  83. package/dist/dev/lifecycle/lock/index.js +0 -2
  84. package/dist/dev/lifecycle/lock/index.js.map +0 -1
  85. package/dist/dev/lifecycle/lock/lock.d.ts +0 -68
  86. package/dist/dev/lifecycle/lock/lock.d.ts.map +0 -1
  87. package/dist/dev/lifecycle/lock/lock.js +0 -125
  88. package/dist/dev/lifecycle/lock/lock.js.map +0 -1
  89. package/dist/dev/lifecycle/outcome/index.d.ts +0 -2
  90. package/dist/dev/lifecycle/outcome/index.d.ts.map +0 -1
  91. package/dist/dev/lifecycle/outcome/index.js +0 -2
  92. package/dist/dev/lifecycle/outcome/index.js.map +0 -1
  93. package/dist/dev/lifecycle/outcome/outcome.d.ts +0 -65
  94. package/dist/dev/lifecycle/outcome/outcome.d.ts.map +0 -1
  95. package/dist/dev/lifecycle/outcome/outcome.js +0 -61
  96. package/dist/dev/lifecycle/outcome/outcome.js.map +0 -1
  97. package/dist/dev/lifecycle/pr-creation/index.d.ts +0 -3
  98. package/dist/dev/lifecycle/pr-creation/index.d.ts.map +0 -1
  99. package/dist/dev/lifecycle/pr-creation/index.js +0 -2
  100. package/dist/dev/lifecycle/pr-creation/index.js.map +0 -1
  101. package/dist/dev/lifecycle/pr-creation/pr-creation.d.ts +0 -47
  102. package/dist/dev/lifecycle/pr-creation/pr-creation.d.ts.map +0 -1
  103. package/dist/dev/lifecycle/pr-creation/pr-creation.js +0 -143
  104. package/dist/dev/lifecycle/pr-creation/pr-creation.js.map +0 -1
  105. package/dist/dev/lifecycle/preflight/preflight.d.ts +0 -42
  106. package/dist/dev/lifecycle/preflight/preflight.d.ts.map +0 -1
  107. package/dist/dev/lifecycle/preflight/preflight.js +0 -101
  108. package/dist/dev/lifecycle/preflight/preflight.js.map +0 -1
  109. package/dist/dev/lifecycle/progress/index.d.ts +0 -3
  110. package/dist/dev/lifecycle/progress/index.d.ts.map +0 -1
  111. package/dist/dev/lifecycle/progress/index.js +0 -2
  112. package/dist/dev/lifecycle/progress/index.js.map +0 -1
  113. package/dist/dev/lifecycle/progress/progress.d.ts +0 -98
  114. package/dist/dev/lifecycle/progress/progress.d.ts.map +0 -1
  115. package/dist/dev/lifecycle/progress/progress.js +0 -212
  116. package/dist/dev/lifecycle/progress/progress.js.map +0 -1
  117. package/dist/dev/lifecycle/pull-request/azdo/azdo.d.ts +0 -86
  118. package/dist/dev/lifecycle/pull-request/azdo/azdo.d.ts.map +0 -1
  119. package/dist/dev/lifecycle/pull-request/azdo/azdo.js +0 -198
  120. package/dist/dev/lifecycle/pull-request/azdo/azdo.js.map +0 -1
  121. package/dist/dev/lifecycle/pull-request/azdo/index.d.ts +0 -2
  122. package/dist/dev/lifecycle/pull-request/azdo/index.d.ts.map +0 -1
  123. package/dist/dev/lifecycle/pull-request/azdo/index.js +0 -2
  124. package/dist/dev/lifecycle/pull-request/azdo/index.js.map +0 -1
  125. package/dist/dev/lifecycle/pull-request/bitbucket/cloud.d.ts +0 -85
  126. package/dist/dev/lifecycle/pull-request/bitbucket/cloud.d.ts.map +0 -1
  127. package/dist/dev/lifecycle/pull-request/bitbucket/cloud.js +0 -158
  128. package/dist/dev/lifecycle/pull-request/bitbucket/cloud.js.map +0 -1
  129. package/dist/dev/lifecycle/pull-request/bitbucket/index.d.ts +0 -3
  130. package/dist/dev/lifecycle/pull-request/bitbucket/index.d.ts.map +0 -1
  131. package/dist/dev/lifecycle/pull-request/bitbucket/index.js +0 -3
  132. package/dist/dev/lifecycle/pull-request/bitbucket/index.js.map +0 -1
  133. package/dist/dev/lifecycle/pull-request/bitbucket/server.d.ts +0 -85
  134. package/dist/dev/lifecycle/pull-request/bitbucket/server.d.ts.map +0 -1
  135. package/dist/dev/lifecycle/pull-request/bitbucket/server.js +0 -168
  136. package/dist/dev/lifecycle/pull-request/bitbucket/server.js.map +0 -1
  137. package/dist/dev/lifecycle/pull-request/github/github.d.ts +0 -107
  138. package/dist/dev/lifecycle/pull-request/github/github.d.ts.map +0 -1
  139. package/dist/dev/lifecycle/pull-request/github/github.js +0 -225
  140. package/dist/dev/lifecycle/pull-request/github/github.js.map +0 -1
  141. package/dist/dev/lifecycle/pull-request/github/index.d.ts +0 -2
  142. package/dist/dev/lifecycle/pull-request/github/index.d.ts.map +0 -1
  143. package/dist/dev/lifecycle/pull-request/github/index.js +0 -2
  144. package/dist/dev/lifecycle/pull-request/github/index.js.map +0 -1
  145. package/dist/dev/lifecycle/pull-request/gitlab/gitlab.d.ts +0 -103
  146. package/dist/dev/lifecycle/pull-request/gitlab/gitlab.d.ts.map +0 -1
  147. package/dist/dev/lifecycle/pull-request/gitlab/gitlab.js +0 -215
  148. package/dist/dev/lifecycle/pull-request/gitlab/gitlab.js.map +0 -1
  149. package/dist/dev/lifecycle/pull-request/gitlab/index.d.ts +0 -2
  150. package/dist/dev/lifecycle/pull-request/gitlab/index.d.ts.map +0 -1
  151. package/dist/dev/lifecycle/pull-request/gitlab/index.js +0 -2
  152. package/dist/dev/lifecycle/pull-request/gitlab/index.js.map +0 -1
  153. package/dist/dev/lifecycle/pull-request/post-pr/post-pr.d.ts +0 -44
  154. package/dist/dev/lifecycle/pull-request/post-pr/post-pr.d.ts.map +0 -1
  155. package/dist/dev/lifecycle/pull-request/post-pr/post-pr.js +0 -64
  156. package/dist/dev/lifecycle/pull-request/post-pr/post-pr.js.map +0 -1
  157. package/dist/dev/lifecycle/pull-request/pr-body/index.d.ts +0 -3
  158. package/dist/dev/lifecycle/pull-request/pr-body/index.d.ts.map +0 -1
  159. package/dist/dev/lifecycle/pull-request/pr-body/index.js +0 -2
  160. package/dist/dev/lifecycle/pull-request/pr-body/index.js.map +0 -1
  161. package/dist/dev/lifecycle/pull-request/pr-body/pr-body.d.ts +0 -65
  162. package/dist/dev/lifecycle/pull-request/pr-body/pr-body.d.ts.map +0 -1
  163. package/dist/dev/lifecycle/pull-request/pr-body/pr-body.js +0 -144
  164. package/dist/dev/lifecycle/pull-request/pr-body/pr-body.js.map +0 -1
  165. package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.d.ts +0 -30
  166. package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.d.ts.map +0 -1
  167. package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.js +0 -39
  168. package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.js.map +0 -1
  169. package/dist/dev/lifecycle/quality/quality.d.ts +0 -99
  170. package/dist/dev/lifecycle/quality/quality.d.ts.map +0 -1
  171. package/dist/dev/lifecycle/quality/quality.js +0 -213
  172. package/dist/dev/lifecycle/quality/quality.js.map +0 -1
  173. package/dist/dev/lifecycle/resume/resume.d.ts +0 -64
  174. package/dist/dev/lifecycle/resume/resume.d.ts.map +0 -1
  175. package/dist/dev/lifecycle/resume/resume.js +0 -171
  176. package/dist/dev/lifecycle/resume/resume.js.map +0 -1
  177. package/dist/dev/lifecycle/rework/rework-builders.d.ts +0 -20
  178. package/dist/dev/lifecycle/rework/rework-builders.d.ts.map +0 -1
  179. package/dist/dev/lifecycle/rework/rework-builders.js +0 -203
  180. package/dist/dev/lifecycle/rework/rework-builders.js.map +0 -1
  181. package/dist/dev/lifecycle/rework/rework-handlers.d.ts +0 -50
  182. package/dist/dev/lifecycle/rework/rework-handlers.d.ts.map +0 -1
  183. package/dist/dev/lifecycle/rework/rework-handlers.js +0 -41
  184. package/dist/dev/lifecycle/rework/rework-handlers.js.map +0 -1
  185. package/dist/dev/lifecycle/rework/rework.d.ts +0 -63
  186. package/dist/dev/lifecycle/rework/rework.d.ts.map +0 -1
  187. package/dist/dev/lifecycle/rework/rework.js +0 -141
  188. package/dist/dev/lifecycle/rework/rework.js.map +0 -1
  189. package/dist/dev/pipeline/context.d.ts +0 -105
  190. package/dist/dev/pipeline/context.d.ts.map +0 -1
  191. package/dist/dev/pipeline/context.js +0 -107
  192. package/dist/dev/pipeline/context.js.map +0 -1
  193. package/dist/dev/pipeline/index.d.ts +0 -6
  194. package/dist/dev/pipeline/index.d.ts.map +0 -1
  195. package/dist/dev/pipeline/index.js +0 -5
  196. package/dist/dev/pipeline/index.js.map +0 -1
  197. package/dist/dev/pipeline/phases/branch-setup/branch-setup.d.ts +0 -62
  198. package/dist/dev/pipeline/phases/branch-setup/branch-setup.d.ts.map +0 -1
  199. package/dist/dev/pipeline/phases/branch-setup/branch-setup.js +0 -128
  200. package/dist/dev/pipeline/phases/branch-setup/branch-setup.js.map +0 -1
  201. package/dist/dev/pipeline/phases/branch-setup/index.d.ts +0 -3
  202. package/dist/dev/pipeline/phases/branch-setup/index.d.ts.map +0 -1
  203. package/dist/dev/pipeline/phases/branch-setup/index.js +0 -2
  204. package/dist/dev/pipeline/phases/branch-setup/index.js.map +0 -1
  205. package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.d.ts +0 -32
  206. package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.d.ts.map +0 -1
  207. package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.js +0 -32
  208. package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.js.map +0 -1
  209. package/dist/dev/pipeline/phases/cleanup-phase/index.d.ts +0 -3
  210. package/dist/dev/pipeline/phases/cleanup-phase/index.d.ts.map +0 -1
  211. package/dist/dev/pipeline/phases/cleanup-phase/index.js +0 -2
  212. package/dist/dev/pipeline/phases/cleanup-phase/index.js.map +0 -1
  213. package/dist/dev/pipeline/phases/cost-phase/cost-phase.d.ts +0 -40
  214. package/dist/dev/pipeline/phases/cost-phase/cost-phase.d.ts.map +0 -1
  215. package/dist/dev/pipeline/phases/cost-phase/cost-phase.js +0 -43
  216. package/dist/dev/pipeline/phases/cost-phase/cost-phase.js.map +0 -1
  217. package/dist/dev/pipeline/phases/cost-phase/index.d.ts +0 -3
  218. package/dist/dev/pipeline/phases/cost-phase/index.d.ts.map +0 -1
  219. package/dist/dev/pipeline/phases/cost-phase/index.js +0 -2
  220. package/dist/dev/pipeline/phases/cost-phase/index.js.map +0 -1
  221. package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.d.ts +0 -68
  222. package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.d.ts.map +0 -1
  223. package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.js +0 -125
  224. package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.js.map +0 -1
  225. package/dist/dev/pipeline/phases/deliver-phase/index.d.ts +0 -3
  226. package/dist/dev/pipeline/phases/deliver-phase/index.d.ts.map +0 -1
  227. package/dist/dev/pipeline/phases/deliver-phase/index.js +0 -2
  228. package/dist/dev/pipeline/phases/deliver-phase/index.js.map +0 -1
  229. package/dist/dev/pipeline/phases/dry-run/dry-run.d.ts +0 -38
  230. package/dist/dev/pipeline/phases/dry-run/dry-run.d.ts.map +0 -1
  231. package/dist/dev/pipeline/phases/dry-run/dry-run.js +0 -33
  232. package/dist/dev/pipeline/phases/dry-run/dry-run.js.map +0 -1
  233. package/dist/dev/pipeline/phases/dry-run/index.d.ts +0 -2
  234. package/dist/dev/pipeline/phases/dry-run/index.d.ts.map +0 -1
  235. package/dist/dev/pipeline/phases/dry-run/index.js +0 -2
  236. package/dist/dev/pipeline/phases/dry-run/index.js.map +0 -1
  237. package/dist/dev/pipeline/phases/epic-completion/epic-completion.d.ts +0 -48
  238. package/dist/dev/pipeline/phases/epic-completion/epic-completion.d.ts.map +0 -1
  239. package/dist/dev/pipeline/phases/epic-completion/epic-completion.js +0 -42
  240. package/dist/dev/pipeline/phases/epic-completion/epic-completion.js.map +0 -1
  241. package/dist/dev/pipeline/phases/epic-completion/index.d.ts +0 -3
  242. package/dist/dev/pipeline/phases/epic-completion/index.d.ts.map +0 -1
  243. package/dist/dev/pipeline/phases/epic-completion/index.js +0 -2
  244. package/dist/dev/pipeline/phases/epic-completion/index.js.map +0 -1
  245. package/dist/dev/pipeline/phases/feasibility/feasibility.d.ts +0 -52
  246. package/dist/dev/pipeline/phases/feasibility/feasibility.d.ts.map +0 -1
  247. package/dist/dev/pipeline/phases/feasibility/feasibility.js +0 -34
  248. package/dist/dev/pipeline/phases/feasibility/feasibility.js.map +0 -1
  249. package/dist/dev/pipeline/phases/feasibility/index.d.ts +0 -3
  250. package/dist/dev/pipeline/phases/feasibility/index.d.ts.map +0 -1
  251. package/dist/dev/pipeline/phases/feasibility/index.js +0 -2
  252. package/dist/dev/pipeline/phases/feasibility/index.js.map +0 -1
  253. package/dist/dev/pipeline/phases/index.d.ts +0 -26
  254. package/dist/dev/pipeline/phases/index.d.ts.map +0 -1
  255. package/dist/dev/pipeline/phases/index.js +0 -14
  256. package/dist/dev/pipeline/phases/index.js.map +0 -1
  257. package/dist/dev/pipeline/phases/lock-check/index.d.ts +0 -3
  258. package/dist/dev/pipeline/phases/lock-check/index.d.ts.map +0 -1
  259. package/dist/dev/pipeline/phases/lock-check/index.js +0 -2
  260. package/dist/dev/pipeline/phases/lock-check/index.js.map +0 -1
  261. package/dist/dev/pipeline/phases/lock-check/lock-check.d.ts +0 -55
  262. package/dist/dev/pipeline/phases/lock-check/lock-check.d.ts.map +0 -1
  263. package/dist/dev/pipeline/phases/lock-check/lock-check.js +0 -60
  264. package/dist/dev/pipeline/phases/lock-check/lock-check.js.map +0 -1
  265. package/dist/dev/pipeline/phases/pr-retry/index.d.ts +0 -3
  266. package/dist/dev/pipeline/phases/pr-retry/index.d.ts.map +0 -1
  267. package/dist/dev/pipeline/phases/pr-retry/index.js +0 -2
  268. package/dist/dev/pipeline/phases/pr-retry/index.js.map +0 -1
  269. package/dist/dev/pipeline/phases/pr-retry/pr-retry.d.ts +0 -58
  270. package/dist/dev/pipeline/phases/pr-retry/pr-retry.d.ts.map +0 -1
  271. package/dist/dev/pipeline/phases/pr-retry/pr-retry.js +0 -82
  272. package/dist/dev/pipeline/phases/pr-retry/pr-retry.js.map +0 -1
  273. package/dist/dev/pipeline/phases/preflight-phase/index.d.ts +0 -3
  274. package/dist/dev/pipeline/phases/preflight-phase/index.d.ts.map +0 -1
  275. package/dist/dev/pipeline/phases/preflight-phase/index.js +0 -2
  276. package/dist/dev/pipeline/phases/preflight-phase/index.js.map +0 -1
  277. package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.d.ts +0 -42
  278. package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.d.ts.map +0 -1
  279. package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.js +0 -41
  280. package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.js.map +0 -1
  281. package/dist/dev/pipeline/phases/rework-detection/index.d.ts +0 -3
  282. package/dist/dev/pipeline/phases/rework-detection/index.d.ts.map +0 -1
  283. package/dist/dev/pipeline/phases/rework-detection/index.js +0 -2
  284. package/dist/dev/pipeline/phases/rework-detection/index.js.map +0 -1
  285. package/dist/dev/pipeline/phases/rework-detection/rework-detection.d.ts +0 -40
  286. package/dist/dev/pipeline/phases/rework-detection/rework-detection.d.ts.map +0 -1
  287. package/dist/dev/pipeline/phases/rework-detection/rework-detection.js +0 -38
  288. package/dist/dev/pipeline/phases/rework-detection/rework-detection.js.map +0 -1
  289. package/dist/dev/pipeline/phases/ticket-fetch/index.d.ts +0 -3
  290. package/dist/dev/pipeline/phases/ticket-fetch/index.d.ts.map +0 -1
  291. package/dist/dev/pipeline/phases/ticket-fetch/index.js +0 -2
  292. package/dist/dev/pipeline/phases/ticket-fetch/index.js.map +0 -1
  293. package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.d.ts +0 -46
  294. package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.d.ts.map +0 -1
  295. package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.js +0 -64
  296. package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.js.map +0 -1
  297. package/dist/dev/pipeline/phases/transition/index.d.ts +0 -3
  298. package/dist/dev/pipeline/phases/transition/index.d.ts.map +0 -1
  299. package/dist/dev/pipeline/phases/transition/index.js +0 -2
  300. package/dist/dev/pipeline/phases/transition/index.js.map +0 -1
  301. package/dist/dev/pipeline/phases/transition/transition.d.ts +0 -30
  302. package/dist/dev/pipeline/phases/transition/transition.d.ts.map +0 -1
  303. package/dist/dev/pipeline/phases/transition/transition.js +0 -27
  304. package/dist/dev/pipeline/phases/transition/transition.js.map +0 -1
  305. package/dist/dev/pipeline/run-pipeline.d.ts +0 -98
  306. package/dist/dev/pipeline/run-pipeline.d.ts.map +0 -1
  307. package/dist/dev/pipeline/run-pipeline.js +0 -106
  308. package/dist/dev/pipeline/run-pipeline.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../../src/dev/lifecycle/pull-request/github/github.ts"],"names":[],"mappings":"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"}
@@ -1,225 +0,0 @@
1
- import { GITHUB_API, githubHeaders } from '../../../../board/github/api/index.js';
2
- import { githubCommentsResponseSchema, githubPrCommentsSchema, githubPrCreatedSchema, githubPrListSchema, githubReviewListSchema, } from '../../../../schemas/github/github.js';
3
- import { postPullRequest } from '../post-pr/post-pr.js';
4
- import { extractReworkContent, isClancyComment, isReworkComment, } from '../rework-comment/rework-comment.js';
5
- // ─── exported functions ─────────────────────────────────────────────────────
6
- /**
7
- * Check the review state of an open PR for a given branch.
8
- *
9
- * Finds the open PR matching the branch, fetches inline and conversation
10
- * comments. Any inline comment triggers rework. Conversation comments
11
- * only trigger rework when prefixed with `Rework:`.
12
- *
13
- * @param opts - Options including fetch, token, repo, branch, and owner.
14
- * @returns The review state, or `undefined` if no open PR or on error.
15
- */
16
- export async function checkPrReviewState(opts) {
17
- const { fetchFn, token, repo, branch, owner } = opts;
18
- const apiBase = opts.apiBase ?? GITHUB_API;
19
- try {
20
- const pr = await findOpenPr({
21
- fetchFn,
22
- apiBase,
23
- repo,
24
- owner,
25
- branch,
26
- token,
27
- });
28
- if (!pr)
29
- return undefined;
30
- const { inline, convo } = await fetchFilteredComments({
31
- fetchFn,
32
- apiBase,
33
- repo,
34
- prNumber: pr.number,
35
- token,
36
- since: opts.since,
37
- });
38
- const hasInlineComments = inline.length > 0;
39
- const hasReworkConvo = convo.some((c) => c.body != null && isReworkComment(c.body));
40
- const commentTriggered = hasInlineComments || hasReworkConvo;
41
- if (commentTriggered) {
42
- return { changesRequested: true, prNumber: pr.number, prUrl: pr.url };
43
- }
44
- const reviewResult = await checkReviews({
45
- fetchFn,
46
- apiBase,
47
- repo,
48
- prNumber: pr.number,
49
- token,
50
- });
51
- return {
52
- changesRequested: reviewResult.changesRequested,
53
- prNumber: pr.number,
54
- prUrl: pr.url,
55
- ...(reviewResult.reviewers && { reviewers: reviewResult.reviewers }),
56
- };
57
- }
58
- catch {
59
- return undefined;
60
- }
61
- }
62
- /**
63
- * Fetch feedback comments (inline + conversation) for a PR.
64
- *
65
- * Inline comments are included unconditionally. Conversation comments
66
- * are only included when prefixed with `Rework:` (case-insensitive),
67
- * with the prefix stripped. Comments prefixed with `[clancy]` are excluded.
68
- *
69
- * @param opts - Options including fetch, token, repo, and prNumber.
70
- * @returns An array of feedback descriptions, or `[]` on error.
71
- */
72
- export async function fetchPrReviewComments(opts) {
73
- const { fetchFn, token, repo, prNumber } = opts;
74
- const apiBase = opts.apiBase ?? GITHUB_API;
75
- try {
76
- const { inline, convo } = await fetchFilteredComments({
77
- fetchFn,
78
- apiBase,
79
- repo,
80
- prNumber,
81
- token,
82
- since: opts.since,
83
- });
84
- const inlineLines = inline
85
- .filter((c) => c.body != null)
86
- .map((c) => {
87
- const prefix = c.path ? `[${c.path}] ` : '';
88
- return `${prefix}${c.body}`;
89
- });
90
- const convoLines = convo
91
- .filter((c) => c.body != null && isReworkComment(c.body))
92
- .map((c) => extractReworkContent(c.body));
93
- return [...inlineLines, ...convoLines];
94
- }
95
- catch {
96
- return [];
97
- }
98
- }
99
- /**
100
- * Post a comment on a GitHub PR/issue.
101
- *
102
- * Best-effort — never throws. Returns `true` on success, `false` on error.
103
- *
104
- * @param opts - Options including fetch, token, repo, prNumber, and body.
105
- * @returns `true` on success, `false` on error.
106
- */
107
- export async function postPrComment(opts) {
108
- const { fetchFn, token, repo, prNumber, body } = opts;
109
- const apiBase = opts.apiBase ?? GITHUB_API;
110
- try {
111
- const res = await fetchFn(`${apiBase}/repos/${repo}/issues/${prNumber}/comments`, {
112
- method: 'POST',
113
- headers: {
114
- ...githubHeaders(token),
115
- 'Content-Type': 'application/json',
116
- },
117
- body: JSON.stringify({ body }),
118
- });
119
- return res.ok;
120
- }
121
- catch {
122
- return false;
123
- }
124
- }
125
- /**
126
- * Re-request review from specified reviewers on a GitHub PR.
127
- *
128
- * Best-effort — never throws. Returns `true` on success, `false` on error.
129
- *
130
- * @param opts - Options including fetch, token, repo, prNumber, and reviewers.
131
- * @returns `true` on success, `false` on error.
132
- */
133
- export async function requestReview(opts) {
134
- const { fetchFn, token, repo, prNumber, reviewers } = opts;
135
- const apiBase = opts.apiBase ?? GITHUB_API;
136
- try {
137
- const res = await fetchFn(`${apiBase}/repos/${repo}/pulls/${prNumber}/requested_reviewers`, {
138
- method: 'POST',
139
- headers: {
140
- ...githubHeaders(token),
141
- 'Content-Type': 'application/json',
142
- },
143
- body: JSON.stringify({ reviewers }),
144
- });
145
- return res.ok;
146
- }
147
- catch {
148
- return false;
149
- }
150
- }
151
- /**
152
- * Create a pull request on GitHub.
153
- *
154
- * @param opts - Options including fetch, token, repo, head, base, title, and body.
155
- * @returns A result with the PR URL and number on success, or an error.
156
- */
157
- export async function createPullRequest(opts) {
158
- const { fetchFn, token, repo, head, base, title, body } = opts;
159
- const apiBase = opts.apiBase ?? GITHUB_API;
160
- return postPullRequest({
161
- fetchFn,
162
- url: `${apiBase}/repos/${repo}/pulls`,
163
- headers: githubHeaders(token),
164
- body: { title, head, base, body },
165
- parseSuccess: (json) => {
166
- const data = githubPrCreatedSchema.parse(json);
167
- return { url: data.html_url ?? '', number: data.number ?? 0 };
168
- },
169
- isAlreadyExists: (status, text) => status === 422 && text.includes('already exists'),
170
- });
171
- }
172
- /** Find the first open PR for a branch. */
173
- async function findOpenPr(opts) {
174
- const { fetchFn, apiBase, repo, owner, branch, token } = opts;
175
- const res = await fetchFn(`${apiBase}/repos/${repo}/pulls?head=${encodeURIComponent(`${owner}:${branch}`)}&state=open`, { headers: githubHeaders(token) });
176
- if (!res.ok)
177
- return undefined;
178
- const prs = githubPrListSchema.parse(await res.json());
179
- if (prs.length === 0)
180
- return undefined;
181
- const pr = prs[0];
182
- return { number: pr.number, url: pr.html_url };
183
- }
184
- /** Fetch inline + conversation comments, filtering out [clancy] comments. */
185
- async function fetchFilteredComments(opts) {
186
- const { fetchFn, apiBase, repo, prNumber, token, since } = opts;
187
- const headers = githubHeaders(token);
188
- const sinceParam = since ? `&since=${encodeURIComponent(since)}` : '';
189
- const [inlineRes, convoRes] = await Promise.all([
190
- fetchFn(`${apiBase}/repos/${repo}/pulls/${prNumber}/comments?per_page=100${sinceParam}`, { headers }),
191
- fetchFn(`${apiBase}/repos/${repo}/issues/${prNumber}/comments?per_page=100${sinceParam}`, { headers }),
192
- ]);
193
- if (!inlineRes.ok || !convoRes.ok) {
194
- return { inline: [], convo: [] };
195
- }
196
- const rawInline = githubPrCommentsSchema.parse(await inlineRes.json());
197
- const rawConvo = githubCommentsResponseSchema.parse(await convoRes.json());
198
- return {
199
- inline: rawInline.filter((c) => !c.body || !isClancyComment(c.body)),
200
- convo: rawConvo.filter((c) => !c.body || !isClancyComment(c.body)),
201
- };
202
- }
203
- /** Check GitHub reviews for CHANGES_REQUESTED state. Best-effort. */
204
- async function checkReviews(opts) {
205
- const { fetchFn, apiBase, repo, prNumber, token } = opts;
206
- try {
207
- const res = await fetchFn(`${apiBase}/repos/${repo}/pulls/${prNumber}/reviews?per_page=100`, { headers: githubHeaders(token) });
208
- if (!res.ok)
209
- return { changesRequested: false };
210
- const reviews = githubReviewListSchema.parse(await res.json());
211
- const latestByUser = new Map(reviews
212
- .filter((r) => r.state !== 'PENDING' && r.state !== 'DISMISSED')
213
- .map((r) => [r.user.login, r.state]));
214
- const requested = [...latestByUser.entries()]
215
- .filter(([, state]) => state === 'CHANGES_REQUESTED')
216
- .map(([login]) => login);
217
- if (requested.length === 0)
218
- return { changesRequested: false };
219
- return { changesRequested: true, reviewers: requested };
220
- }
221
- catch {
222
- return { changesRequested: false };
223
- }
224
- }
225
- //# sourceMappingURL=github.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../../src/dev/lifecycle/pull-request/github/github.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { checkPrReviewState, createPullRequest, fetchPrReviewComments, postPrComment, requestReview, } from './github.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/dev/lifecycle/pull-request/github/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,aAAa,CAAC"}
@@ -1,2 +0,0 @@
1
- export { checkPrReviewState, createPullRequest, fetchPrReviewComments, postPrComment, requestReview, } from './github.js';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/dev/lifecycle/pull-request/github/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,aAAa,CAAC"}
@@ -1,103 +0,0 @@
1
- import type { PrCreationResult, PrReviewState } from '../../../../types/index.js';
2
- /** Minimal fetch signature for GitLab API calls. */
3
- type GitLabFetch = (url: string, init: RequestInit) => Promise<Response>;
4
- /** Options for {@link createMergeRequest}. */
5
- type CreateMrOpts = {
6
- readonly fetchFn: GitLabFetch;
7
- readonly token: string;
8
- readonly apiBase: string;
9
- readonly projectPath: string;
10
- readonly sourceBranch: string;
11
- readonly targetBranch: string;
12
- readonly title: string;
13
- readonly description: string;
14
- };
15
- /** Options for {@link postMrNote}. */
16
- type PostNoteOpts = {
17
- readonly fetchFn: GitLabFetch;
18
- readonly token: string;
19
- readonly apiBase: string;
20
- readonly projectPath: string;
21
- readonly mrIid: number;
22
- readonly body: string;
23
- };
24
- /** Options for {@link resolveDiscussions}. */
25
- type ResolveOpts = {
26
- readonly fetchFn: GitLabFetch;
27
- readonly token: string;
28
- readonly apiBase: string;
29
- readonly projectPath: string;
30
- readonly mrIid: number;
31
- readonly discussionIds: readonly string[];
32
- };
33
- /** Options for {@link checkMrReviewState}. */
34
- type CheckMrOpts = {
35
- readonly fetchFn: GitLabFetch;
36
- readonly token: string;
37
- readonly apiBase: string;
38
- readonly projectPath: string;
39
- readonly branch: string;
40
- readonly since?: string;
41
- };
42
- /** Options for {@link fetchMrReviewComments}. */
43
- type FetchMrCommentsOpts = {
44
- readonly fetchFn: GitLabFetch;
45
- readonly token: string;
46
- readonly apiBase: string;
47
- readonly projectPath: string;
48
- readonly mrIid: number;
49
- readonly since?: string;
50
- };
51
- /**
52
- * Create a merge request on GitLab.
53
- *
54
- * @param opts - Options including fetch, token, apiBase, projectPath, branches, title, and description.
55
- * @returns A result with the MR URL and IID on success, or an error.
56
- */
57
- export declare function createMergeRequest(opts: CreateMrOpts): Promise<PrCreationResult>;
58
- /**
59
- * Post a note (comment) on a GitLab merge request.
60
- *
61
- * Best-effort — never throws.
62
- *
63
- * @param opts - Options including fetch, token, apiBase, projectPath, mrIid, and body.
64
- * @returns `true` on success, `false` on error.
65
- */
66
- export declare function postMrNote(opts: PostNoteOpts): Promise<boolean>;
67
- /**
68
- * Resolve MR discussion threads on GitLab.
69
- *
70
- * Best-effort per discussion — failures are silently skipped.
71
- *
72
- * @param opts - Options including fetch, token, apiBase, projectPath, mrIid, and discussionIds.
73
- * @returns The number of successfully resolved discussions.
74
- */
75
- export declare function resolveDiscussions(opts: ResolveOpts): Promise<number>;
76
- /**
77
- * Check the review state of an open MR for a given branch.
78
- *
79
- * Finds the open MR, fetches discussions. Inline notes (DiffNote)
80
- * always trigger rework. Conversation notes only trigger when prefixed
81
- * with `Rework:`. Does not check formal approval state — only GitHub
82
- * checks formal reviews (CHANGES_REQUESTED) via the reviews API.
83
- *
84
- * @param opts - Options including fetch, token, apiBase, projectPath, branch, and since.
85
- * @returns The review state, or `undefined` if no open MR or on error.
86
- */
87
- export declare function checkMrReviewState(opts: CheckMrOpts): Promise<PrReviewState | undefined>;
88
- /**
89
- * Fetch feedback comments from an MR's discussions.
90
- *
91
- * Inline notes (DiffNote) are always included. Conversation notes are
92
- * only included when prefixed with `Rework:` (case-insensitive), with
93
- * the prefix stripped. Returns discussion IDs for later resolution.
94
- *
95
- * @param opts - Options including fetch, token, apiBase, projectPath, mrIid, and since.
96
- * @returns Feedback descriptions and discussion IDs, or empty on error.
97
- */
98
- export declare function fetchMrReviewComments(opts: FetchMrCommentsOpts): Promise<{
99
- readonly comments: readonly string[];
100
- readonly discussionIds: readonly string[];
101
- }>;
102
- export {};
103
- //# sourceMappingURL=gitlab.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../../../../../src/dev/lifecycle/pull-request/gitlab/gitlab.ts"],"names":[],"mappings":"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"}
@@ -1,215 +0,0 @@
1
- import { gitlabDiscussionsSchema, gitlabMrCreatedSchema, gitlabMrListSchema, } from '../../../../schemas/gitlab/gitlab.js';
2
- import { postPullRequest } from '../post-pr/post-pr.js';
3
- import { extractReworkContent, isClancyComment, isReworkComment, } from '../rework-comment/rework-comment.js';
4
- // ─── exported functions ─────────────────────────────────────────────────────
5
- /**
6
- * Create a merge request on GitLab.
7
- *
8
- * @param opts - Options including fetch, token, apiBase, projectPath, branches, title, and description.
9
- * @returns A result with the MR URL and IID on success, or an error.
10
- */
11
- export async function createMergeRequest(opts) {
12
- const { fetchFn, token, apiBase, projectPath } = opts;
13
- const { sourceBranch, targetBranch, title, description } = opts;
14
- const encoded = encodeURIComponent(projectPath);
15
- return postPullRequest({
16
- fetchFn,
17
- url: `${apiBase}/projects/${encoded}/merge_requests`,
18
- headers: { 'PRIVATE-TOKEN': token },
19
- body: {
20
- source_branch: sourceBranch,
21
- target_branch: targetBranch,
22
- title,
23
- description,
24
- remove_source_branch: true,
25
- },
26
- parseSuccess: (json) => {
27
- const data = gitlabMrCreatedSchema.parse(json);
28
- return { url: data.web_url ?? '', number: data.iid ?? 0 };
29
- },
30
- isAlreadyExists: (status, text) => status === 409 && text.includes('already exists'),
31
- });
32
- }
33
- /**
34
- * Post a note (comment) on a GitLab merge request.
35
- *
36
- * Best-effort — never throws.
37
- *
38
- * @param opts - Options including fetch, token, apiBase, projectPath, mrIid, and body.
39
- * @returns `true` on success, `false` on error.
40
- */
41
- export async function postMrNote(opts) {
42
- const { fetchFn, token, apiBase, projectPath, mrIid, body } = opts;
43
- try {
44
- const encoded = encodeURIComponent(projectPath);
45
- const res = await fetchFn(`${apiBase}/projects/${encoded}/merge_requests/${mrIid}/notes`, {
46
- method: 'POST',
47
- headers: { 'PRIVATE-TOKEN': token, 'Content-Type': 'application/json' },
48
- body: JSON.stringify({ body }),
49
- });
50
- return res.ok;
51
- }
52
- catch {
53
- return false;
54
- }
55
- }
56
- /**
57
- * Resolve MR discussion threads on GitLab.
58
- *
59
- * Best-effort per discussion — failures are silently skipped.
60
- *
61
- * @param opts - Options including fetch, token, apiBase, projectPath, mrIid, and discussionIds.
62
- * @returns The number of successfully resolved discussions.
63
- */
64
- export async function resolveDiscussions(opts) {
65
- const { fetchFn, token, apiBase, projectPath, mrIid, discussionIds } = opts;
66
- const encoded = encodeURIComponent(projectPath);
67
- const results = await Promise.allSettled(discussionIds.map((id) => fetchFn(`${apiBase}/projects/${encoded}/merge_requests/${mrIid}/discussions/${id}`, {
68
- method: 'PUT',
69
- headers: {
70
- 'PRIVATE-TOKEN': token,
71
- 'Content-Type': 'application/json',
72
- },
73
- body: JSON.stringify({ resolved: true }),
74
- }).then((res) => res.ok)));
75
- return results.filter((r) => r.status === 'fulfilled' && r.value === true)
76
- .length;
77
- }
78
- /**
79
- * Check the review state of an open MR for a given branch.
80
- *
81
- * Finds the open MR, fetches discussions. Inline notes (DiffNote)
82
- * always trigger rework. Conversation notes only trigger when prefixed
83
- * with `Rework:`. Does not check formal approval state — only GitHub
84
- * checks formal reviews (CHANGES_REQUESTED) via the reviews API.
85
- *
86
- * @param opts - Options including fetch, token, apiBase, projectPath, branch, and since.
87
- * @returns The review state, or `undefined` if no open MR or on error.
88
- */
89
- export async function checkMrReviewState(opts) {
90
- const { fetchFn, token, apiBase, projectPath, branch, since } = opts;
91
- try {
92
- const mr = await findOpenMr({
93
- fetchFn,
94
- token,
95
- apiBase,
96
- projectPath,
97
- branch,
98
- });
99
- if (!mr)
100
- return undefined;
101
- const discussions = await fetchDiscussions({
102
- fetchFn,
103
- token,
104
- apiBase,
105
- projectPath,
106
- mrIid: mr.iid,
107
- });
108
- if (!discussions)
109
- return undefined;
110
- const hasRework = discussions.some((d) => d.notes.some((n) => isActionableNote(n, since)));
111
- return { changesRequested: hasRework, prNumber: mr.iid, prUrl: mr.url };
112
- }
113
- catch {
114
- return undefined;
115
- }
116
- }
117
- /**
118
- * Fetch feedback comments from an MR's discussions.
119
- *
120
- * Inline notes (DiffNote) are always included. Conversation notes are
121
- * only included when prefixed with `Rework:` (case-insensitive), with
122
- * the prefix stripped. Returns discussion IDs for later resolution.
123
- *
124
- * @param opts - Options including fetch, token, apiBase, projectPath, mrIid, and since.
125
- * @returns Feedback descriptions and discussion IDs, or empty on error.
126
- */
127
- export async function fetchMrReviewComments(opts) {
128
- const { fetchFn, token, apiBase, projectPath, mrIid, since } = opts;
129
- try {
130
- const discussions = await fetchDiscussions({
131
- fetchFn,
132
- token,
133
- apiBase,
134
- projectPath,
135
- mrIid,
136
- });
137
- if (!discussions)
138
- return { comments: [], discussionIds: [] };
139
- return extractFeedback(discussions, since);
140
- }
141
- catch {
142
- return { comments: [], discussionIds: [] };
143
- }
144
- }
145
- /** Find the first open MR for a branch. */
146
- async function findOpenMr(opts) {
147
- const { fetchFn, token, apiBase, projectPath, branch } = opts;
148
- const encoded = encodeURIComponent(projectPath);
149
- const res = await fetchFn(`${apiBase}/projects/${encoded}/merge_requests?source_branch=${encodeURIComponent(branch)}&state=opened`, { headers: { 'PRIVATE-TOKEN': token } });
150
- if (!res.ok)
151
- return undefined;
152
- const data = gitlabMrListSchema.parse(await res.json());
153
- if (data.length === 0)
154
- return undefined;
155
- const mr = data[0];
156
- return { iid: mr.iid, url: mr.web_url };
157
- }
158
- /** Fetch all discussions for an MR. Returns `undefined` on error. */
159
- async function fetchDiscussions(opts) {
160
- const { fetchFn, token, apiBase, projectPath, mrIid } = opts;
161
- const encoded = encodeURIComponent(projectPath);
162
- const res = await fetchFn(`${apiBase}/projects/${encoded}/merge_requests/${mrIid}/discussions?per_page=100`, { headers: { 'PRIVATE-TOKEN': token } });
163
- if (!res.ok)
164
- return undefined;
165
- return gitlabDiscussionsSchema.parse(await res.json());
166
- }
167
- /** Check if a note is an unresolved DiffNote or a Rework: comment. */
168
- function isActionableNote(note, since) {
169
- if (note.system)
170
- return false;
171
- if (isClancyComment(note.body))
172
- return false;
173
- if (since && note.created_at && note.created_at <= since)
174
- return false;
175
- const isUnresolvedDiff = note.type === 'DiffNote' &&
176
- note.resolvable !== false &&
177
- note.resolved !== true;
178
- return isUnresolvedDiff || isReworkComment(note.body);
179
- }
180
- /** Extract feedback comments and discussion IDs from discussions. */
181
- function extractFeedback(discussions, since) {
182
- const pairs = discussions.map((d) => {
183
- const relevantNotes = d.notes
184
- .filter((n) => !n.system && !isClancyComment(n.body))
185
- .filter((n) => !since || !n.created_at || n.created_at > since);
186
- const feedback = relevantNotes
187
- .flatMap((n) => formatNote(n))
188
- .filter((s) => s !== undefined);
189
- const discussionId = feedback.length > 0 && d.id != null ? d.id : undefined;
190
- return { feedback, discussionId };
191
- });
192
- return {
193
- comments: pairs.flatMap((p) => p.feedback),
194
- discussionIds: pairs
195
- .map((p) => p.discussionId)
196
- .filter((id) => id != null),
197
- };
198
- }
199
- /** Format a single note into a feedback string, or empty array if not actionable. */
200
- function formatNote(note) {
201
- const isUnresolvedDiff = note.type === 'DiffNote' &&
202
- note.resolvable !== false &&
203
- note.resolved !== true;
204
- if (isUnresolvedDiff) {
205
- const prefix = note.position?.new_path
206
- ? `[${note.position.new_path}] `
207
- : '';
208
- return [`${prefix}${note.body}`];
209
- }
210
- if (isReworkComment(note.body)) {
211
- return [extractReworkContent(note.body)];
212
- }
213
- return [];
214
- }
215
- //# sourceMappingURL=gitlab.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../../../../src/dev/lifecycle/pull-request/gitlab/gitlab.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { checkMrReviewState, createMergeRequest, fetchMrReviewComments, postMrNote, resolveDiscussions, } from './gitlab.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/dev/lifecycle/pull-request/gitlab/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
@@ -1,2 +0,0 @@
1
- export { checkMrReviewState, createMergeRequest, fetchMrReviewComments, postMrNote, resolveDiscussions, } from './gitlab.js';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/dev/lifecycle/pull-request/gitlab/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Shared pull request creation utility.
3
- *
4
- * Wraps the common POST + error-handling pattern used by all
5
- * git host PR creation functions (GitHub, GitLab, Bitbucket, Azure DevOps).
6
- * Fetch is dependency-injected for testability.
7
- */
8
- import type { PrCreationResult } from '../../../../types/index.js';
9
- /** Minimal fetch signature needed for PR creation. */
10
- type PostPrFetch = (url: string, init: RequestInit) => Promise<Response>;
11
- /** Options for {@link postPullRequest}. */
12
- type PostPrOpts = {
13
- readonly fetchFn: PostPrFetch;
14
- readonly url: string;
15
- readonly headers: Readonly<Record<string, string>>;
16
- readonly body: Readonly<Record<string, unknown>>;
17
- readonly parseSuccess: (json: unknown) => {
18
- readonly url: string;
19
- readonly number: number;
20
- };
21
- readonly isAlreadyExists?: (status: number, text: string) => boolean;
22
- };
23
- /**
24
- * POST a pull request / merge request and return a typed result.
25
- *
26
- * Handles the common try/catch, response parsing, error formatting,
27
- * and "already exists" detection shared by all git host implementations.
28
- *
29
- * @param opts - Request options including fetch, URL, headers, body, and callbacks.
30
- * @returns A typed `PrCreationResult`.
31
- */
32
- export declare function postPullRequest(opts: PostPrOpts): Promise<PrCreationResult>;
33
- /**
34
- * Build a Basic Auth header value from username and token.
35
- *
36
- * Used by Bitbucket Cloud and Azure DevOps for HTTP Basic Auth.
37
- *
38
- * @param username - The username (empty string for AzDO PAT auth).
39
- * @param token - The token or app password.
40
- * @returns The `Basic {base64}` header value.
41
- */
42
- export declare function basicAuth(username: string, token: string): string;
43
- export {};
44
- //# sourceMappingURL=post-pr.d.ts.map