@bluewombat/manager-github 0.8.0 → 0.10.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 (96) hide show
  1. package/README.md +188 -33
  2. package/SPECS.md +60 -24
  3. package/dist/adapter/normalize/intent.d.ts +3 -3
  4. package/dist/adapter/normalize/intent.d.ts.map +1 -1
  5. package/dist/adapter/normalize/intent.js +4 -4
  6. package/dist/adapter/normalize/intent.js.map +1 -1
  7. package/dist/adapter/normalize/normalize.d.ts +5 -1
  8. package/dist/adapter/normalize/normalize.d.ts.map +1 -1
  9. package/dist/adapter/normalize/normalize.js +5 -1
  10. package/dist/adapter/normalize/normalize.js.map +1 -1
  11. package/dist/adapter/run/run-adapter.d.ts +1 -1
  12. package/dist/adapter/run/run-adapter.d.ts.map +1 -1
  13. package/dist/adapter/run/run-adapter.js +29 -2
  14. package/dist/adapter/run/run-adapter.js.map +1 -1
  15. package/dist/adapter/types.d.ts +13 -3
  16. package/dist/adapter/types.d.ts.map +1 -1
  17. package/dist/adapter/types.js +1 -1
  18. package/dist/adapter/types.js.map +1 -1
  19. package/dist/emitter/event/field-matrix.d.ts +1 -1
  20. package/dist/emitter/event/field-matrix.d.ts.map +1 -1
  21. package/dist/emitter/event/field-matrix.js +5 -9
  22. package/dist/emitter/event/field-matrix.js.map +1 -1
  23. package/dist/emitter/github/labels.d.ts +3 -4
  24. package/dist/emitter/github/labels.d.ts.map +1 -1
  25. package/dist/emitter/github/labels.js +9 -9
  26. package/dist/emitter/github/labels.js.map +1 -1
  27. package/dist/emitter/render/render-event.d.ts.map +1 -1
  28. package/dist/emitter/render/render-event.js +13 -42
  29. package/dist/emitter/render/render-event.js.map +1 -1
  30. package/dist/emitter/run/run-emitter.d.ts +1 -1
  31. package/dist/emitter/run/run-emitter.js +3 -3
  32. package/dist/emitter/thread/marker.d.ts +1 -1
  33. package/dist/emitter/thread/marker.d.ts.map +1 -1
  34. package/dist/emitter/thread/marker.js +1 -1
  35. package/dist/emitter/thread/marker.js.map +1 -1
  36. package/dist/emitter/types.d.ts +8 -10
  37. package/dist/emitter/types.d.ts.map +1 -1
  38. package/dist/emitter/types.js +1 -1
  39. package/dist/emitter/types.js.map +1 -1
  40. package/dist/github/blockers.d.ts +24 -0
  41. package/dist/github/blockers.d.ts.map +1 -0
  42. package/dist/github/blockers.js +50 -0
  43. package/dist/github/blockers.js.map +1 -0
  44. package/dist/index.d.ts +1 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +164 -45
  47. package/dist/index.js.map +1 -1
  48. package/dist/label-colors.d.ts +26 -0
  49. package/dist/label-colors.d.ts.map +1 -0
  50. package/dist/label-colors.js +51 -0
  51. package/dist/label-colors.js.map +1 -0
  52. package/dist/listener/delivery/process-tree.d.ts +1 -1
  53. package/dist/listener/delivery/process-tree.js +1 -1
  54. package/dist/listener/run/run-listener.d.ts +1 -1
  55. package/dist/listener/run/run-listener.js +1 -1
  56. package/dist/listener/source/select-events.d.ts +6 -1
  57. package/dist/listener/source/select-events.d.ts.map +1 -1
  58. package/dist/listener/source/select-events.js +9 -2
  59. package/dist/listener/source/select-events.js.map +1 -1
  60. package/dist/listener/types.d.ts +1 -1
  61. package/dist/listener/types.d.ts.map +1 -1
  62. package/dist/listener/types.js +1 -1
  63. package/dist/listener/types.js.map +1 -1
  64. package/dist/manager.d.ts +28 -8
  65. package/dist/manager.d.ts.map +1 -1
  66. package/dist/manager.js +152 -95
  67. package/dist/manager.js.map +1 -1
  68. package/dist/settled.d.ts +5 -4
  69. package/dist/settled.d.ts.map +1 -1
  70. package/dist/settled.js +7 -7
  71. package/dist/settled.js.map +1 -1
  72. package/dist/setup.d.ts +33 -8
  73. package/dist/setup.d.ts.map +1 -1
  74. package/dist/setup.js +117 -19
  75. package/dist/setup.js.map +1 -1
  76. package/dist/state-labels.d.ts +23 -0
  77. package/dist/state-labels.d.ts.map +1 -0
  78. package/dist/state-labels.js +55 -0
  79. package/dist/state-labels.js.map +1 -0
  80. package/dist/submission/lines.d.ts +19 -0
  81. package/dist/submission/lines.d.ts.map +1 -0
  82. package/dist/submission/lines.js +91 -0
  83. package/dist/submission/lines.js.map +1 -0
  84. package/dist/submission/submission.d.ts +16 -6
  85. package/dist/submission/submission.d.ts.map +1 -1
  86. package/dist/submission/submission.js +53 -7
  87. package/dist/submission/submission.js.map +1 -1
  88. package/dist/tickets/list-tickets.d.ts +29 -0
  89. package/dist/tickets/list-tickets.d.ts.map +1 -0
  90. package/dist/tickets/list-tickets.js +98 -0
  91. package/dist/tickets/list-tickets.js.map +1 -0
  92. package/dist/written-fingerprint.d.ts +2 -1
  93. package/dist/written-fingerprint.d.ts.map +1 -1
  94. package/dist/written-fingerprint.js +3 -3
  95. package/dist/written-fingerprint.js.map +1 -1
  96. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../../src/emitter/thread/marker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAE1C,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAExD;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAkBvD;AAED,sDAAsD;AACtD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAErE"}
1
+ {"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../../src/emitter/thread/marker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,iBAAiB,CAAC;AAEzC,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAExD;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAkBvD;AAED,sDAAsD;AACtD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAErE"}
@@ -5,7 +5,7 @@
5
5
  * machine reads the record. The record travels inside an HTML comment, which
6
6
  * GitHub renders as nothing at all, so neither audience pays for the other.
7
7
  */
8
- export const MARKER_TAG = "feature-event";
8
+ export const MARKER_TAG = "ticket-event";
9
9
  export function renderMarker(record) {
10
10
  return `<!-- ${MARKER_TAG} ${JSON.stringify(record)} -->`;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"marker.js","sourceRoot":"","sources":["../../../src/emitter/thread/marker.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;AAE1C,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,OAAO,QAAQ,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5D,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,WAAW,UAAU,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,OAAO,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,UAAU,CAAC,MAAgB,EAAE,OAAe;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC;AAChG,CAAC"}
1
+ {"version":3,"file":"marker.js","sourceRoot":"","sources":["../../../src/emitter/thread/marker.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC;AAEzC,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,OAAO,QAAQ,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5D,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,WAAW,UAAU,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,OAAO,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,UAAU,CAAC,MAAgB,EAAE,OAAe;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC;AAChG,CAAC"}
@@ -1,8 +1,8 @@
1
- /** Domain types owned by FeatureEmitter. Names match the Block perimeter only. */
1
+ /** Domain types owned by Emitter. Names match the Block perimeter only. */
2
2
  export type RunOutcome = "reported" | "duplicate" | "rendered" | "unreportable" | "invalid-invocation" | "interrupted";
3
- export type EventName = "invalid" | "accepted" | "planned" | "progress" | "escalated" | "escalation_reminder" | "resumed" | "submitted" | "done" | "cancelled" | "reject_late";
4
- export type Stage = "plan" | "unit" | "integrating" | "submitting" | "merging";
5
- export type ResumePoint = "planning" | "running" | "integrating";
3
+ export type EventName = "invalid" | "accepted" | "progress" | "escalated" | "escalation_reminder" | "resumed" | "submitted" | "done" | "cancelled" | "reject_late";
4
+ export type Stage = "unit" | "integrating" | "submitting" | "merging";
5
+ export type ResumePoint = "running" | "integrating";
6
6
  /** The Target: one repository. */
7
7
  export type Repository = {
8
8
  owner: string;
@@ -16,9 +16,7 @@ export type EventFields = {
16
16
  stage?: Stage;
17
17
  trace?: string;
18
18
  counters?: Record<string, string>;
19
- plan?: string;
20
19
  priority?: number;
21
- unit?: string;
22
20
  remaining?: number;
23
21
  state?: string;
24
22
  resume_point?: ResumePoint;
@@ -42,10 +40,10 @@ export type Invocation = {
42
40
  maxReportChars: number;
43
41
  /** What `priority` is when nobody chose one, so the comment can say so. */
44
42
  defaultPriority?: number;
45
- /** When set, the Event also lands as `<prefix><event>` on the issue. */
46
- labelPrefix?: string;
47
- /** The label that signals `ready`, so an `escalated` comment can name it. */
48
- readyLabel?: string;
43
+ /** When set, the Event also lands on the issue as its label. */
44
+ stateLabels?: Readonly<Record<EventName, string>>;
45
+ /** The label that signals a resume, so an `escalated` comment can name it. */
46
+ resumeLabel?: string;
49
47
  durationMs: number;
50
48
  /** Extra attempts after the first, on a transport failure, a 5xx, or a rate limit. */
51
49
  requestRetries: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/emitter/types.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,WAAW,GACX,UAAU,GACV,cAAc,GACd,oBAAoB,GACpB,aAAa,CAAC;AAElB,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,WAAW,GACX,qBAAqB,GACrB,SAAS,GACT,WAAW,GACX,MAAM,GACN,WAAW,GACX,aAAa,CAAC;AAElB,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AAE/E,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;AAEjE,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,wEAAwE;AACxE,MAAM,MAAM,WAAW,GAAG;IACxB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW;AACrB,iFAAiF;AACjF;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF,oEAAoE;AACpE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/emitter/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,WAAW,GACX,UAAU,GACV,cAAc,GACd,oBAAoB,GACpB,aAAa,CAAC;AAElB,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,qBAAqB,GACrB,SAAS,GACT,WAAW,GACX,MAAM,GACN,WAAW,GACX,aAAa,CAAC;AAElB,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;AAEpD,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,wEAAwE;AACxE,MAAM,MAAM,WAAW,GAAG;IACxB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW;AACrB,iFAAiF;AACjF;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF,oEAAoE;AACpE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- /** Domain types owned by FeatureEmitter. Names match the Block perimeter only. */
1
+ /** Domain types owned by Emitter. Names match the Block perimeter only. */
2
2
  export {};
3
3
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/emitter/types.ts"],"names":[],"mappings":"AAAA,kFAAkF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/emitter/types.ts"],"names":[],"mappings":"AAAA,2EAA2E"}
@@ -0,0 +1,24 @@
1
+ import type { Repository } from "../repo.js";
2
+ import { type GithubClient } from "./client.js";
3
+ export type IssueList = {
4
+ kind: "listed";
5
+ issues: Record<string, unknown>[];
6
+ } | {
7
+ kind: "unavailable";
8
+ detail: string;
9
+ } | {
10
+ kind: "interrupted";
11
+ };
12
+ export type ListRequest = {
13
+ github: GithubClient;
14
+ repo: Repository;
15
+ number: number;
16
+ deadlineMs: number;
17
+ now: () => number;
18
+ shouldInterrupt: () => boolean;
19
+ };
20
+ /** The issues that block this one, as GitHub holds the dependency. */
21
+ export declare function listBlockers(request: ListRequest): Promise<IssueList>;
22
+ /** The sub-issues of this one: the Tickets of a Feature. */
23
+ export declare function listSubIssues(request: ListRequest): Promise<IssueList>;
24
+ //# sourceMappingURL=blockers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockers.d.ts","sourceRoot":"","sources":["../../src/github/blockers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAc,KAAK,YAAY,EAAe,MAAM,aAAa,CAAC;AAKzE,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAE5B,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,OAAO,CAAC;CAChC,CAAC;AAEF,sEAAsE;AACtE,wBAAsB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAK3E;AAED,4DAA4D;AAC5D,wBAAsB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAE5E"}
@@ -0,0 +1,50 @@
1
+ import { callSignal, readFailure } from "./client.js";
2
+ const PER_PAGE = 100;
3
+ const MAX_PAGES = 10;
4
+ /** The issues that block this one, as GitHub holds the dependency. */
5
+ export async function listBlockers(request) {
6
+ return await listPages(request, "GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by");
7
+ }
8
+ /** The sub-issues of this one: the Tickets of a Feature. */
9
+ export async function listSubIssues(request) {
10
+ return await listPages(request, "GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues");
11
+ }
12
+ async function listPages(request, route) {
13
+ const issues = [];
14
+ for (let page = 1; page <= MAX_PAGES; page += 1) {
15
+ const call = callSignal(request.deadlineMs, request.now, request.shouldInterrupt);
16
+ try {
17
+ const response = await request.github.request(route, {
18
+ owner: request.repo.owner,
19
+ repo: request.repo.name,
20
+ issue_number: request.number,
21
+ per_page: PER_PAGE,
22
+ page,
23
+ request: { signal: call.signal },
24
+ });
25
+ const data = response.data;
26
+ if (!Array.isArray(data)) {
27
+ return { kind: "unavailable", detail: "GitHub answered a list with something else." };
28
+ }
29
+ for (const item of data) {
30
+ if (item !== null && typeof item === "object" && !Array.isArray(item)) {
31
+ issues.push(item);
32
+ }
33
+ }
34
+ if (data.length < PER_PAGE) {
35
+ return { kind: "listed", issues };
36
+ }
37
+ }
38
+ catch (error) {
39
+ if (request.shouldInterrupt()) {
40
+ return { kind: "interrupted" };
41
+ }
42
+ return { kind: "unavailable", detail: readFailure(error).detail };
43
+ }
44
+ finally {
45
+ call.release();
46
+ }
47
+ }
48
+ return { kind: "listed", issues };
49
+ }
50
+ //# sourceMappingURL=blockers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockers.js","sourceRoot":"","sources":["../../src/github/blockers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,SAAS,GAAG,EAAE,CAAC;AAgBrB,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAoB;IACrD,OAAO,MAAM,SAAS,CACpB,OAAO,EACP,yEAAyE,CAC1E,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAoB;IACtD,OAAO,MAAM,SAAS,CAAC,OAAO,EAAE,4DAA4D,CAAC,CAAC;AAChG,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAoB,EAAE,KAAa;IAC1D,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,SAAS,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAClF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;gBACnD,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;gBACzB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;gBACvB,YAAY,EAAE,OAAO,CAAC,MAAM;gBAC5B,QAAQ,EAAE,QAAQ;gBAClB,IAAI;gBACJ,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;aACjC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAe,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,6CAA6C,EAAE,CAAC;YACxF,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtE,MAAM,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;gBAC9B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACjC,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QACpE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import { type CreateManagerResult, type Finding, type ManagerContext, type Manag
2
2
  export { issueNumberFromExternalId, issueNumberFromPayload } from "./issue-number.js";
3
3
  export { payloadHasLabel } from "./labels.js";
4
4
  export type { GithubManagerOptions } from "./manager.js";
5
- export { createGithubManager, DEFAULT_API_BASE, DEFAULT_PRIORITY, DEFAULT_READY_LABEL, DEFAULT_TOKEN_ENV, } from "./manager.js";
5
+ export { createGithubManager, DEFAULT_API_BASE, DEFAULT_FEATURE_READY_LABEL, DEFAULT_MERGE_WHEN_READY_LABEL, DEFAULT_PRIORITY, DEFAULT_RESUME_LABEL, DEFAULT_TICKET_READY_LABEL, DEFAULT_TOKEN_ENV, } from "./manager.js";
6
6
  export { parseRepo, type Repository } from "./repo.js";
7
7
  export { type SetupSettings, wantedLabels } from "./setup.js";
8
8
  /** What `mason init` asks when it runs at a terminal. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,OAAO,EAEZ,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EAGpB,KAAK,WAAW,EAGjB,MAAM,yBAAyB,CAAC;AAWjC,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,yDAAyD;AACzD,wBAAgB,gBAAgB,IAAI,eAAe,EAAE,CA4BpD;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GACxB,OAAO,CAAC,WAAW,CAAC,CA0CtB;AAmBD,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAuB7C;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,mBAAmB,CA0C1E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,CA0BxE;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,EAAE,CAwD/D;AA+FD,iDAAiD;AACjD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAStF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAY7F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EAExB,KAAK,OAAO,EAEZ,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EAIpB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAmBjC,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,yDAAyD;AACzD,wBAAgB,gBAAgB,IAAI,eAAe,EAAE,CAsBpD;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GACxB,OAAO,CAAC,WAAW,CAAC,CAiDtB;AAwDD,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAgC7C;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,mBAAmB,CA6C1E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,CAyBxE;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,EAAE,CA0E/D;AAuKD,iDAAiD;AACjD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAStF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAY7F"}
package/dist/index.js CHANGED
@@ -1,10 +1,12 @@
1
- import { booleanOption, intOption, PRODUCT, rejectUnknownOptions, stringArrayOption, stringOption, } from "@bluewombat/manager-kit";
2
- import { createGithubManager, DEFAULT_API_BASE, DEFAULT_READY_LABEL, DEFAULT_TOKEN_ENV, } from "./manager.js";
1
+ import { booleanOption, EVENT_NAMES, intOption, PRODUCT, rejectUnknownOptions, stringOption, } from "@bluewombat/manager-kit";
2
+ import { resolveLabelColors } from "./label-colors.js";
3
+ import { createGithubManager, DEFAULT_API_BASE, DEFAULT_E2E_LABEL, DEFAULT_FEATURE_READY_LABEL, DEFAULT_MERGE_WHEN_READY_LABEL, DEFAULT_NO_TESTS_LABEL, DEFAULT_RESUME_LABEL, DEFAULT_SKIP_TEST_E2E_LABEL, DEFAULT_TICKET_READY_LABEL, DEFAULT_TOKEN_ENV, } from "./manager.js";
3
4
  import { parseRepo } from "./repo.js";
4
5
  import { runSetup } from "./setup.js";
6
+ import { resolveStateLabels } from "./state-labels.js";
5
7
  export { issueNumberFromExternalId, issueNumberFromPayload } from "./issue-number.js";
6
8
  export { payloadHasLabel } from "./labels.js";
7
- export { createGithubManager, DEFAULT_API_BASE, DEFAULT_PRIORITY, DEFAULT_READY_LABEL, DEFAULT_TOKEN_ENV, } from "./manager.js";
9
+ export { createGithubManager, DEFAULT_API_BASE, DEFAULT_FEATURE_READY_LABEL, DEFAULT_MERGE_WHEN_READY_LABEL, DEFAULT_PRIORITY, DEFAULT_RESUME_LABEL, DEFAULT_TICKET_READY_LABEL, DEFAULT_TOKEN_ENV, } from "./manager.js";
8
10
  export { parseRepo } from "./repo.js";
9
11
  export { wantedLabels } from "./setup.js";
10
12
  /** What `mason init` asks when it runs at a terminal. */
@@ -18,12 +20,6 @@ export function questionsManager() {
18
20
  ? { ok: false, reason: `"${answer}" is not owner/name.` }
19
21
  : { ok: true, value: answer },
20
22
  },
21
- {
22
- key: "labels",
23
- prompt: "Label an issue must carry to be picked up",
24
- fallback: PRODUCT,
25
- parse: (answer) => ({ ok: true, value: [answer] }),
26
- },
27
23
  {
28
24
  key: "defaultProject",
29
25
  prompt: "Project name for issues with no project: label",
@@ -70,10 +66,17 @@ export async function setupManager(context, input) {
70
66
  repo: settings.repo,
71
67
  token,
72
68
  apiBase: settings.apiBase,
73
- readyLabel: settings.readyLabel,
74
- labels: settings.labels,
69
+ resumeLabel: settings.resumeLabel,
70
+ featureReadyLabel: settings.featureReadyLabel,
71
+ ticketReadyLabel: settings.ticketReadyLabel,
72
+ noTestsLabel: settings.noTestsLabel,
73
+ e2eLabel: settings.e2eLabel,
74
+ skipTestE2eLabel: settings.skipTestE2eLabel,
75
+ mergeWhenReadyLabel: settings.mergeWhenReadyLabel,
76
+ sides: settings.sides,
75
77
  defaultProject: settings.defaultProject,
76
- stateLabelPrefix: settings.stateLabelPrefix,
78
+ stateLabels: settings.stateLabels,
79
+ labelColors: settings.labelColors,
77
80
  branch: settings.branch,
78
81
  branchConfigured: typeof context.options.branch === "string",
79
82
  durationMs: context.durationMs,
@@ -86,17 +89,48 @@ const KNOWN_OPTIONS = [
86
89
  "token",
87
90
  "tokenEnv",
88
91
  "apiBase",
89
- "labels",
90
92
  "defaultProject",
91
- "readyLabel",
93
+ "resumeLabel",
94
+ "featureReadyLabel",
95
+ "ticketReadyLabel",
96
+ "noTestsLabel",
97
+ "e2eLabel",
98
+ "skipTestE2eLabel",
99
+ "mergeWhenReadyLabel",
92
100
  "defaultPriority",
93
- "stateLabelPrefix",
101
+ "stateLabels",
102
+ "labelColors",
94
103
  "branch",
95
104
  "remote",
96
105
  "commitAuthor",
97
106
  "keepBranch",
98
107
  "fetch",
99
108
  ];
109
+ /**
110
+ * The label options that belong to one side. `featureReadyLabel` and
111
+ * `mergeWhenReadyLabel` are read only for Features, `ticketReadyLabel` only for
112
+ * Tickets, so each is written under the side it belongs to; the others
113
+ * (`resumeLabel`, `stateLabels`, `defaultProject`, ...) serve both.
114
+ */
115
+ const SIDE_OPTIONS = {
116
+ featureTracker: ["featureReadyLabel", "mergeWhenReadyLabel", "skipTestE2eLabel"],
117
+ ticketTracker: ["ticketReadyLabel", "noTestsLabel", "e2eLabel"],
118
+ };
119
+ const BOTH_SIDES = ["featureTracker", "ticketTracker"];
120
+ /** The first option written under a side that does not use it. */
121
+ function misplacedOption(options, sides) {
122
+ for (const side of BOTH_SIDES) {
123
+ if (sides.includes(side)) {
124
+ continue;
125
+ }
126
+ for (const name of SIDE_OPTIONS[side]) {
127
+ if (options[name] !== undefined) {
128
+ return { name, belongsTo: side };
129
+ }
130
+ }
131
+ }
132
+ return undefined;
133
+ }
100
134
  export const DEFAULT_BRANCH = "main";
101
135
  export const DEFAULT_GIT_HOST = "github.com";
102
136
  /**
@@ -123,19 +157,22 @@ export function createManager(context) {
123
157
  durationMs: context.durationMs,
124
158
  interruptFlag: context.interruptFlag,
125
159
  apiBase: settings.apiBase,
126
- readyLabel: settings.readyLabel,
160
+ resumeLabel: settings.resumeLabel,
161
+ featureReadyLabel: settings.featureReadyLabel,
162
+ ticketReadyLabel: settings.ticketReadyLabel,
163
+ noTestsLabel: settings.noTestsLabel,
164
+ e2eLabel: settings.e2eLabel,
165
+ skipTestE2eLabel: settings.skipTestE2eLabel,
166
+ mergeWhenReadyLabel: settings.mergeWhenReadyLabel,
127
167
  };
128
- if (settings.labels !== undefined) {
129
- options.labels = settings.labels;
130
- }
131
168
  if (settings.defaultProject !== undefined) {
132
169
  options.defaultProject = settings.defaultProject;
133
170
  }
134
171
  if (settings.defaultPriority !== undefined) {
135
172
  options.defaultPriority = settings.defaultPriority;
136
173
  }
137
- if (settings.stateLabelPrefix !== undefined) {
138
- options.stateLabelPrefix = settings.stateLabelPrefix;
174
+ if (settings.stateLabels !== undefined) {
175
+ options.stateLabels = settings.stateLabels;
139
176
  }
140
177
  if (settings.keepBranch !== undefined) {
141
178
  options.keepBranch = settings.keepBranch;
@@ -166,8 +203,7 @@ export function scaffoldManager(context) {
166
203
  options: {
167
204
  repo,
168
205
  tokenEnv,
169
- labels: [PRODUCT],
170
- readyLabel: "ready",
206
+ resumeLabel: DEFAULT_RESUME_LABEL,
171
207
  defaultProject: "app",
172
208
  },
173
209
  nextSteps,
@@ -191,16 +227,31 @@ export function checkManager(context) {
191
227
  ? { level: "fail", label: "token", detail: `${settings.tokenEnv} is not set` }
192
228
  : { level: "ok", label: "token", detail: `${settings.tokenEnv} is set` },
193
229
  ];
194
- if (settings.labels === undefined || settings.labels.length === 0) {
195
- findings.push({
196
- level: "warn",
197
- label: "labels",
198
- detail: "every open issue is admitted; set labels to narrow the Source",
230
+ const served = [
231
+ ...(settings.sides.includes("featureTracker")
232
+ ? [
233
+ `${settings.featureReadyLabel} (Feature)`,
234
+ `${settings.mergeWhenReadyLabel} (Feature)`,
235
+ `${settings.skipTestE2eLabel} (skip e2e)`,
236
+ ]
237
+ : []),
238
+ ...(settings.sides.includes("ticketTracker")
239
+ ? [
240
+ `${settings.ticketReadyLabel} (Ticket)`,
241
+ `${settings.noTestsLabel} (no tests)`,
242
+ `${settings.e2eLabel} (e2e)`,
243
+ ]
244
+ : []),
245
+ `${settings.resumeLabel} (resume)`,
246
+ ];
247
+ findings.push({ level: "ok", label: "labels", detail: served.join(", ") });
248
+ findings.push(settings.stateLabels === undefined
249
+ ? { level: "ok", label: "state labels", detail: "off: no stateLabels" }
250
+ : {
251
+ level: "ok",
252
+ label: "state labels",
253
+ detail: EVENT_NAMES.map((event) => settings.stateLabels?.[event]).join(", "),
199
254
  });
200
- }
201
- else {
202
- findings.push({ level: "ok", label: "labels", detail: settings.labels.join(", ") });
203
- }
204
255
  findings.push(settings.commitAuthor === undefined
205
256
  ? {
206
257
  level: "warn",
@@ -232,6 +283,14 @@ function readOptions(context) {
232
283
  if (!known.ok) {
233
284
  return known;
234
285
  }
286
+ const sides = context.sides ?? BOTH_SIDES;
287
+ const misplaced = misplacedOption(context.options, sides);
288
+ if (misplaced !== undefined) {
289
+ return {
290
+ ok: false,
291
+ reason: `"${misplaced.name}" belongs under ${misplaced.belongsTo}, not under ${sides.join(" and ")}.`,
292
+ };
293
+ }
235
294
  const repoRaw = stringOption(context.options, "repo");
236
295
  if (!repoRaw.ok) {
237
296
  return repoRaw;
@@ -255,25 +314,57 @@ function readOptions(context) {
255
314
  if (!apiBase.ok) {
256
315
  return apiBase;
257
316
  }
258
- const labels = stringArrayOption(context.options, "labels");
259
- if (!labels.ok) {
260
- return labels;
261
- }
262
317
  const defaultProject = stringOption(context.options, "defaultProject");
263
318
  if (!defaultProject.ok) {
264
319
  return defaultProject;
265
320
  }
266
- const readyLabel = stringOption(context.options, "readyLabel");
267
- if (!readyLabel.ok) {
268
- return readyLabel;
321
+ const resumeLabel = stringOption(context.options, "resumeLabel");
322
+ if (!resumeLabel.ok) {
323
+ return resumeLabel;
324
+ }
325
+ const featureReadyLabel = stringOption(context.options, "featureReadyLabel");
326
+ if (!featureReadyLabel.ok) {
327
+ return featureReadyLabel;
328
+ }
329
+ const ticketReadyLabel = stringOption(context.options, "ticketReadyLabel");
330
+ if (!ticketReadyLabel.ok) {
331
+ return ticketReadyLabel;
332
+ }
333
+ const noTestsLabel = stringOption(context.options, "noTestsLabel");
334
+ if (!noTestsLabel.ok) {
335
+ return noTestsLabel;
336
+ }
337
+ const e2eLabel = stringOption(context.options, "e2eLabel");
338
+ if (!e2eLabel.ok) {
339
+ return e2eLabel;
340
+ }
341
+ const skipTestE2eLabel = stringOption(context.options, "skipTestE2eLabel");
342
+ if (!skipTestE2eLabel.ok) {
343
+ return skipTestE2eLabel;
344
+ }
345
+ const mergeWhenReadyLabel = stringOption(context.options, "mergeWhenReadyLabel");
346
+ if (!mergeWhenReadyLabel.ok) {
347
+ return mergeWhenReadyLabel;
269
348
  }
270
349
  const defaultPriority = intOption(context.options, "defaultPriority", 0, 100);
271
350
  if (!defaultPriority.ok) {
272
351
  return defaultPriority;
273
352
  }
274
- const stateLabelPrefix = stringOption(context.options, "stateLabelPrefix");
275
- if (!stateLabelPrefix.ok) {
276
- return stateLabelPrefix;
353
+ const named = namesOption(context.options, "stateLabels");
354
+ if (!named.ok) {
355
+ return named;
356
+ }
357
+ const stateLabels = resolveStateLabels(named.value);
358
+ if (!stateLabels.ok) {
359
+ return stateLabels;
360
+ }
361
+ const namedColours = namesOption(context.options, "labelColors");
362
+ if (!namedColours.ok) {
363
+ return namedColours;
364
+ }
365
+ const labelColors = resolveLabelColors(namedColours.value);
366
+ if (!labelColors.ok) {
367
+ return labelColors;
277
368
  }
278
369
  const branch = stringOption(context.options, "branch");
279
370
  if (!branch.ok) {
@@ -306,11 +397,18 @@ function readOptions(context) {
306
397
  token: token.value,
307
398
  tokenEnv: tokenEnv.value ?? DEFAULT_TOKEN_ENV,
308
399
  apiBase: apiBase.value ?? DEFAULT_API_BASE,
309
- readyLabel: readyLabel.value ?? DEFAULT_READY_LABEL,
310
- labels: labels.value,
400
+ resumeLabel: resumeLabel.value ?? DEFAULT_RESUME_LABEL,
401
+ featureReadyLabel: featureReadyLabel.value ?? DEFAULT_FEATURE_READY_LABEL,
402
+ ticketReadyLabel: ticketReadyLabel.value ?? DEFAULT_TICKET_READY_LABEL,
403
+ noTestsLabel: noTestsLabel.value ?? DEFAULT_NO_TESTS_LABEL,
404
+ e2eLabel: e2eLabel.value ?? DEFAULT_E2E_LABEL,
405
+ skipTestE2eLabel: skipTestE2eLabel.value ?? DEFAULT_SKIP_TEST_E2E_LABEL,
406
+ mergeWhenReadyLabel: mergeWhenReadyLabel.value ?? DEFAULT_MERGE_WHEN_READY_LABEL,
407
+ sides,
311
408
  defaultProject: defaultProject.value,
312
409
  defaultPriority: defaultPriority.value,
313
- stateLabelPrefix: stateLabelPrefix.value,
410
+ stateLabels: stateLabels.labels,
411
+ labelColors: labelColors.colors,
314
412
  branch: branch.value ?? DEFAULT_BRANCH,
315
413
  remote: remote.value ?? `https://${DEFAULT_GIT_HOST}/${repo.owner}/${repo.name}.git`,
316
414
  commitAuthor: author?.value,
@@ -319,6 +417,27 @@ function readOptions(context) {
319
417
  },
320
418
  };
321
419
  }
420
+ /** An option that is a mapping of names to non-empty strings: `{ done: "mason:done" }`. */
421
+ function namesOption(options, name) {
422
+ const raw = options[name];
423
+ if (raw === undefined) {
424
+ return { ok: true, value: undefined };
425
+ }
426
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
427
+ return { ok: false, reason: `managerOptions "${name}" must be a mapping of names to labels.` };
428
+ }
429
+ const value = {};
430
+ for (const [key, label] of Object.entries(raw)) {
431
+ if (typeof label !== "string" || label.trim().length === 0) {
432
+ return {
433
+ ok: false,
434
+ reason: `managerOptions "${name}.${key}" must be a non-empty string.`,
435
+ };
436
+ }
437
+ value[key] = label;
438
+ }
439
+ return { ok: true, value };
440
+ }
322
441
  /** `Name <email>`, the form `git log` prints. */
323
442
  export function parseAuthor(text) {
324
443
  const match = /^\s*(.+?)\s*<([^<>\s]+@[^<>\s]+)>\s*$/.exec(text);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,SAAS,EAIT,OAAO,EACP,oBAAoB,EAEpB,iBAAiB,EACjB,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAElB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AACvD,OAAO,EAAsB,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,yDAAyD;AACzD,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL;YACE,GAAG,EAAE,MAAM;YACX,MAAM,EAAE,gCAAgC;YACxC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAChB,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI;gBACxB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,MAAM,sBAAsB,EAAE;gBACzD,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;SAClC;QACD;YACE,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,2CAA2C;YACnD,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;SACnD;QACD;YACE,GAAG,EAAE,gBAAgB;YACrB,MAAM,EAAE,gDAAgD;YACxD,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,GAAG,EAAE,UAAU;YACf,MAAM,EAAE,wCAAwC;YAChD,QAAQ,EAAE,iBAAiB;SAC5B;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAuB,EACvB,KAAyB;IAEzB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;aACzF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,OAAO;oBACX,OAAO,EAAE,2BAA2B;oBACpC,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,cAAc;iBAC3C;aACF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,QAAQ,CACnB;QACE,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,gBAAgB,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ;QAC5D,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,EACD,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,MAAM;IACN,OAAO;IACP,UAAU;IACV,SAAS;IACT,QAAQ;IACR,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,YAAY;IACZ,OAAO;CACC,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAuB7C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAuB;IACnD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EACJ,2BAA2B,QAAQ,CAAC,QAAQ,IAAI;gBAChD,uEAAuE;SAC1E,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK;QACL,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACnC,CAAC;IACD,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IACnD,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;IACrD,CAAC;IACD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IACvD,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IAC3C,CAAC;IACD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5F,2EAA2E;IAC3E,2EAA2E;IAC3E,4BAA4B;IAC5B,MAAM,QAAQ,GACZ,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACjF,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ;QAC1B,CAAC,CAAC,iBAAiB,CAAC;IACxB,2EAA2E;IAC3E,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,wDAAwD,CAAC,CAAC;IACxF,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,SAAS,CAAC,OAAO,CACf,uFAAuF,CACxF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP,IAAI;YACJ,QAAQ;YACR,MAAM,EAAE,CAAC,OAAO,CAAC;YACjB,UAAU,EAAE,OAAO;YACnB,cAAc,EAAE,KAAK;SACtB;QACD,SAAS;KACV,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,YAAY,CAAC,OAAuB;IAClD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAc;QAC1B;YACE,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;SACvD;QACD,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAC9C,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,aAAa,EAAE;YAC9E,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,SAAS,EAAE;KAC3E,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,+DAA+D;SACxE,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,QAAQ,CAAC,IAAI,CACX,QAAQ,CAAC,YAAY,KAAK,SAAS;QACjC,CAAC,CAAC;YACE,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,eAAe;YACtB,MAAM,EACJ,uFAAuF;SAC1F;QACH,CAAC,CAAC;YACE,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG;SACzE,CACN,CAAC;IACF,QAAQ,CAAC,IAAI,CACX,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;QACpC,CAAC,CAAC;YACE,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,WAAW,QAAQ,CAAC,QAAQ,EAAE;SACzD;QACH,CAAC,CAAC;YACE,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,4EAA4E;SACvG,CACN,CAAC;IACF,4EAA4E;IAC5E,oCAAoC;IACpC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,OAAuB;IAC1C,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC;IAClF,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;IAC5E,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACvE,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9E,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;QACxB,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC3E,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACnE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9F,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7C,IAAI,cAAc,KAAK,SAAS,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;QACzE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yDAAyD,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE;YACR,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,QAAQ,CAAC,KAAK,IAAI,iBAAiB;YAC7C,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,gBAAgB;YAC1C,UAAU,EAAE,UAAU,CAAC,KAAK,IAAI,mBAAmB;YACnD,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,cAAc,EAAE,cAAc,CAAC,KAAK;YACpC,eAAe,EAAE,eAAe,CAAC,KAAK;YACtC,gBAAgB,EAAE,gBAAgB,CAAC,KAAK;YACxC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,cAAc;YACtC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,WAAW,gBAAgB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,MAAM;YACpF,YAAY,EAAE,MAAM,EAAE,KAAK;YAC3B,UAAU,EAAE,UAAU,CAAC,KAAK;YAC5B,WAAW,EAAE,cAA0C;SACxD;KACF,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,WAAW,CACzB,IAAY;IAEZ,MAAM,KAAK,GAAG,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACvD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,iEAAiE,OAAO,KAAK,OAAO,iBAAiB;SAC9G,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAuB;IACtD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjE,OAAO;QACL,MAAM;QACN,MAAM;QACN,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * What `labelColors` can colour. Keys name what a label is for, never the label itself, so
3
+ * renaming a label (`stateLabels`, `resumeLabel`, ...) does not lose its colour.
4
+ *
5
+ * One key per label, none for a group: `feature-ready`, `ticket-ready` and `merge-when-ready`
6
+ * for the three ready labels, `no-tests` for the label that skips the tests written first,
7
+ * `e2e` for the Ticket that holds the acceptance suite, `skip-test-e2e` for the Feature that
8
+ * is not put through it,
9
+ * `resume` for the resume label, `project` for the
10
+ * `project:<name>` label, and `state-<event>` for the label of each Event. When the Feature and
11
+ * the Ticket ready labels are one label (the same name), `feature-ready` colours it.
12
+ */
13
+ export declare const LABEL_COLOR_KEYS: readonly ["feature-ready", "ticket-ready", "merge-when-ready", "no-tests", "e2e", "skip-test-e2e", "resume", "project", ...("state-invalid" | "state-accepted" | "state-progress" | "state-escalated" | "state-escalation_reminder" | "state-resumed" | "state-submitted" | "state-done" | "state-cancelled" | "state-reject_late")[]];
14
+ export type LabelColorKey = (typeof LABEL_COLOR_KEYS)[number];
15
+ /** The colours the config chose, by what the label is for, six lowercase hex digits each. */
16
+ export type LabelColors = Readonly<Partial<Record<LabelColorKey, string>>>;
17
+ export type LabelColorsResult = {
18
+ ok: true;
19
+ colors: LabelColors | undefined;
20
+ } | {
21
+ ok: false;
22
+ reason: string;
23
+ };
24
+ /** The colours from the `labelColors` option. A colour is six hex digits, with or without `#`. */
25
+ export declare function resolveLabelColors(named: Record<string, string> | undefined): LabelColorsResult;
26
+ //# sourceMappingURL=label-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-colors.d.ts","sourceRoot":"","sources":["../src/label-colors.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,wUAUnB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,6FAA6F;AAC7F,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAE3E,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAIlC,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,iBAAiB,CAuB/F"}