@automatify-au/cli 0.1.2 → 0.1.4

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/README.md CHANGED
@@ -9,6 +9,11 @@ Current product stance:
9
9
  - Future customer-admin packaging is expected before any broader distribution.
10
10
  - Any future all-user CLI requires a different auth/onboarding model than the current project-scoped admin key transport.
11
11
 
12
+ Command-group note:
13
+ - The groupings below describe intended usage and complexity only.
14
+ - They are not a security boundary in the current transport model.
15
+ - A valid project CLI token is not yet scoped per command group.
16
+
12
17
  ## Architecture boundary (must hold)
13
18
  - Thin client only.
14
19
  - No separate backend.
@@ -37,12 +42,12 @@ pnpm --filter @automatify-au/cli build
37
42
  pnpm --filter @automatify-au/cli bundle
38
43
  ```
39
44
 
40
- This produces a single self-contained bundle at `dist/automatify.js` (≈125 KB) with `@automatify/shared-types` inlined. No runtime dependencies.
45
+ This produces a single self-contained bundle at `dist/automatify.cjs` (≈125 KB) with `@automatify/shared-types` inlined. No runtime dependencies.
41
46
 
42
47
  Run built CLI:
43
48
  ```bash
44
- automatify testops --help # if linked globally (npm link)
45
- node apps/cli/dist/automatify.js --help # direct node run
49
+ automatify testops --help # if linked globally (npm link)
50
+ node apps/cli/dist/automatify.cjs --help # direct node run
46
51
  ```
47
52
 
48
53
  Dev run (for local iteration):
@@ -77,34 +82,56 @@ Optional:
77
82
  - `TESTOPS_FORGE_RETRY_DELAY_MS`
78
83
  - `TESTOPS_AUTH_MODE`, `JIRA_EMAIL`, `JIRA_API_TOKEN` (when auth mode requires)
79
84
 
80
- ## Command reference (MVP)
85
+ ## Command groups (MVP)
81
86
 
82
87
  All TestOps commands are invoked as `automatify testops <command>`:
83
88
 
89
+ ### Core browse commands
90
+
84
91
  - `bdd`
85
92
  - `automatify testops bdd scenarios show --id <SCENARIO_ID>`
93
+ - `automatify testops bdd scenarios show --id <SCENARIO_ID> --format feature`
94
+ - `automatify testops bdd scenarios export --id <SCENARIO_ID|SC-4> --output-dir ./scenario-export`
95
+ - `automatify testops bdd scenarios export --all --output-dir ./scenario-export`
96
+ - `automatify testops bdd scenarios import --file ./scenario-export/SC-4.feature`
97
+ - `automatify testops bdd scenarios import --input-dir ./scenario-export`
98
+ - `automatify testops bdd features export --output-dir ./features-export`
99
+ - `automatify testops bdd features export --output-dir ./features-export --zip`
100
+ - `automatify testops bdd features export --output-dir ./features-export --feature-id <FEATURE_ID>`
101
+ - `runs`
102
+ - `automatify testops runs show --id <RUN_ID>`
103
+ - `config`
104
+ - `automatify testops config show`
105
+ - `automatify testops config validate`
106
+ - `doctor`
107
+ - `automatify testops doctor check`
108
+ - `automatify testops doctor check --json`
109
+
110
+ ### Advanced browse commands
111
+
86
112
  - `cases`
87
113
  - `automatify testops cases list`
88
114
  - `automatify testops cases show --key <TEST_CASE_KEY>`
89
115
  - `automatify testops cases bdd list --key <TEST_CASE_KEY>`
90
116
  - `automatify testops cases runs list --key <TEST_CASE_KEY>`
91
- - `config`
92
- - `automatify testops config show`
93
- - `automatify testops config validate`
94
- - `ingest`
95
- - `automatify testops ingest feature --file <path>` or `--stdin`
96
- - `run`
97
- - `automatify testops run upload --file <path>` or `--stdin`
98
- - `runs`
99
- - `automatify testops runs show --id <RUN_ID>`
100
117
  - `suites`
101
118
  - `automatify testops suites list`
102
119
  - `automatify testops suites show --key <SUITE_KEY>`
103
120
  - `automatify testops suites cases list --key <SUITE_KEY>`
104
- - `doctor`
105
- - `automatify testops doctor check`
106
- - `automatify testops doctor check --json`
107
- - `sync` (gated)
121
+
122
+ ### Setup, ingestion, and CI commands
123
+
124
+ - `ingest`
125
+ - `automatify testops ingest feature --file <path>` or `--stdin`
126
+ - `run`
127
+ - `automatify testops run upload --file <path>` or `--stdin`
128
+ - `auto`
129
+ - `automatify testops auto --dry-run`
130
+ - `automatify testops auto`
131
+
132
+ ### Optional gated maintenance commands
133
+
134
+ - `sync`
108
135
  - enable with `TESTOPS_ENABLE_SYNC=1`
109
136
  - `automatify testops sync status`
110
137
  - `automatify testops sync reconcile --confirm RECONCILE`
@@ -226,37 +253,76 @@ Azure DevOps callback example:
226
253
  displayName: Report scenario automation status to Forge
227
254
  ```
228
255
 
229
- Hierarchy browse examples:
256
+ Azure DevOps setup note:
257
+ - prefer pipeline variables for `TESTOPS_FORGE_ENDPOINT`
258
+ - prefer secret pipeline variables for `TESTOPS_FORGE_AUTH_TOKEN`
259
+ - do not keep those values in the Jira automation profile `bodyTemplate`
260
+
261
+ Core browse examples:
262
+ ```bash
263
+ automatify testops bdd scenarios show --project-key DEV --id <SCENARIO_ID> --json
264
+ automatify testops bdd scenarios export --project-key DEV --id SC-4 --output-dir ./artifacts/scenario-export --json
265
+ automatify testops bdd scenarios import --project-key DEV --file ./artifacts/scenario-export/SC-4.feature --json
266
+ automatify testops bdd scenarios export --project-key DEV --all --output-dir ./artifacts/scenario-bulk --json
267
+ automatify testops bdd scenarios import --project-key DEV --input-dir ./artifacts/scenario-bulk --json
268
+ automatify testops bdd features export --project-key DEV --output-dir ./artifacts/features-export --zip --json
269
+ automatify testops runs show --project-key DEV --id <RUN_ID> --json
270
+ automatify testops config validate
271
+ automatify testops doctor check --json
272
+ ```
273
+
274
+ Advanced browse examples:
230
275
  ```bash
231
276
  automatify testops cases list --project-key DEV
232
277
  automatify testops cases show --project-key DEV --key TC-1 --json
233
278
  automatify testops cases bdd list --project-key DEV --key TC-1 --json
234
279
  automatify testops cases runs list --project-key DEV --key TC-1 --json
235
- automatify testops bdd scenarios show --project-key DEV --id <SCENARIO_ID> --json
236
- automatify testops runs show --project-key DEV --id <RUN_ID> --json
237
280
  automatify testops suites list --project-key DEV --json
238
281
  automatify testops suites cases list --project-key DEV --key TS-1
239
282
  ```
240
283
 
241
- Recommended hierarchy browse flow:
284
+ Recommended browse flow:
242
285
  ```bash
243
- # 1. Find a case worth inspecting.
244
- automatify testops cases list --project-key DEV
286
+ # Path A: scenario-first browse
287
+ automatify testops bdd scenarios show --project-key DEV --id <SCENARIO_ID> --json
288
+ automatify testops runs show --project-key DEV --id <RUN_ID> --json
245
289
 
246
- # 2. Inspect one case in detail.
290
+ # Path B: testcase-assisted browse
291
+ automatify testops cases list --project-key DEV
247
292
  automatify testops cases show --project-key DEV --key TC-145 --json
248
-
249
- # 3. Inspect the BDD scenarios linked to that case.
250
293
  automatify testops cases bdd list --project-key DEV --key TC-145 --json
251
-
252
- # 4. Inspect the execution history linked to that case.
253
294
  automatify testops cases runs list --project-key DEV --key TC-145 --json
254
-
255
- # 5. Drill into one scenario or one run as needed.
256
295
  automatify testops bdd scenarios show --project-key DEV --id <SCENARIO_ID> --json
257
296
  automatify testops runs show --project-key DEV --id <RUN_ID> --json
258
297
  ```
259
298
 
299
+ Feature-file round-trip:
300
+ ```bash
301
+ # Export all Jira-managed BDD features as .feature files
302
+ automatify testops bdd features export --project-key DEV --output-dir ./artifacts/features-export --zip --json
303
+
304
+ # Export one scenario as SC-4.feature and import it back after editing
305
+ automatify testops bdd scenarios export --project-key DEV --id SC-4 --output-dir ./artifacts/scenario-export
306
+ automatify testops bdd scenarios import --project-key DEV --file ./artifacts/scenario-export/SC-4.feature
307
+
308
+ # Export every visible SC-* file and import the whole folder back later
309
+ automatify testops bdd scenarios export --project-key DEV --all --output-dir ./artifacts/scenario-bulk
310
+ automatify testops bdd scenarios import --project-key DEV --input-dir ./artifacts/scenario-bulk
311
+
312
+ # Re-import one exported file later
313
+ automatify testops ingest feature --project-key DEV --file ./artifacts/features-export/001-checkout.feature
314
+ ```
315
+
316
+ Feature export notes:
317
+ - `bdd scenarios show --format feature` renders one scenario in feature-style text.
318
+ - `bdd scenarios export` writes a single-scenario `SC-*.feature` file with a reserved `@testops-scenario-SC-*` tag.
319
+ - Jira issue links are exported as normal Gherkin tags like `@DEV-2`; on import they are written back to `linkedIssueKeys`.
320
+ - current model has `linked issues`, not a separate persisted `primary issue`, so all exported issue-key tags are treated as equal links.
321
+ - `bdd features export` writes one `.feature` file per stored BDD feature plus `manifest.json`.
322
+ - with `--zip`, the CLI also writes `./artifacts/features-export.zip` next to the export directory.
323
+ - pass `--issue-key DEV-2` to export only features visible in that Jira issue context.
324
+ - `getSummaryExport` remains the reporting/export path for JSON/CSV summary snapshots and is separate from feature-file round-trip export.
325
+
260
326
  Coverage and readiness report via the Forge transport:
261
327
  ```bash
262
328
  curl -sS "$TESTOPS_FORGE_ENDPOINT" \
@@ -348,6 +414,16 @@ automatify testops ingest feature \
348
414
  --project-key DEV
349
415
  ```
350
416
 
417
+ Bulk feature export to local `.feature` files:
418
+ ```bash
419
+ pnpm --filter @automatify-au/cli build
420
+ automatify testops bdd features export \
421
+ --project-key DEV \
422
+ --output-dir ./artifacts/features-export \
423
+ --zip \
424
+ --json
425
+ ```
426
+
351
427
  Run upload from file with CI-friendly branching:
352
428
  ```bash
353
429
  set +e