@automatify-au/cli 0.1.5 → 0.1.7

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 (3) hide show
  1. package/README.md +71 -1
  2. package/dist/automatify.cjs +10622 -296
  3. package/package.json +3 -1
package/README.md CHANGED
@@ -19,6 +19,7 @@ Command-group note:
19
19
  - No separate backend.
20
20
  - No duplicate domain/business logic in CLI.
21
21
  - CLI commands must call shared Forge contracts (resolver/webtrigger paths) as they are introduced.
22
+ - Focused evidence commands may call Jira Cloud REST APIs directly when the feature is specifically Jira-native attachment/comment work.
22
23
 
23
24
  ## MVP non-goals
24
25
  - No separate backend.
@@ -76,6 +77,16 @@ Minimum:
76
77
  - `TESTOPS_FORGE_ENDPOINT` for commands that call Forge contracts (`doctor`, `ingest`, `run`, `sync`)
77
78
  - `TESTOPS_FORGE_AUTH_TOKEN` from the one-time token shown in Forge `Operations -> CLI access`
78
79
 
80
+ Local config helper:
81
+ ```bash
82
+ automatify testops config set baseUrl https://automatify-com-au.atlassian.net
83
+ automatify testops config set projectKey DEV
84
+ automatify testops config set forgeEndpoint "<webtrigger-url>"
85
+ printf "%s" "$TESTOPS_FORGE_AUTH_TOKEN" | automatify testops config set forgeAuthToken --stdin
86
+ ```
87
+
88
+ `forgeAuthToken` local storage currently uses macOS Keychain. On Windows, Linux, and CI, keep the token in `TESTOPS_FORGE_AUTH_TOKEN` instead. `.testops-cli.json` should store non-secret values only.
89
+
79
90
  Optional:
80
91
  - `TESTOPS_FORGE_TIMEOUT_MS`
81
92
  - `TESTOPS_FORGE_MAX_RETRIES`
@@ -91,6 +102,7 @@ All TestOps commands are invoked as `automatify testops <command>`:
91
102
  - `bdd`
92
103
  - `automatify testops bdd scenarios show --id <SCENARIO_ID>`
93
104
  - `automatify testops bdd scenarios show --id <SCENARIO_ID> --format feature`
105
+ - `automatify testops bdd scenarios show --id <SCENARIO_ID|SC-4> --feature`
94
106
  - `automatify testops bdd scenarios export --id <SCENARIO_ID|SC-4> --output-dir ./scenario-export`
95
107
  - `automatify testops bdd scenarios export --all --output-dir ./scenario-export`
96
108
  - `automatify testops bdd scenarios import --file ./scenario-export/SC-4.feature`
@@ -127,10 +139,55 @@ All TestOps commands are invoked as `automatify testops <command>`:
127
139
  - `automatify testops ingest feature --file <path>` or `--stdin`
128
140
  - `run`
129
141
  - `automatify testops run upload --file <path>` or `--stdin`
142
+ - `allure`
143
+ - `automatify testops allure upload ABC-123 ./allure-report.zip --dry-run`
144
+ - `automatify testops allure upload ABC-123 ./allure-report.zip`
130
145
  - `auto`
131
146
  - `automatify testops auto --dry-run`
132
147
  - `automatify testops auto`
133
148
 
149
+ ## Allure Evidence for Jira
150
+
151
+ Purpose:
152
+ - upload an already generated Allure HTML report ZIP to a Jira issue as evidence.
153
+ - parse `widgets/summary.json` from the ZIP and add a concise Jira comment with result counts.
154
+ - keep the flow Java-free and backend-free; this command does not generate Allure reports from raw `allure-results`.
155
+
156
+ Supported ZIP layouts:
157
+ - `widgets/summary.json`
158
+ - `allure-report/widgets/summary.json`
159
+ - any nested path ending in `/widgets/summary.json`
160
+
161
+ Credentials:
162
+ ```bash
163
+ export JIRA_SITE="https://example.atlassian.net"
164
+ export JIRA_EMAIL="qa@example.com"
165
+ export JIRA_API_TOKEN="<atlassian-api-token>"
166
+ ```
167
+
168
+ `JIRA_BASE_URL` and existing `.testops-cli.json` `baseUrl` are also accepted for the site URL. CLI flags take precedence:
169
+ ```bash
170
+ automatify testops allure upload ABC-123 ./allure-report.zip \
171
+ --site https://example.atlassian.net \
172
+ --email qa@example.com \
173
+ --api-token "$JIRA_API_TOKEN"
174
+ ```
175
+
176
+ Dry run:
177
+ ```bash
178
+ automatify testops allure upload ABC-123 ./allure-report.zip --dry-run
179
+ ```
180
+
181
+ Upload without a Jira comment:
182
+ ```bash
183
+ automatify testops allure upload ABC-123 ./allure-report.zip --no-comment
184
+ ```
185
+
186
+ Machine-readable output:
187
+ ```bash
188
+ automatify testops allure upload ABC-123 ./allure-report.zip --dry-run --json
189
+ ```
190
+
134
191
  ### Optional gated maintenance commands
135
192
 
136
193
  - `sync`
@@ -171,6 +228,19 @@ export JIRA_BASE_URL="https://automatify-com-au.atlassian.net"
171
228
  export JIRA_PROJECT_KEY="DEV"
172
229
  ```
173
230
 
231
+ Or store the non-secret values in `.testops-cli.json` and, on macOS, the token in Keychain:
232
+ ```bash
233
+ automatify testops config set baseUrl https://automatify-com-au.atlassian.net
234
+ automatify testops config set projectKey DEV
235
+ automatify testops config set forgeEndpoint "<webtrigger-url>"
236
+ printf "%s" "$TESTOPS_FORGE_AUTH_TOKEN" | automatify testops config set forgeAuthToken --stdin
237
+ ```
238
+
239
+ Windows, Linux, and CI should keep the token in environment variables:
240
+ ```bash
241
+ export TESTOPS_FORGE_AUTH_TOKEN="<one-time-token-from-forge-ui>"
242
+ ```
243
+
174
244
  Transport notes:
175
245
  - Bearer auth is required for operator/CI use. Forge stores only the token hash plus metadata.
176
246
  - Tokens are project-scoped, shown once at creation time, and can be revoked from the Forge UI.
@@ -317,7 +387,7 @@ automatify testops ingest feature --project-key DEV --file ./artifacts/features-
317
387
  ```
318
388
 
319
389
  Feature export notes:
320
- - `bdd scenarios show --format feature` renders one scenario in feature-style text.
390
+ - `bdd scenarios show --format feature` and `bdd scenarios show --feature` render one scenario in feature-style text.
321
391
  - `bdd scenarios export` writes a single-scenario `SC-*.feature` file with a reserved `@testops-scenario-SC-*` tag.
322
392
  - Jira issue links are exported as normal Gherkin tags like `@DEV-2`; on import they are written back to `linkedIssueKeys`.
323
393
  - current model has `linked issues`, not a separate persisted `primary issue`, so all exported issue-key tags are treated as equal links.