sfdx-hardis 8.21.0 → 8.22.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 (68) hide show
  1. package/defaults/monitoring/gitignore +56 -0
  2. package/lib/commands/hardis/org/configure/monitoring.js +4 -0
  3. package/lib/commands/hardis/org/configure/monitoring.js.map +1 -1
  4. package/lib/commands/hardis/ticket/get.d.ts +4 -0
  5. package/lib/commands/hardis/ticket/get.js +106 -8
  6. package/lib/commands/hardis/ticket/get.js.map +1 -1
  7. package/lib/commands/hardis/ticket/list.d.ts +23 -0
  8. package/lib/commands/hardis/ticket/list.js +246 -0
  9. package/lib/commands/hardis/ticket/list.js.map +1 -0
  10. package/lib/commands/hardis/ticket/meta.d.ts +10 -0
  11. package/lib/commands/hardis/ticket/meta.js +122 -0
  12. package/lib/commands/hardis/ticket/meta.js.map +1 -0
  13. package/lib/commands/hardis/ticket/post-comment.d.ts +9 -0
  14. package/lib/commands/hardis/ticket/post-comment.js +221 -17
  15. package/lib/commands/hardis/ticket/post-comment.js.map +1 -1
  16. package/lib/commands/hardis/ticket/set-label.d.ts +10 -0
  17. package/lib/commands/hardis/ticket/set-label.js +120 -0
  18. package/lib/commands/hardis/ticket/set-label.js.map +1 -0
  19. package/lib/commands/hardis/ticket/whoami.d.ts +10 -0
  20. package/lib/commands/hardis/ticket/whoami.js +96 -0
  21. package/lib/commands/hardis/ticket/whoami.js.map +1 -0
  22. package/lib/common/metadata-utils/metadataList.js +7 -0
  23. package/lib/common/metadata-utils/metadataList.js.map +1 -1
  24. package/lib/common/ticketProvider/ahaProvider.d.ts +42 -0
  25. package/lib/common/ticketProvider/ahaProvider.js +235 -2
  26. package/lib/common/ticketProvider/ahaProvider.js.map +1 -1
  27. package/lib/common/ticketProvider/azureBoardsProvider.d.ts +52 -0
  28. package/lib/common/ticketProvider/azureBoardsProvider.js +307 -5
  29. package/lib/common/ticketProvider/azureBoardsProvider.js.map +1 -1
  30. package/lib/common/ticketProvider/index.d.ts +13 -0
  31. package/lib/common/ticketProvider/index.js +38 -0
  32. package/lib/common/ticketProvider/index.js.map +1 -1
  33. package/lib/common/ticketProvider/jiraProvider.d.ts +54 -0
  34. package/lib/common/ticketProvider/jiraProvider.js +306 -4
  35. package/lib/common/ticketProvider/jiraProvider.js.map +1 -1
  36. package/lib/common/ticketProvider/serviceNowProvider.d.ts +45 -1
  37. package/lib/common/ticketProvider/serviceNowProvider.js +329 -9
  38. package/lib/common/ticketProvider/serviceNowProvider.js.map +1 -1
  39. package/lib/common/ticketProvider/ticketProviderRoot.d.ts +28 -0
  40. package/lib/common/ticketProvider/ticketProviderRoot.js +52 -0
  41. package/lib/common/ticketProvider/ticketProviderRoot.js.map +1 -1
  42. package/lib/common/ticketProvider/utils/markdownToTicketFormats.js +7 -2
  43. package/lib/common/ticketProvider/utils/markdownToTicketFormats.js.map +1 -1
  44. package/lib/common/ticketProvider/utils/ticketComment.d.ts +17 -3
  45. package/lib/common/ticketProvider/utils/ticketComment.js.map +1 -1
  46. package/lib/common/ticketProvider/utils/ticketDetails.d.ts +11 -0
  47. package/lib/common/ticketProvider/utils/ticketDetails.js +4 -0
  48. package/lib/common/ticketProvider/utils/ticketDetails.js.map +1 -1
  49. package/lib/common/ticketProvider/utils/ticketOperations.d.ts +103 -0
  50. package/lib/common/ticketProvider/utils/ticketOperations.js +116 -0
  51. package/lib/common/ticketProvider/utils/ticketOperations.js.map +1 -0
  52. package/lib/common/ticketProvider/utils/ticketQualify.d.ts +117 -0
  53. package/lib/common/ticketProvider/utils/ticketQualify.js +207 -0
  54. package/lib/common/ticketProvider/utils/ticketQualify.js.map +1 -0
  55. package/lib/common/utils/orgUtils.js +12 -2
  56. package/lib/common/utils/orgUtils.js.map +1 -1
  57. package/lib/i18n/de.json +48 -0
  58. package/lib/i18n/en.json +48 -0
  59. package/lib/i18n/es.json +48 -0
  60. package/lib/i18n/fr.json +48 -0
  61. package/lib/i18n/it.json +48 -0
  62. package/lib/i18n/ja.json +48 -0
  63. package/lib/i18n/nl.json +48 -0
  64. package/lib/i18n/pl.json +48 -0
  65. package/lib/i18n/pt-BR.json +48 -0
  66. package/oclif.lock +21 -21
  67. package/oclif.manifest.json +11646 -10981
  68. package/package.json +6 -5
@@ -0,0 +1,56 @@
1
+ # Salesforce cache
2
+ .sf/
3
+ .sfdx/
4
+ .localdevserver/
5
+ deploy-options.json
6
+
7
+ # LWC VSCode autocomplete
8
+ **/lwc/jsconfig.json
9
+
10
+ # LWC Jest coverage reports
11
+ coverage/
12
+
13
+ # Logs
14
+ logs
15
+ *.log
16
+ npm-debug.log*
17
+ yarn-debug.log*
18
+ yarn-error.log*
19
+
20
+ # Dependency directories
21
+ node_modules/
22
+
23
+ # Eslint cache
24
+ .eslintcache
25
+
26
+ # MacOS system files
27
+ .DS_Store
28
+
29
+ # Windows system files
30
+ Thumbs.db
31
+ ehthumbs.db
32
+ [Dd]esktop.ini
33
+ $RECYCLE.BIN/
34
+
35
+ # Local environment variables
36
+ .env
37
+
38
+ # Python Salesforce Functions
39
+ **/__pycache__/
40
+ **/.venv/
41
+ **/venv/
42
+
43
+ # Generic stuff
44
+ .cache/
45
+ .vscode/
46
+
47
+ # sfdx-hardis temporary / reporting folders
48
+ config/user/
49
+ hardis-report/
50
+
51
+ # Sensitive metadatas whose content should never be backupped !
52
+ **/*.crt-meta.xml
53
+ **/*.connectedApp-meta.xml
54
+
55
+ # Metadata that we'll never care about
56
+ **/cleanDataServices/
@@ -207,6 +207,10 @@ The free [Salesforce DevOps with sfdx-hardis](https://sfdx-hardis-training.cloud
207
207
  await fs.remove('README.md');
208
208
  }
209
209
  await fs.copy(path.join(PACKAGE_ROOT_DIR, 'defaults/monitoring', '.'), process.cwd(), { overwrite: true });
210
+ // npm never publishes a file named .gitignore, so the package ships it as gitignore
211
+ if (fs.existsSync('gitignore')) {
212
+ await fs.move('gitignore', '.gitignore', { overwrite: true });
213
+ }
210
214
  }
211
215
  // The CI/CD repository that deploys to this org: the AGENTS.md written by the backup tells coding agents to search it too
212
216
  const deploymentRepositoryChange = await resolveDeploymentRepositoryChange(this, {
@@ -1 +1 @@
1
- {"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/configure/monitoring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../../../../src/commands/hardis/org/configure/monitoring.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ export default class TicketGet extends SfCommand<any> {
7
7
  static flags: any;
8
8
  static requiresProject: boolean;
9
9
  run(): Promise<AnyJson>;
10
+ /** One ticket, with the scope check and the marker; every failure carries a stable name when it has one */
11
+ private fetchTicket;
12
+ private accountIds;
13
+ private myAccountId;
10
14
  private resolveTicketId;
11
15
  /** Short console recap: the full payload is in --json, the log only needs to say what was found */
12
16
  private logSummary;
@@ -8,6 +8,8 @@ import { isCI, uxLog } from '../../../common/utils/index.js';
8
8
  import { prompts } from '../../../common/utils/prompts.js';
9
9
  import { TicketProvider, ticketDetailsProviderKeys } from '../../../common/ticketProvider/index.js';
10
10
  import { renderTicketDetailsMarkdown } from '../../../common/ticketProvider/utils/ticketDetails.js';
11
+ import { TICKET_ERROR } from '../../../common/ticketProvider/utils/ticketOperations.js';
12
+ import { assertProjectAllowed, isTicketMarked, parseAllowedProjects } from '../../../common/ticketProvider/utils/ticketQualify.js';
11
13
  import { t } from '../../../common/utils/i18n.js';
12
14
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
13
15
  const messages = Messages.loadMessages('sfdx-hardis', 'org');
@@ -29,6 +31,14 @@ It returns:
29
31
  - **Attachments**, downloaded next to the report so images can be looked at and documents opened.
30
32
  - **Possible manual actions:** the lines of the ticket mentioning an operation that deployable metadata will not carry (permission set assignment, org setting, scheduled job, data load...). Each one that survives the design phase should become an [sfdx-hardis deployment action](${'https://sfdx-hardis.cloudity.com/hardis/project/action/create/'}), so it is replayed in every org rather than done by hand once.
31
33
 
34
+ ### Several tickets, identifiers, scope and marker
35
+
36
+ - \`--id a,b,c\` reads several tickets in one run (one start of the CLI for the whole batch). The JSON then holds \`tickets\`: one entry per identifier, in the order asked, either \`{id, status: "ok", ticket}\` or \`{id, status: "failed", error: {name, message}}\`. A failure never stops the others; the command fails only when no ticket could be read. With a single identifier the output stays \`ticket\`. \`--output-file\` needs a single identifier.
37
+ - \`project\`, \`assigneeId\`, \`reporterId\` and \`comments[].authorId\` carry the account ids, the same ones \`ticket whoami\` returns (JIRA Cloud \`accountId\`, JIRA Server / Data Center user name, Azure Boards identity id). On Azure Boards \`project\` is the team project of the work item itself, which may differ from the project of the repository.
38
+ - \`--allowed-projects a,b\` fails with \`TicketOutOfScope\` when the ticket belongs to another project (per ticket in a batch).
39
+ - \`--marker "<prefix>"\` and \`--marker-label <label>\` fill \`markedByMe\`: true when the ticket carries the label, or when the authenticated account already posted a comment starting with the prefix (emoji and whitespace ignored). Comments of other accounts never count. Without these flags \`markedByMe\` is null.
40
+ - \`--skip-comments\` does not return the comments (faster on long tickets). With \`--marker\` they are still read for the check.
41
+
32
42
  ### Provider detection
33
43
 
34
44
  The ticketing system is deduced from the shape of the identifier, so \`--provider\` is only needed to disambiguate:
@@ -70,12 +80,19 @@ sf hardis ticket get --id ACME-4567 --agent --json
70
80
  \`\`\`
71
81
  `;
72
82
  static examples = [
83
+ // JIRA
73
84
  '$ sf hardis:ticket:get --id ACME-4567',
74
85
  '$ sf hardis:ticket:get --id ACME-4567 --agent --json',
75
- '$ sf hardis:ticket:get --id INC0012345 --output-file docs/INC0012345/ticket-extract.md',
86
+ '$ sf hardis:ticket:get --id ACME-1,ACME-2,ACME-3 --allowed-projects ACME --marker "Automatic qualification" --marker-label ia-qualified --skip-attachments --agent --json',
87
+ // Azure Boards
76
88
  '$ sf hardis:ticket:get --id AB-4567 --provider azure --attachments-dir ./ticket-attachments',
89
+ '$ sf hardis:ticket:get --id 1234,1235 --provider azure --skip-comments --agent --json',
90
+ // ServiceNow
91
+ '$ sf hardis:ticket:get --id INC0012345 --output-file docs/INC0012345/ticket-extract.md',
92
+ '$ sf hardis:ticket:get --id STRY0010001 --allowed-projects rm_story --agent --json',
93
+ // Aha!
77
94
  '$ sf hardis:ticket:get --id PROD-12 --provider aha --agent --json',
78
- '$ sf hardis:ticket:get --id ACME-4567 --skip-attachments --agent --json',
95
+ '$ sf hardis:ticket:get --id PROD-12 --provider aha --skip-attachments --marker-label ia-qualified --agent --json',
79
96
  ];
80
97
  static flags = {
81
98
  agent: Flags.boolean({
@@ -84,7 +101,7 @@ sf hardis ticket get --id ACME-4567 --agent --json
84
101
  }),
85
102
  id: Flags.string({
86
103
  char: 'i',
87
- description: 'Ticket identifier: JIRA key or Aha! feature (ACME-123), Azure Boards work item (1234 or AB-1234) or ServiceNow number (INC0012345)',
104
+ description: 'Ticket identifier: JIRA key or Aha! feature (ACME-123), Azure Boards work item (1234 or AB-1234) or ServiceNow number (INC0012345). Separate several identifiers with commas',
88
105
  }),
89
106
  provider: Flags.string({
90
107
  char: 'p',
@@ -98,6 +115,19 @@ sf hardis ticket get --id ACME-4567 --agent --json
98
115
  'attachments-dir': Flags.string({
99
116
  description: 'Folder the attachments are downloaded into. Defaults to a temporary folder, or to <output-file folder>/attachments when --output-file is set',
100
117
  }),
118
+ 'allowed-projects': Flags.string({
119
+ description: 'Comma-separated projects the ticket must belong to (TicketOutOfScope otherwise)',
120
+ }),
121
+ marker: Flags.string({
122
+ description: 'Comment prefix: markedByMe is true when the authenticated account already posted a comment starting with it',
123
+ }),
124
+ 'marker-label': Flags.string({
125
+ description: 'Label: markedByMe is true when the ticket carries it',
126
+ }),
127
+ 'skip-comments': Flags.boolean({
128
+ default: false,
129
+ description: 'Do not return the comments (faster on long tickets)',
130
+ }),
101
131
  'skip-attachments': Flags.boolean({
102
132
  default: false,
103
133
  description: 'List the attachments without downloading them',
@@ -124,18 +154,47 @@ sf hardis ticket get --id ACME-4567 --agent --json
124
154
  async run() {
125
155
  const { flags } = await this.parse(TicketGet);
126
156
  const agentMode = flags.agent === true;
127
- const ticketId = await this.resolveTicketId(flags.id, agentMode);
157
+ const ticketIds = (await this.resolveTicketId(flags.id, agentMode))
158
+ .split(',')
159
+ .map((id) => id.trim())
160
+ .filter(Boolean);
128
161
  const outputFile = flags['output-file'] || null;
162
+ if (ticketIds.length > 1 && outputFile) {
163
+ throw new SfError(t('ticketGetOutputFileSingleId'));
164
+ }
129
165
  const attachmentsDir = flags['attachments-dir'] || (outputFile ? path.join(path.dirname(outputFile), 'attachments') : undefined);
130
- const details = await TicketProvider.getTicketDetails(ticketId, {
166
+ const fetchOptions = {
131
167
  providerKey: flags.provider,
132
168
  downloadAttachments: flags['skip-attachments'] !== true,
133
169
  attachmentsDir,
134
170
  maxAttachmentBytes: flags['max-attachment-size'] * 1024 * 1024,
135
- });
136
- if (!details) {
137
- throw new SfError(t('ticketGetNotFound', { ticketId }));
171
+ allowedProjects: parseAllowedProjects(flags['allowed-projects']),
172
+ marker: flags.marker || null,
173
+ markerLabel: flags['marker-label'] || null,
174
+ skipComments: flags['skip-comments'] === true,
175
+ };
176
+ // Several identifiers: one start of the CLI for the whole batch, and a failure never stops the others
177
+ if (ticketIds.length > 1) {
178
+ const tickets = [];
179
+ for (const id of ticketIds) {
180
+ try {
181
+ const ticket = await this.fetchTicket(id, fetchOptions);
182
+ this.logSummary(ticket);
183
+ tickets.push({ id, status: 'ok', ticket: ticket });
184
+ }
185
+ catch (e) {
186
+ uxLog('warning', this, c.yellow(`[TicketGet] ${id}: ${e.message}`));
187
+ tickets.push({ id, status: 'failed', error: { name: e.name || 'Error', message: e.message } });
188
+ }
189
+ }
190
+ const fetched = tickets.filter((ticket) => ticket.status === 'ok').length;
191
+ if (fetched === 0) {
192
+ process.exitCode = 1;
193
+ }
194
+ return { outputString: t('ticketGetBatchSummary', { fetched, total: ticketIds.length }), tickets };
138
195
  }
196
+ const ticketId = ticketIds[0] || '';
197
+ const details = await this.fetchTicket(ticketId, fetchOptions);
139
198
  let writtenFile = null;
140
199
  if (outputFile) {
141
200
  await fs.ensureDir(path.dirname(path.resolve(outputFile)));
@@ -151,6 +210,45 @@ sf hardis ticket get --id ACME-4567 --agent --json
151
210
  outputFile: writtenFile,
152
211
  };
153
212
  }
213
+ /** One ticket, with the scope check and the marker; every failure carries a stable name when it has one */
214
+ async fetchTicket(ticketId, options) {
215
+ const details = await TicketProvider.getTicketDetails(ticketId, {
216
+ providerKey: options.providerKey,
217
+ downloadAttachments: options.downloadAttachments,
218
+ attachmentsDir: options.attachmentsDir,
219
+ maxAttachmentBytes: options.maxAttachmentBytes,
220
+ // The prefix check needs the comments even when they are not returned
221
+ skipComments: options.skipComments && !options.marker,
222
+ });
223
+ if (!details) {
224
+ throw new SfError(t('ticketGetNotFound', { ticketId }), TICKET_ERROR.notFound);
225
+ }
226
+ assertProjectAllowed(details.id, details.project, options.allowedProjects);
227
+ if (options.marker || options.markerLabel) {
228
+ const myId = options.marker ? await this.myAccountId(details.provider, ticketId, options.providerKey) : null;
229
+ details.markedByMe = isTicketMarked({
230
+ labels: details.labels,
231
+ comments: details.comments.map((comment) => ({ authorId: comment.authorId ?? null, body: comment.body })),
232
+ myId,
233
+ prefix: options.marker,
234
+ label: options.markerLabel,
235
+ });
236
+ }
237
+ if (options.skipComments) {
238
+ details.comments = [];
239
+ }
240
+ return details;
241
+ }
242
+ // The authenticated account does not change during a run: the connector is resolved and asked once
243
+ // per ticketing system, keyed by the system the ticket was read from
244
+ accountIds = new Map();
245
+ async myAccountId(system, ticketId, providerKey) {
246
+ if (!this.accountIds.has(system)) {
247
+ const { provider } = await TicketProvider.resolveProvider({ ticketId, providerKey });
248
+ this.accountIds.set(system, (await provider.whoAmI()).id);
249
+ }
250
+ return this.accountIds.get(system) ?? null;
251
+ }
154
252
  async resolveTicketId(flagValue, agentMode) {
155
253
  if (flagValue) {
156
254
  return flagValue.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/hardis/ticket/get.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAqB,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACvH,OAAO,EAAiB,2BAA2B,EAAE,MAAM,uDAAuD,CAAC;AACnH,OAAO,EAAE,CAAC,EAAE,MAAM,+BAA+B,CAAC;AAElD,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,SAAc;IAC5C,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;IAE5B,MAAM,CAAC,WAAW,GAAG;;;;;;;;;;;;;;yRAc2P,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCxV,CAAC;IAEO,MAAM,CAAC,QAAQ,GAAG;QACvB,uCAAuC;QACvC,sDAAsD;QACtD,wFAAwF;QACxF,6FAA6F;QAC7F,mEAAmE;QACnE,yEAAyE;KAC1E,CAAC;IAEK,MAAM,CAAC,KAAK,GAAQ;QACzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,uDAAuD;SACrE,CAAC;QACF,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC;YACf,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,oIAAoI;SAClJ,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,yBAAyB,EAAE;YACpC,WAAW,EAAE,uEAAuE;SACrF,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,kFAAkF;SAChG,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC9B,WAAW,EAAE,8IAA8I;SAC5J,CAAC;QACF,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC;YAChC,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+CAA+C;SAC7D,CAAC;QACF,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC;YACnC,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,8EAA8E;SAC5F,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;SAC9C,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,WAAW,EAAE,+DAA+D;SAC7E,CAAC;KACH,CAAC;IAEF,qEAAqE;IAC9D,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;IAEtC,sBAAsB;IAEf,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;QAChD,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEjI,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YAC9D,WAAW,EAAE,KAAK,CAAC,QAAyC;YAC5D,mBAAmB,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAAK,IAAI;YACvD,cAAc;YACd,kBAAkB,EAAE,KAAK,CAAC,qBAAqB,CAAC,GAAG,IAAI,GAAG,IAAI;SAC/D,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;YACtE,WAAW,GAAG,UAAU,CAAC;YACzB,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO;YACL,YAAY,EAAE,WAAW,OAAO,CAAC,QAAQ,WAAW,OAAO,CAAC,EAAE,EAAE;YAChE,iGAAiG;YACjG,MAAM,EAAE,OAA6B;YACrC,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,SAA6B,EAAE,SAAkB;QAC7E,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC3B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,CAAC,mBAAmB,CAAC;YAC/B,WAAW,EAAE,CAAC,CAAC,8BAA8B,CAAC;YAC9C,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mGAAmG;IAC3F,UAAU,CAAC,OAAsB;QACvC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChF,KAAK,CACH,KAAK,EACL,IAAI,EACJ,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,kBAAkB,EAAE;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,GAAG;YAC7B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG;YACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YACjC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;YACvC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM;SACtD,CAAC,CACH,CACF,CAAC;QACF,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvF,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC3C,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,UAAU,CAAC,QAAQ,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/H,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/hardis/ticket/get.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { AnyJson } from '@salesforce/ts-types';
3
+ import { TicketSearchCriteria, TicketSearchResult } from '../../../common/ticketProvider/utils/ticketOperations.js';
4
+ /** JSON result of the command. Key names and order are part of the contract: do not change them */
5
+ export declare function buildTicketListResult(providerKey: string, criteria: TicketSearchCriteria, search: TicketSearchResult): {
6
+ provider: string;
7
+ criteria: TicketSearchCriteria;
8
+ totalFetched: number;
9
+ nextPageToken: string | null;
10
+ truncated: boolean;
11
+ tickets: import("../../../common/ticketProvider/utils/ticketOperations.js").TicketSummary[];
12
+ warning: string | null;
13
+ };
14
+ export default class TicketList extends SfCommand<any> {
15
+ static title: string;
16
+ static description: string;
17
+ static examples: string[];
18
+ static flags: any;
19
+ static requiresProject: boolean;
20
+ run(): Promise<AnyJson>;
21
+ /** The neutral criteria every provider converts to its own query; checked before any call */
22
+ private buildCriteria;
23
+ }
@@ -0,0 +1,246 @@
1
+ /* jscpd:ignore-start */
2
+ import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
3
+ import { Messages, SfError } from '@salesforce/core';
4
+ import c from 'chalk';
5
+ import * as path from 'path';
6
+ import fs from '../../../common/utils/fsUtils.js';
7
+ import { uxLog } from '../../../common/utils/index.js';
8
+ import { uxLogTableWithReport } from '../../../common/utils/filesUtils.js';
9
+ import { TicketProvider, ticketDetailsProviderKeys } from '../../../common/ticketProvider/index.js';
10
+ import { TICKET_ERROR, TICKET_SEARCH_ORDER_FIELDS, hasSearchFilter, parseSearchDate, } from '../../../common/ticketProvider/utils/ticketOperations.js';
11
+ import { isProjectAllowed, parseAllowedProjects, scopeSearchProjects } from '../../../common/ticketProvider/utils/ticketQualify.js';
12
+ import { t } from '../../../common/utils/i18n.js';
13
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
14
+ const messages = Messages.loadMessages('sfdx-hardis', 'org');
15
+ /** JSON result of the command. Key names and order are part of the contract: do not change them */
16
+ export function buildTicketListResult(providerKey, criteria, search) {
17
+ return {
18
+ provider: providerKey,
19
+ criteria,
20
+ totalFetched: search.tickets.length,
21
+ nextPageToken: search.nextPageToken,
22
+ truncated: search.truncated,
23
+ tickets: search.tickets,
24
+ // Added last, so the keys above keep their order: set when nothing matched
25
+ warning: search.warning || null,
26
+ };
27
+ }
28
+ /** "a, b,,c" -> ["a", "b", "c"]; undefined when the flag is absent */
29
+ function splitList(value) {
30
+ const values = String(value ?? '')
31
+ .split(',')
32
+ .map((item) => item.trim())
33
+ .filter(Boolean);
34
+ return values.length > 0 ? values : undefined;
35
+ }
36
+ export default class TicketList extends SfCommand {
37
+ static title = 'List tickets';
38
+ static description = `
39
+ ## Command Behavior
40
+
41
+ **Lists the tickets matching some criteria, so that an agent or a script can process a whole backlog without typing the tickets one by one.**
42
+
43
+ - The criteria are the same on every ticketing system: \`--project\`, \`--status\`, \`--type\`, \`--assignee\` (\`me\`, \`none\` or an account), \`--label\`, \`--text\`, \`--created-after\`, \`--updated-after\` (YYYY-MM-DD) and \`--open-only\`. A flag taking several values takes them comma separated, and matches any of them. Different flags all apply.
44
+ - sfdx-hardis converts the criteria to the query language of the ticketing system, quoting every value, so a criterion is never read as query syntax. You never write the query yourself.
45
+ - At least one criterion is required: a search without any would read every ticket.
46
+ - \`--allowed-projects a,b\` bounds the search to those projects: without \`--project\`, the search reads all of them; a \`--project\` outside them is refused with \`TicketOutOfScope\`; any result outside them is dropped.
47
+ - \`--order-by created|updated\` (created by default) and \`--descending\` sort the tickets.
48
+ - When nothing matches, the JSON carries a \`warning\`. An empty result is often a wrong project: the project of the repository may only hold the code. \`sf hardis ticket meta --projects\` lists the visible projects, and \`sf hardis ticket meta --project <P>\` the types and statuses to filter on.
49
+ - Without \`--provider\`, the only configured ticketing system is queried; when several are configured, \`--provider\` is required. In an Azure DevOps pipeline, the \`SYSTEM_*\` variables make Azure Boards count as configured: a team using another ticketing system there should always pass \`--provider\`.
50
+ - \`--max-results\` caps the number of tickets fetched (50 by default). The command never fetches more than that silently.
51
+ - When more tickets match, the output says \`truncated: true\` and gives a \`nextPageToken\`. Pass it to \`--page-token\`, with the same criteria, to read the next page. The token is **opaque**: relay it as is, never parse or build it.
52
+ - Each ticket comes with its key, URL, summary, type, status, priority, assignee (name and \`assigneeId\`), project, area path (when the ticketing system has one), creation and update dates (ISO 8601, UTC) and labels.
53
+
54
+ ### Supported ticketing systems
55
+
56
+ | Provider | Supported |
57
+ |----------|-----------|
58
+ | JIRA Cloud | Yes |
59
+ | JIRA Server / Data Center | Yes (offset pagination, carried by the page token) |
60
+ | Azure Boards | Yes (one page of \`--max-results\`, no page token) |
61
+ | ServiceNow | Yes (\`--project\` is required: the table, such as incident or rm_story) |
62
+ | Aha! | Yes (\`--project\` is the workspace prefix, such as PROD) |
63
+
64
+ ### Errors
65
+
66
+ Failures carry a stable name, to branch on in a script: \`TicketProviderNotConfigured\` (no usable credential), \`TicketProviderNotSupported\`, \`TicketQueryInvalid\` (no criterion, a wrong date, or a search the ticketing system rejected: its message is kept), \`TicketOutOfScope\`, \`TicketRateLimited\` (HTTP 429).
67
+
68
+ ### Configuration
69
+
70
+ The credentials of [sf hardis ticket get](${'https://sfdx-hardis.cloudity.com/hardis/ticket/get/'}), from CI/CD variables or a local **.env** file.
71
+
72
+ <details markdown="1">
73
+ <summary>Technical explanations</summary>
74
+
75
+ - **Provider abstraction:** the command builds a neutral \`TicketSearchCriteria\` and calls the \`searchTickets()\` method of the provider. Each provider converts the criteria to its query language in its own class: no query language appears in the command.
76
+ - **JIRA:** the criteria become JQL (\`project in (...)\`, \`status in (...)\`, \`issuetype in (...)\`, \`assignee = currentUser()\` or \`is EMPTY\`, \`labels in (...)\`, \`text ~\`, \`created >=\`, \`updated >=\`, \`statusCategory != Done\`). Cloud calls \`/search/jql\` through \`jira.js\` \`issueSearch.searchForIssuesUsingJqlEnhancedSearchPost\` (the former \`/rest/api/3/search\` was removed from Jira Cloud, HTTP 410), whose cursor gives no exact total, so \`totalFetched\` counts the tickets actually fetched. Server / Data Center has no \`/search/jql\`: the command calls \`/rest/api/2/search\` and carries \`startAt\` in the opaque page token. JIRA Cloud is recognized by its host (\`atlassian.net\` or \`.jira.com\`). The assignee account is the \`accountId\` on Cloud, the user name on Server / Data Center.
77
+ - **Azure Boards:** the criteria become a WIQL statement on \`System.TeamProject\` (the configured team project when no project is given), \`System.State\`, \`System.WorkItemType\`, \`System.AssignedTo\` (\`@Me\`; another assignee is matched by display name or email), \`System.Tags\`, \`System.Title\` / \`System.Description\`, \`System.CreatedDate\` and \`System.ChangedDate\`. WIQL has no status category: \`--open-only\` leaves out the states Done, Closed, Completed, Resolved and Removed. \`wit/wiql\` with \`$top\`, then \`workitemsbatch\` for the fields.
78
+ - **ServiceNow:** the criteria become an encoded query on the table (several tables are searched in \`task\` with \`sys_class_nameIN\`): \`stateIN\` (the label or the value of the choice list), \`assigned_to.user_name\`, tags through \`label_entry\`, \`short_descriptionLIKE\` / \`descriptionLIKE\`, \`sys_created_on\` / \`sys_updated_on\`, \`active=true\` for \`--open-only\`. A value holding \`^\` (or a comma in a list) is refused, since the encoded query cannot quote it. Pages by offset; the labels of the tickets are not returned.
79
+ - **Aha!:** \`q\`, \`tag\` (one label), \`assigned_to_user\` and \`updated_since\` are filters of the features API; status, type, creation day, open only (a workflow status not \`complete\`), several labels or several workspaces are applied to each page. The tickets of a page are sorted with \`--order-by\`, the pages keep the order of Aha!.
80
+ - A read answered 5xx is retried once.
81
+
82
+ </details>
83
+
84
+ ### Agent Mode
85
+
86
+ The command never prompts. Pass at least one criterion, and \`--agent --json\` to get the machine-readable result:
87
+
88
+ \`\`\`sh
89
+ sf hardis ticket list --project ACME --open-only --agent --json
90
+ \`\`\`
91
+ `;
92
+ static examples = [
93
+ // JIRA
94
+ '$ sf hardis:ticket:list --project ACME --type Bug --open-only',
95
+ '$ sf hardis:ticket:list --project ACME --status "To Do,In Progress" --assignee me --agent --json',
96
+ '$ sf hardis:ticket:list --project ACME --label ia-qualified --updated-after 2026-10-01 --order-by updated --descending --agent --json',
97
+ '$ sf hardis:ticket:list --project ACME --max-results 100 --page-token <nextPageToken of the previous page> --agent --json',
98
+ '$ sf hardis:ticket:list --assignee none --allowed-projects ACME,OPS --output-file docs/backlog.json',
99
+ // Azure Boards
100
+ '$ sf hardis:ticket:list --provider azure --project "My Project" --status New --agent --json',
101
+ '$ sf hardis:ticket:list --provider azure --type "User Story" --text login --open-only --agent --json',
102
+ // ServiceNow (the project is the table)
103
+ '$ sf hardis:ticket:list --provider servicenow --project incident --status "In Progress" --assignee me --agent --json',
104
+ '$ sf hardis:ticket:list --provider servicenow --project incident,rm_story --open-only --created-after 2026-10-01 --agent --json',
105
+ // Aha! (the project is the workspace prefix)
106
+ '$ sf hardis:ticket:list --provider aha --project PROD --status "In design" --agent --json',
107
+ '$ sf hardis:ticket:list --provider aha --project PROD,DEMO --label ia-qualified --open-only --agent --json',
108
+ ];
109
+ static flags = {
110
+ agent: Flags.boolean({
111
+ default: false,
112
+ description: 'Run in non-interactive mode for agents and automation',
113
+ }),
114
+ project: Flags.string({
115
+ description: 'Projects the tickets belong to, comma separated',
116
+ }),
117
+ status: Flags.string({
118
+ description: 'Status names, comma separated: any of them',
119
+ }),
120
+ type: Flags.string({
121
+ description: 'Ticket types (Bug, Story...), comma separated: any of them',
122
+ }),
123
+ assignee: Flags.string({
124
+ description: 'me (the authenticated account), none (unassigned), or the account of the assignee',
125
+ }),
126
+ label: Flags.string({
127
+ description: 'Labels, comma separated: any of them',
128
+ }),
129
+ text: Flags.string({
130
+ description: 'Words searched in the summary and the description',
131
+ }),
132
+ 'created-after': Flags.string({
133
+ description: 'YYYY-MM-DD: tickets created on or after that day',
134
+ }),
135
+ 'updated-after': Flags.string({
136
+ description: 'YYYY-MM-DD: tickets updated on or after that day',
137
+ }),
138
+ 'open-only': Flags.boolean({
139
+ default: false,
140
+ description: 'Leave out the tickets in a done status (done, closed, resolved...)',
141
+ }),
142
+ 'order-by': Flags.string({
143
+ options: [...TICKET_SEARCH_ORDER_FIELDS],
144
+ default: 'created',
145
+ description: 'Sort on the creation or the update date',
146
+ }),
147
+ descending: Flags.boolean({
148
+ default: false,
149
+ description: 'Newest first',
150
+ }),
151
+ 'allowed-projects': Flags.string({
152
+ description: 'Comma-separated projects the search is bounded to',
153
+ }),
154
+ provider: Flags.string({
155
+ char: 'p',
156
+ options: ticketDetailsProviderKeys(),
157
+ description: 'Ticketing system to query. Defaults to the only one configured',
158
+ }),
159
+ 'max-results': Flags.integer({
160
+ default: 50,
161
+ min: 1,
162
+ description: 'Maximum number of tickets fetched',
163
+ }),
164
+ 'page-token': Flags.string({
165
+ description: 'nextPageToken returned by the previous page, relayed as is',
166
+ }),
167
+ 'output-file': Flags.string({
168
+ char: 'f',
169
+ description: 'Also write the JSON result at this path (parent folders are created). JSON, not the markdown of ticket get: a list is read by a program',
170
+ }),
171
+ debug: Flags.boolean({
172
+ char: 'd',
173
+ default: false,
174
+ description: messages.getMessage('debugMode'),
175
+ }),
176
+ websocket: Flags.string({
177
+ description: messages.getMessage('websocket'),
178
+ }),
179
+ skipauth: Flags.boolean({
180
+ description: 'Skip authentication check when a default username is required',
181
+ }),
182
+ };
183
+ // Listing tickets is independent from any Salesforce project or org
184
+ static requiresProject = false;
185
+ /* jscpd:ignore-end */
186
+ async run() {
187
+ const { flags } = await this.parse(TicketList);
188
+ const allowedProjects = parseAllowedProjects(flags['allowed-projects']);
189
+ const criteria = this.buildCriteria(flags, allowedProjects);
190
+ // No --provider: the only configured connector is taken (a connector that cannot search then
191
+ // answers TicketProviderNotSupported, which is the truth), several configured ones require --provider
192
+ const { provider, providerClass } = await TicketProvider.resolveProvider({
193
+ providerKey: flags.provider,
194
+ });
195
+ const search = await provider.searchTickets(criteria, {
196
+ maxResults: flags['max-results'],
197
+ pageToken: flags['page-token'] || null,
198
+ });
199
+ // Filtered again, whatever the provider did with the projects
200
+ search.tickets = search.tickets.filter((ticket) => isProjectAllowed(ticket.project, allowedProjects));
201
+ if (search.tickets.length === 0) {
202
+ search.warning = t('ticketListNoResult', { scope: (criteria.projects || []).join(', ') || '-' });
203
+ }
204
+ const result = buildTicketListResult(providerClass.providerKey, criteria, search);
205
+ uxLog('action', this, c.cyan(t('ticketListDone', { count: result.totalFetched })));
206
+ if (result.tickets.length > 0) {
207
+ await uxLogTableWithReport(this, result.tickets, ['id', 'type', 'status', 'priority', 'assignee', 'subject'], {
208
+ fileNamePrefix: 'ticket-list',
209
+ });
210
+ }
211
+ if (result.warning) {
212
+ uxLog('warning', this, c.yellow(result.warning));
213
+ }
214
+ if (result.truncated) {
215
+ uxLog('warning', this, c.yellow(t('ticketListMore')));
216
+ uxLog('log', this, c.grey(String(result.nextPageToken)));
217
+ }
218
+ if (flags['output-file']) {
219
+ await fs.ensureDir(path.dirname(path.resolve(flags['output-file'])));
220
+ await fs.outputFile(flags['output-file'], JSON.stringify(result, null, 2));
221
+ uxLog('log', this, c.grey(t('ticketListWritten', { file: flags['output-file'] })));
222
+ }
223
+ return result;
224
+ }
225
+ /** The neutral criteria every provider converts to its own query; checked before any call */
226
+ buildCriteria(flags, allowedProjects) {
227
+ const criteria = {
228
+ projects: scopeSearchProjects(splitList(flags.project) ?? null, allowedProjects),
229
+ statuses: splitList(flags.status),
230
+ types: splitList(flags.type),
231
+ assignee: (flags.assignee || '').trim() || null,
232
+ labels: splitList(flags.label),
233
+ text: (flags.text || '').trim() || null,
234
+ createdAfter: parseSearchDate(flags['created-after'], '--created-after'),
235
+ updatedAfter: parseSearchDate(flags['updated-after'], '--updated-after'),
236
+ openOnly: flags['open-only'] === true,
237
+ orderBy: (flags['order-by'] || 'created'),
238
+ descending: flags.descending === true,
239
+ };
240
+ if (!hasSearchFilter(criteria)) {
241
+ throw new SfError(t('ticketListNoCriteria'), TICKET_ERROR.queryInvalid);
242
+ }
243
+ return criteria;
244
+ }
245
+ }
246
+ //# sourceMappingURL=list.js.map