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.
- package/defaults/monitoring/gitignore +56 -0
- package/lib/commands/hardis/org/configure/monitoring.js +4 -0
- package/lib/commands/hardis/org/configure/monitoring.js.map +1 -1
- package/lib/commands/hardis/ticket/get.d.ts +4 -0
- package/lib/commands/hardis/ticket/get.js +106 -8
- package/lib/commands/hardis/ticket/get.js.map +1 -1
- package/lib/commands/hardis/ticket/list.d.ts +23 -0
- package/lib/commands/hardis/ticket/list.js +246 -0
- package/lib/commands/hardis/ticket/list.js.map +1 -0
- package/lib/commands/hardis/ticket/meta.d.ts +10 -0
- package/lib/commands/hardis/ticket/meta.js +122 -0
- package/lib/commands/hardis/ticket/meta.js.map +1 -0
- package/lib/commands/hardis/ticket/post-comment.d.ts +9 -0
- package/lib/commands/hardis/ticket/post-comment.js +221 -17
- package/lib/commands/hardis/ticket/post-comment.js.map +1 -1
- package/lib/commands/hardis/ticket/set-label.d.ts +10 -0
- package/lib/commands/hardis/ticket/set-label.js +120 -0
- package/lib/commands/hardis/ticket/set-label.js.map +1 -0
- package/lib/commands/hardis/ticket/whoami.d.ts +10 -0
- package/lib/commands/hardis/ticket/whoami.js +96 -0
- package/lib/commands/hardis/ticket/whoami.js.map +1 -0
- package/lib/common/metadata-utils/metadataList.js +7 -0
- package/lib/common/metadata-utils/metadataList.js.map +1 -1
- package/lib/common/ticketProvider/ahaProvider.d.ts +42 -0
- package/lib/common/ticketProvider/ahaProvider.js +235 -2
- package/lib/common/ticketProvider/ahaProvider.js.map +1 -1
- package/lib/common/ticketProvider/azureBoardsProvider.d.ts +52 -0
- package/lib/common/ticketProvider/azureBoardsProvider.js +307 -5
- package/lib/common/ticketProvider/azureBoardsProvider.js.map +1 -1
- package/lib/common/ticketProvider/index.d.ts +13 -0
- package/lib/common/ticketProvider/index.js +38 -0
- package/lib/common/ticketProvider/index.js.map +1 -1
- package/lib/common/ticketProvider/jiraProvider.d.ts +54 -0
- package/lib/common/ticketProvider/jiraProvider.js +306 -4
- package/lib/common/ticketProvider/jiraProvider.js.map +1 -1
- package/lib/common/ticketProvider/serviceNowProvider.d.ts +45 -1
- package/lib/common/ticketProvider/serviceNowProvider.js +329 -9
- package/lib/common/ticketProvider/serviceNowProvider.js.map +1 -1
- package/lib/common/ticketProvider/ticketProviderRoot.d.ts +28 -0
- package/lib/common/ticketProvider/ticketProviderRoot.js +52 -0
- package/lib/common/ticketProvider/ticketProviderRoot.js.map +1 -1
- package/lib/common/ticketProvider/utils/markdownToTicketFormats.js +7 -2
- package/lib/common/ticketProvider/utils/markdownToTicketFormats.js.map +1 -1
- package/lib/common/ticketProvider/utils/ticketComment.d.ts +17 -3
- package/lib/common/ticketProvider/utils/ticketComment.js.map +1 -1
- package/lib/common/ticketProvider/utils/ticketDetails.d.ts +11 -0
- package/lib/common/ticketProvider/utils/ticketDetails.js +4 -0
- package/lib/common/ticketProvider/utils/ticketDetails.js.map +1 -1
- package/lib/common/ticketProvider/utils/ticketOperations.d.ts +103 -0
- package/lib/common/ticketProvider/utils/ticketOperations.js +116 -0
- package/lib/common/ticketProvider/utils/ticketOperations.js.map +1 -0
- package/lib/common/ticketProvider/utils/ticketQualify.d.ts +117 -0
- package/lib/common/ticketProvider/utils/ticketQualify.js +207 -0
- package/lib/common/ticketProvider/utils/ticketQualify.js.map +1 -0
- package/lib/common/utils/orgUtils.js +12 -2
- package/lib/common/utils/orgUtils.js.map +1 -1
- package/lib/i18n/de.json +48 -0
- package/lib/i18n/en.json +48 -0
- package/lib/i18n/es.json +48 -0
- package/lib/i18n/fr.json +48 -0
- package/lib/i18n/it.json +48 -0
- package/lib/i18n/ja.json +48 -0
- package/lib/i18n/nl.json +48 -0
- package/lib/i18n/pl.json +48 -0
- package/lib/i18n/pt-BR.json +48 -0
- package/oclif.lock +21 -21
- package/oclif.manifest.json +11646 -10981
- 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":"AAAA,wBAAwB;AACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,MAAM,qCAAqC,CAAC;AACrD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,uCAAuC,CAAC;AAC7D,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,GAAG,EACH,gBAAgB,EAChB,IAAI,EACJ,uBAAuB,EACvB,KAAK,GACN,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,iCAAiC,GAClC,MAAM,iEAAiE,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,CAAC,EAAE,MAAM,kCAAkC,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AAExI,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,sBAAuB,SAAQ,SAAc;IACzD,MAAM,CAAC,KAAK,GAAG,0BAA0B,CAAC;IAE1C,MAAM,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgD7B,CAAC;IAEO,MAAM,CAAC,QAAQ,GAAG;QACvB,sCAAsC;QACtC,uGAAuG;KACxG,CAAC;IAEK,MAAM,CAAC,KAAK,GAAQ;QACzB,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC;YAC3B,WAAW,EAAE,yDAAyD;SACvE,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;QACF,uBAAuB,EAAE,KAAK,CAAC,MAAM,CAAC;YACpC,WAAW,EAAE,4JAA4J;SAC1K,CAAC;QACF,YAAY,EAAE,+BAA+B;KAC9C,CAAC;IAEF,oEAAoE;IAC7D,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;IACtC,sBAAsB;IAEZ,MAAM,CAAC,oBAAoB,GAAG,CAAC,SAAS,CAAC,CAAC;IAE7C,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,oDAAoD;QACpD,MAAM,mBAAmB,EAAE,CAAC;QAE5B,qDAAqD;QACrD,MAAM,QAAQ,GAAG,CAAC,MAAM,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;gBAC/B,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,CAAC,CAAC,kCAAkC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;oBAC9D,EAAE,KAAK,EAAE,CAAC,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;iBACtD;gBACD,OAAO,EAAE,CAAC,CAAC,UAAU,CACnB,CAAC,CAAC,uCAAuC,CAAC,CAC3C;gBACD,WAAW,EAAE,CAAC,CAAC,yCAAyC,CAAC;gBACzD,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC;aACjC,CAAC,CAAC;YACH,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC9B,MAAM,IAAI,OAAO,CAAC,mEAAmE,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;QACD,MAAM,gBAAgB,GAAG,GAAG,SAAS,CAAC,YAAY,kDAAkD,CAAC;QACrG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,sCAAsC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACvG,eAAe,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,CAAC,CAAC,8BAA8B,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrG,yBAAyB;QACzB,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC;YACzC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7C,EAAE,KAAK,EAAE,CAAC,CAAC,oCAAoC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;aAChE;YACD,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC;YAClE,WAAW,EAAE,CAAC,CAAC,iDAAiD,CAAC;YACjE,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC;SACjC,CAAC,CAAC;QACH,IAAI,oBAAoB,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,GAAG,GACP,4GAA4G;gBAC5G,gBAAgB,CAAC;YACnB,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,0BAA0B;QAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,EAAE,WAAW,KAAK,KAAK,CAAC,cAAc,EAAE,CAAC;YACvG,KAAK,CACH,QAAQ,EACR,IAAI,EACJ,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,iCAAiC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,CACxG,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE;gBAChC,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,8DAA8D;gBAC7E,kBAAkB,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE;aACvD,CAAC,CAAC;YAEH,2FAA2F;YAC3F,uEAAuE;YACvE,IAAI,YAAY,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC/B,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,MAAM,UAAU,GACd,aAAa,GAAG,2BAA2B,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,WAAW,CAAC,CAAC;QAEhG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpG,iGAAiG;QACjG,+EAA+E;QAC/E,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACpF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5C,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC;gBACH,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kCAAkC,EAAE,EAAE,OAAO,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;aAAM,CAAC;YACN,4EAA4E;YAC5E,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxE,MAAM,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACtE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;QACD,MAAM,eAAe,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzE,0CAA0C;QAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,qBAAqB,GAAG,kCAAkC,CAAC;YACjF,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE;gBACrC,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YACH,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,MAAM,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAE1C,sCAAsC;YACtC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACzD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzG,qCAAqC;gBACrC,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7G,CAAC;QAED,0HAA0H;QAC1H,MAAM,0BAA0B,GAAG,MAAM,iCAAiC,CAAC,IAAI,EAAE;YAC/E,UAAU,EAAE,KAAK,CAAC,uBAAuB,CAAC;YAC1C,WAAW,EAAE,CAAC,IAAI;YAClB,aAAa,EAAE,UAAU;SAC1B,CAAC,CAAC;QACH,6BAA6B,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;QAChE,IAAI,0BAA0B,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAClD,MAAM,oBAAoB,CAAC,sBAAsB,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,qBAAqB;QACrB,MAAM,eAAe,CACnB,EAAE,EACF;YACE,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;YACjD,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC,WAAW;YAC5D,GAAG,CAAC,0BAA0B,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,0BAA0B,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnH,EACD,oBAAoB,CACrB,CAAC;QAEF,uGAAuG;QACvG,MAAM,cAAc,GAAG,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrE,MAAM,oBAAoB,GAAG,cAAc,CAAC,QAAQ,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC;gBACxC,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,CAAC,UAAU,CACnB,CAAC,CAAC,mCAAmC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/D;gBACD,WAAW,EAAE,CAAC,CAAC,+BAA+B,CAAC;aAChD,CAAC,CAAC;YACH,IAAI,mBAAmB,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACvC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvG,MAAM,gBAAgB,CAAC;oBACrB,aAAa,EAAE,8BAA8B,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;iBAC9F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,MAAM,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,kCAAkC,EAAE,IAAI,EAAE,CAAC,CAAC;QAErK,2BAA2B;QAC3B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;YAChC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC,CAAC,UAAU,CACnB,CAAC,CAAC,iCAAiC,CAAC,CACrC;YACD,WAAW,EAAE,CAAC,CAAC,iCAAiC,CAAC;SAClD,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC/B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,CAAC;YAC1E,MAAM,gBAAgB,CAAC;gBACrB,aAAa,EAAE,8BAA8B,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;aAC9F,CAAC,CAAC;YACH,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,uFAAuF;QACvF,qFAAqF;QACrF,mFAAmF;QACnF,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,KAAK,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YACrI,CAAC,CAAC,MAAM,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC;YACzD,CAAC,CAAC,cAAc,CAAC;QACnB,uFAAuF;QACvF,iEAAiE;QACjE,IAAI,iBAAiB,KAAK,cAAc,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;YAC3C,KAAK,CACH,SAAS,EACT,IAAI,EACJ,CAAC,CAAC,MAAM,CACN,CAAC,CAAC,2BAA2B,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CACvD,CACF,CAAC;YACF,MAAM,qBAAqB,GAAG,GAAG,SAAS,CAAC,YAAY,kDAAkD,CAAC;YAC1G,MAAM,GAAG,GAAG,CAAC,CAAC,4BAA4B,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClF,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,eAAe,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,CAAC,CAAC,yBAAyB,CAAC,EAAE,WAAW,CAAC,CAAC;QAC1G,CAAC;QACD,KAAK,CACH,SAAS,EACT,IAAI,EACJ,CAAC,CAAC,MAAM,CACN,CAAC,CAAC,kCAAkC,CAAC,CACtC,CACF,CAAC;QACF,MAAM,mBAAmB,GAAG,GAAG,SAAS,CAAC,YAAY,6CAA6C,CAAC;QACnG,eAAe,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,CAAC,CAAC,uBAAuB,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjG,MAAM,mBAAmB,GAAG,GAAG,SAAS,CAAC,YAAY,gDAAgD,CAAC;QACtG,eAAe,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,CAAC,CAAC,uBAAuB,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjG,MAAM,qBAAqB,GAAG,GAAG,SAAS,CAAC,YAAY,2CAA2C,CAAC;QACnG,eAAe,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,CAAC,CAAC,yBAAyB,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAG,GAAG,GAAG,mBAAmB,CAAC,CAAC;QACzE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAG,GAAG,GAAG,mBAAmB,CAAC,CAAC;QACzE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,uBAAuB,CAAC,GAAG,GAAG,GAAG,qBAAqB,CAAC,CAAC;QAC7E,+CAA+C;QAC/C,OAAO,EAAE,YAAY,EAAE,sCAAsC,EAAE,CAAC;IAClE,CAAC;IAED,mGAAmG;IACnG,2FAA2F;IACnF,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjE,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gCAAgC,CAAC,UAAkB;QAC/D,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,4EAA4E;YAC5E,4EAA4E;YAC5E,yEAAyE;YACzE,2EAA2E;YAC3E,MAAM,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,0BAA0B,UAAU,EAAE,CAAC,CAAC,CAAC;gBACjG,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACnC,wEAAwE;gBACxE,wEAAwE;gBACxE,sEAAsE;gBACtE,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;gBACxE,CAAC;gBAAC,MAAM,CAAC;oBACP,sEAAsE;oBACtE,iEAAiE;oBACjE,sEAAsE;oBACtE,8DAA8D;oBAC9D,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,IAAI,+BAA+B,EAAE,CAAC,CAAC,CAAC;gBACpF,CAAC;gBACD,MAAM,OAAO,GAAG,gCAAgC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACvE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,CAAC;gBAClE,MAAM,EAAE,CAAC,SAAS,CAAC,+BAA+B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACrE,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;gBACpC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,+BAA+B,CAAC,EAAE,CAAC;oBAC/E,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;oBACnD,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,EAAE,OAAO,EAAE,yBAAyB,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,CAAC;gBAC5I,CAAC;gBACD,wFAAwF;gBACxF,wFAAwF;gBACxF,kFAAkF;gBAClF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7F,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;YACD,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,qCAAqC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1F,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,oFAAoF;YACpF,+DAA+D;YAC/D,IAAI,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3F,OAAO,aAAa,CAAC;YACvB,CAAC;YACD,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gCAAgC,EAAE,EAAE,OAAO,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACzG,OAAO,cAAc,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,oEAAoE;YACpE,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvG,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC"}
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
137
|
-
|
|
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;
|
|
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
|