Skip to Content
Atlassian Jiraajatv1.0.xWhat's New

What’s New

Release notes for ajat, newest first.


Latest

Reports

  • report workflow renders every rule as a per-rule flow-diagram runbook — the shape of the automation estate as something a person can read and hand to an auditor. See Generate HTML Reports.
  • Per-rule SVG flow diagrams in the inventory, shown by default when a rule is expanded.
  • Behavioural-duplicate detection in the collision report. Two rules that are written differently but do the same thing are now surfaced, not just literal name or trigger overlaps.
  • The risk report explains its own scoring, and links each category-list rule through to the Jira automation it came from.
  • Rules, people and projects deep-link into Jira, so a finding in a report is one click from the thing it describes.
  • Identity chips with avatars and status in member lists, and notification targets — emails and channels — surfaced directly in the report.
  • The Analytics panel explains itself, and now appears on every report rather than only some.

API failures tell you what to do about them

A rejected token used to surface as a bare HTTP status. Errors from the Jira and licensing APIs now carry a hint:

Error: resolve cloud id: GET https://acme.atlassian.net/rest/api/3/myself returned 401: {"message":"Unauthorized"} Hint: Authentication failed — verify your jira.username and jira.api_token

Hints cover authentication (401), permissions (403), a wrong domain or resource (404), rate limiting (429) and Jira outages (5xx). An exhausted rate limit suggests lowering --workers rather than simply retrying, and a non-Cloud site is named explicitly.

Fixes

jira.automation_base_url was silently ignored by every command except doctor. If you run against a private automation host, doctor reported a healthy setup while export, import, invoke, search and every rule subcommand kept talking to api.atlassian.com. The Jira client is now built in one place, so every command reads the same configuration.

  • --debug produced no output at all. It set the log level but left the destination at its default, which discards everything. It now logs to stderr unless --log-file says otherwise, and stands the progress bar down so the two do not overwrite each other.
  • A broken log.level, log.format or unwritable log.file blocked every command — including the config commands that repair it, so ajat config set log.level info could not fix a bad log.level. Those commands now fall back to working settings for the run and name the key to change.
  • A global flag placed before an exempt command made it validate the configuration. ajat --config-file broken.yaml config where inspected --config-file instead of config and refused to run, while the same command with the flag moved worked — which made the config commands unusable for inspecting exactly the broken configuration you were trying to look at.
  • The progress bar could leave a goroutine rendering after it stopped, so the next command’s progress bar corrupted the previous one’s state. Stopping now waits for the renderer to return, which also removes a fixed 50 ms cost from every command that shows progress.

See also

Last updated on