@rsaglobaltech/specgate 0.22.0 → 0.22.2

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 (55) hide show
  1. package/CHANGELOG.md +135 -51
  2. package/README.md +81 -96
  3. package/dist/packages/core/src/domain/CapabilitySpecMerge.js +83 -0
  4. package/dist/packages/core/src/domain/CapabilitySpecMerge.js.map +1 -0
  5. package/dist/packages/core/test/unit/capability-spec-merge.test.js +104 -0
  6. package/dist/packages/core/test/unit/capability-spec-merge.test.js.map +1 -0
  7. package/dist/packages/mcp-spec-driven/src/native-tools.js +1 -1
  8. package/dist/packages/mcp-spec-driven/src/native-tools.js.map +1 -1
  9. package/dist/scripts/agents/commands.js +7 -7
  10. package/dist/scripts/agents/commands.js.map +1 -1
  11. package/dist/scripts/agents/detect.js +1 -0
  12. package/dist/scripts/agents/detect.js.map +1 -1
  13. package/dist/scripts/agents/init.js +13 -0
  14. package/dist/scripts/agents/init.js.map +1 -1
  15. package/dist/scripts/alm/cli.js +3 -2
  16. package/dist/scripts/alm/cli.js.map +1 -1
  17. package/dist/scripts/cli/commands/change/ChangeCommand.js +22 -1
  18. package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -1
  19. package/dist/scripts/cli/commands/change/TicketCommand.js +64 -6
  20. package/dist/scripts/cli/commands/change/TicketCommand.js.map +1 -1
  21. package/dist/scripts/cli/commands/quality/CheckCommand.js +15 -5
  22. package/dist/scripts/cli/commands/quality/CheckCommand.js.map +1 -1
  23. package/dist/scripts/cli/commands/quality/DoctorCommand.js +22 -8
  24. package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -1
  25. package/dist/scripts/docs/journey-storyboard.js +34 -17
  26. package/dist/scripts/docs/journey-storyboard.js.map +1 -1
  27. package/dist/scripts/docs/nav.js +155 -143
  28. package/dist/scripts/docs/nav.js.map +1 -1
  29. package/dist/scripts/docs/record-journey.js +46 -19
  30. package/dist/scripts/docs/record-journey.js.map +1 -1
  31. package/dist/scripts/docs/terminal-storyboard.js +15 -11
  32. package/dist/scripts/docs/terminal-storyboard.js.map +1 -1
  33. package/dist/scripts/draft/drafting-guide.js +4 -0
  34. package/dist/scripts/draft/drafting-guide.js.map +1 -1
  35. package/dist/scripts/draft/ticket-guide.js +4 -0
  36. package/dist/scripts/draft/ticket-guide.js.map +1 -1
  37. package/dist/scripts/harness/init.js +85 -25
  38. package/dist/scripts/harness/init.js.map +1 -1
  39. package/dist/scripts/harness/prompt.js +13 -1
  40. package/dist/scripts/harness/prompt.js.map +1 -1
  41. package/dist/scripts/lib/base-ids.js +7 -0
  42. package/dist/scripts/lib/base-ids.js.map +1 -1
  43. package/dist/scripts/lib/change-base.js +230 -0
  44. package/dist/scripts/lib/change-base.js.map +1 -0
  45. package/dist/scripts/lib/change-overlap.js +234 -0
  46. package/dist/scripts/lib/change-overlap.js.map +1 -0
  47. package/dist/scripts/lib/surface.js +8 -0
  48. package/dist/scripts/lib/surface.js.map +1 -1
  49. package/dist/scripts/lib/ticket-keys.js +48 -3
  50. package/dist/scripts/lib/ticket-keys.js.map +1 -1
  51. package/dist/scripts/merge-capability-spec.js +87 -0
  52. package/dist/scripts/merge-capability-spec.js.map +1 -0
  53. package/dist/scripts/vcs/github-pr.js +1 -1
  54. package/dist/scripts/vcs/github-pr.js.map +1 -1
  55. package/package.json +1 -1
@@ -39,10 +39,13 @@ var __importStar = (this && this.__importStar) || (function () {
39
39
  };
40
40
  })();
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.TICKET_BRANCH = void 0;
42
43
  exports.baseFor = baseFor;
43
44
  exports.ticketKeyFindings = ticketKeyFindings;
44
45
  exports.ticketKeyOf = ticketKeyOf;
45
46
  exports.harnessCommitMessage = harnessCommitMessage;
47
+ exports.prBase = prBase;
48
+ exports.ticketBase = ticketBase;
46
49
  const node_child_process_1 = require("node:child_process");
47
50
  const fs = __importStar(require("node:fs"));
48
51
  const path = __importStar(require("node:path"));
@@ -50,7 +53,7 @@ const diagnostics_1 = require("./diagnostics");
50
53
  const base_ids_1 = require("./base-ids");
51
54
  const GitSafety_1 = require("../../packages/core/src/domain/GitSafety");
52
55
  /** `feature/KAN-13-register-vehicle-entry` → `KAN-13`. */
53
- const TICKET_BRANCH = /^(?:feature|bugfix|hotfix)\/([A-Z][A-Z0-9_]+-\d+)(?:-|$)/;
56
+ exports.TICKET_BRANCH = /^(?:feature|bugfix|hotfix)\/([A-Z][A-Z0-9_]+-\d+)(?:-|$)/;
54
57
  function git(dir, args) {
55
58
  return (0, node_child_process_1.spawnSync)("git", ["-C", dir, ...args], { encoding: "utf8" });
56
59
  }
@@ -73,12 +76,12 @@ function ticketKeyFindings(dir, given) {
73
76
  const branch = git(dir, ["rev-parse", "--abbrev-ref", "HEAD"]);
74
77
  if (branch.status !== 0)
75
78
  return [];
76
- const key = TICKET_BRANCH.exec(branch.stdout.trim())?.[1];
79
+ const key = exports.TICKET_BRANCH.exec(branch.stdout.trim())?.[1];
77
80
  if (!key)
78
81
  return [];
79
82
  let base;
80
83
  try {
81
- base = baseFor(dir, given);
84
+ base = ticketBase(dir, given);
82
85
  }
83
86
  catch {
84
87
  return [];
@@ -137,4 +140,46 @@ function harnessCommitMessage(projectDir, requirement, attempt, maxAttempts) {
137
140
  : `feat(${requirement}): implement via specgate harness`;
138
141
  return `${subject}\n\nAttempt ${attempt}/${maxAttempts}.`;
139
142
  }
143
+ /** `pr.base` from `alm.config.yaml`: the branch a ticket's pull request targets. */
144
+ function prBase(dir) {
145
+ let yaml;
146
+ try {
147
+ yaml = fs.readFileSync(path.join(dir, "alm.config.yaml"), "utf8");
148
+ }
149
+ catch {
150
+ return null;
151
+ }
152
+ const block = /^pr:\s*\n((?:[ \t]+.*\n?)*)/m.exec(yaml)?.[1] ?? "";
153
+ const base = /^[ \t]+base:[ \t]*["']?([^\s"'#]+)/m.exec(block)?.[1];
154
+ if (!base)
155
+ return null;
156
+ try {
157
+ (0, GitSafety_1.assertSafeGitRef)(base, "base");
158
+ }
159
+ catch {
160
+ return null;
161
+ }
162
+ const exists = (ref) => git(dir, ["rev-parse", "--verify", "--quiet", `${ref}^{commit}`]).status === 0;
163
+ const remote = `origin/${base}`;
164
+ if (!exists(base))
165
+ return exists(remote) ? remote : null;
166
+ // Nobody updates their local develop: behind origin it would make every
167
+ // colleague's commit merged from origin look like this ticket's (REQ-148).
168
+ // The local branch only when it already holds origin's, e.g. unpushed work.
169
+ if (!exists(remote))
170
+ return base;
171
+ return git(dir, ["merge-base", "--is-ancestor", remote, base]).status === 0 ? base : remote;
172
+ }
173
+ /**
174
+ * The base a ticket's work is measured against. An explicit `--base` or
175
+ * SPECGATE_BASE first; then `pr.base`, the branch its pull request targets;
176
+ * then the remote's default. With gitflow the remote's default is `main` while
177
+ * the work starts from `develop`: measured from `main`, every commit of
178
+ * `develop` looked like the ticket's (REQ-148).
179
+ */
180
+ function ticketBase(dir, given) {
181
+ if (given || process.env.SPECGATE_BASE)
182
+ return baseFor(dir, given);
183
+ return prBase(dir) ?? baseFor(dir);
184
+ }
140
185
  //# sourceMappingURL=ticket-keys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ticket-keys.js","sourceRoot":"","sources":["../../../scripts/lib/ticket-keys.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBH,0BAaC;AAED,8CA0BC;AAcD,kCAgBC;AAGD,oDAWC;AArGD,2DAA+C;AAC/C,4CAA8B;AAC9B,gDAAkC;AAClC,+CAAwC;AAExC,yCAAyC;AACzC,wEAA4E;AAE5E,0DAA0D;AAC1D,MAAM,aAAa,GAAG,0DAA0D,CAAC;AAEjF,SAAS,GAAG,CAAC,GAAW,EAAE,IAAc;IACtC,OAAO,IAAA,8BAAS,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,yFAAyF;AACzF,SAAgB,OAAO,CAAC,GAAW,EAAE,KAAc;IACjD,MAAM,QAAQ,GAAG,IAAA,sBAAW,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,QAAQ,EAAE,CAAC;QACb,sEAAsE;QACtE,4DAA4D;QAC5D,IAAA,4BAAgB,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QACjD,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;YACnF,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAW,EAAE,KAAc;IAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,IAAmB,CAAC;IACxB,IAAI,CAAC;QACH,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACtD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACpE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,kBAAkB,GAAG,WAAW,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC,MAAM;SACd,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CACtB,IAAA,qBAAO,EAAC,oBAAoB,EAAE,UAAU,GAAG,KAAK,OAAO,mBAAmB,GAAG,GAAG,EAAE;QAChF,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,2BAA2B,GAAG,+DAA+D,GAAG,GAAG;KACzG,CAAC,CACH,CAAC;AACN,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACtD,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAEzC,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wFAAwF;AACxF,SAAgB,WAAW,CAAC,UAAkB,EAAE,WAAmB;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,2BAA2B,WAAW,WAAW,EAAE,GAAG,CAAC,CAAC;IACnF,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACjF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3F,SAAS;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oFAAoF;AACpF,SAAgB,oBAAoB,CAClC,UAAkB,EAClB,WAAmB,EACnB,OAAe,EACf,WAAmB;IAEnB,MAAM,GAAG,GAAG,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,GAAG;QACjB,CAAC,CAAC,GAAG,GAAG,IAAI,WAAW,kCAAkC;QACzD,CAAC,CAAC,QAAQ,WAAW,mCAAmC,CAAC;IAC3D,OAAO,GAAG,OAAO,eAAe,OAAO,IAAI,WAAW,GAAG,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"ticket-keys.js","sourceRoot":"","sources":["../../../scripts/lib/ticket-keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * The git merge driver for `docs/specs/capabilities/<x>/spec.md` (REQ-166).
5
+ *
6
+ * Same contract as `merge-traceability.ts`: git passes %O %A %B, the result is
7
+ * written to %A, and a non-zero exit marks the path unmerged with the markers
8
+ * left in it. `specgate harness init` registers it as `specgate-spec`.
9
+ *
10
+ * With one change per ticket, two branches often archive into the same
11
+ * capability. Git merges by lines, so two different requirements added at the
12
+ * end of the file conflict, and a capability new on both branches is an add/add
13
+ * conflict on the whole file. This merges by requirement instead: different
14
+ * requirements are united, and only a requirement both sides rewrote differently
15
+ * is left to a person — the case `change_overlap` warned about before either
16
+ * branch was merged.
17
+ *
18
+ * The decision is `mergeCapabilitySpec`, pure and tested without git; a file
19
+ * that does not parse as a capability spec goes to git's own line merge.
20
+ */
21
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ var desc = Object.getOwnPropertyDescriptor(m, k);
24
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
25
+ desc = { enumerable: true, get: function() { return m[k]; } };
26
+ }
27
+ Object.defineProperty(o, k2, desc);
28
+ }) : (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ o[k2] = m[k];
31
+ }));
32
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
33
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
34
+ }) : function(o, v) {
35
+ o["default"] = v;
36
+ });
37
+ var __importStar = (this && this.__importStar) || (function () {
38
+ var ownKeys = function(o) {
39
+ ownKeys = Object.getOwnPropertyNames || function (o) {
40
+ var ar = [];
41
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
42
+ return ar;
43
+ };
44
+ return ownKeys(o);
45
+ };
46
+ return function (mod) {
47
+ if (mod && mod.__esModule) return mod;
48
+ var result = {};
49
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
50
+ __setModuleDefault(result, mod);
51
+ return result;
52
+ };
53
+ })();
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.main = main;
56
+ const fs = __importStar(require("node:fs"));
57
+ const node_child_process_1 = require("node:child_process");
58
+ const CapabilitySpecMerge_1 = require("../packages/core/src/domain/CapabilitySpecMerge");
59
+ function main(argv) {
60
+ const [basePath, oursPath, theirsPath] = argv;
61
+ if (!basePath || !oursPath || !theirsPath) {
62
+ process.stderr.write("merge-capability-spec: expected the three paths git passes as %O %A %B.\n" +
63
+ "Fix: this is a git merge driver, not a command to run by hand. See\n" +
64
+ " `specgate harness init`, which registers it.\n");
65
+ return 2;
66
+ }
67
+ const read = (p) => (fs.existsSync(p) ? fs.readFileSync(p, "utf8") : "");
68
+ const result = (0, CapabilitySpecMerge_1.mergeCapabilitySpec)(read(basePath), read(oursPath), read(theirsPath));
69
+ if (result.unparsable) {
70
+ // Not ours to judge: the same line merge git would have done without us.
71
+ const lines = (0, node_child_process_1.spawnSync)("git", ["merge-file", "-L", "ours", "-L", "base", "-L", "theirs", oursPath, basePath, theirsPath], { encoding: "utf8" });
72
+ return lines.status === 0 ? 0 : 1;
73
+ }
74
+ fs.writeFileSync(oursPath, result.content, "utf8");
75
+ if (result.conflicts.length === 0)
76
+ return 0;
77
+ process.stderr.write(`capability spec: ${result.conflicts.length} requirement(s) rewritten differently on both sides: ` +
78
+ `${result.conflicts.join(", ")}\n` +
79
+ "Fix: open the file and, for each conflict, write the requirement as it should be\n" +
80
+ " once both changes hold, deleting the <<<<<<< ======= >>>>>>> lines.\n" +
81
+ " Then `specgate check` confirms the specs and their tests still agree.\n");
82
+ return 1;
83
+ }
84
+ if (require.main === module) {
85
+ process.exit(main(process.argv.slice(2)));
86
+ }
87
+ //# sourceMappingURL=merge-capability-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-capability-spec.js","sourceRoot":"","sources":["../../scripts/merge-capability-spec.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOH,oBAmCC;AAxCD,4CAA8B;AAC9B,2DAA+C;AAE/C,yFAAsF;AAEtF,SAAgB,IAAI,CAAC,IAAc;IACjC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2EAA2E;YACzE,sEAAsE;YACtE,qDAAqD,CACxD,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,IAAA,yCAAmB,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAErF,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,yEAAyE;QACzE,MAAM,KAAK,GAAG,IAAA,8BAAS,EACrB,KAAK,EACL,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1F,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;QACF,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oBAAoB,MAAM,CAAC,SAAS,CAAC,MAAM,uDAAuD;QAChG,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAClC,oFAAoF;QACpF,4EAA4E;QAC5E,8EAA8E,CACjF,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC"}
@@ -49,7 +49,7 @@ async function openOrUpdatePr(cfg, pr, fetchImpl = globalThis.fetch) {
49
49
  if (!token) {
50
50
  throw new Error(`Environment variable ${cfg.tokenEnv} is not set.\n` +
51
51
  "Fix: export a token that may write pull requests to this repository " +
52
- "(a fine-grained token: Contents and Pull requests, read and write).");
52
+ "(a fine-grained token for this repository with Pull requests: read and write; pushing uses your git credentials).");
53
53
  }
54
54
  const headers = {
55
55
  Authorization: `Bearer ${token}`,
@@ -1 +1 @@
1
- {"version":3,"file":"github-pr.js","sourceRoot":"","sources":["../../../scripts/vcs/github-pr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-pr.js","sourceRoot":"","sources":["../../../scripts/vcs/github-pr.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsaglobaltech/specgate",
3
- "version": "0.22.0",
3
+ "version": "0.22.2",
4
4
  "description": "Specs as executable contracts — requirements, scenarios and traceability that CI enforces.",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",