untaped-jira
Install it as part of untaped: uv tool install 'untaped[jira]' or pip install 'untaped[jira]'.
To add it to an existing install, see Getting started.
untaped jira searches, creates, updates, comments on and transitions Jira
issues, and looks up projects, boards and sprints. It targets Jira Data Center
and self-hosted Jira (REST API v2 and Agile 1.0), not Jira Cloud.
The packaged skill
and its references
(reading,
writes)
hold the per-command detail; --help lists the options, and
--columns '?' lists a command's fields after it runs (use it on a read
command, or add --dry-run to a write).
Set up
Create a personal access token in Jira, then:
untaped config set jira.base_url https://jira.example.com
untaped config set jira.token --prompt
untaped jira whoami
To keep the token out of config.yml, set jira.token_command to a command
that prints it (for example '["op", "read", "op://work/jira/token"]'), or
export JIRA_API_TOKEN; see Tokens. Defaults
such as jira.default_project, jira.default_board_id and the
jira.assigned_jql base query are in the
configuration reference.
Find issues
untaped jira issues assigned --status 'In Progress' --sprint 'openSprints()'
untaped jira issues search --jql 'project = OPS AND labels = infra ORDER BY created DESC'
untaped jira issues get OPS-123 --comments
issues assigned always starts from jira.assigned_jql, and its flags only
narrow it. issues search with no query and no shortcut flags uses
jira.assigned_jql too; pass --jql for an unrestricted query.
Change issues
jira.confirm picks which writes ask first:
| Value | Asks before |
|---|---|
destructive (default) |
Destructive writes only. |
always |
Every write. |
never |
No write. |
A write is destructive when it can replace or remove what an issue holds
now: issues transition, or an issues patch that sets a field, changes the
assignee, or has an update operation other than add. Creating an issue,
commenting, linking, and a patch that only adds (a label, say) are sent
without asking unless jira.confirm is always.
Before asking, the write shows each REST request it will send and what it changes, one line per field:
PUT /rest/api/2/issue/OPS-123
summary: "Rotate the API certificate" → "Rotate the API and web certificates"
labels: + "tls"
PUT /rest/api/2/issue/OPS-123/assignee
assignee: alice → bob
Assignment goes through its own request, so it works even when the assignee field is not on the issue's edit screen.
--dry-run shows the same preview, prints a planned outcome and sends
nothing, whatever jira.confirm says. --yes and the no-terminal rule work
as in Commands that change things.
untaped jira issues patch OPS-123 --set-json 'labels=["infra","tls"]' --dry-run
git log -1 --format=%B | untaped jira issues comment OPS-123 --yes
Transitions
Transition names depend on the issue's workflow and current status, so list
them with issues transitions KEY first, then pass --to NAME or --id ID.
To transition every issue of a search, pipe it and preview the batch:
untaped jira issues search --project OPS --status 'In Review' --format pipe \
| untaped jira issues transition --stdin --to Done --dry-run
A batch continues past a failing key and exits with the most severe failure.
Links
untaped jira issues links create OPS-123 Blocks OPS-124 --dry-run
links create KEY TYPE OTHER reads as "KEY outward phrase OTHER": the
example makes OPS-123 block OPS-124. The preview prints a reads as: line;
check the direction on one pair with --dry-run before linking in bulk.
Output
Searches are retried on HTTP 429 and 503; writes are never retried. See Scripting and Exit codes.
See also
- Configuration reference
- Configuration, for profiles and tokens
Metadata
Release files for untaped-jira 10.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| untaped_jira-10.0.0.tar.gz | 29.7 kB | With provenance | Details for untaped_jira-10.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| untaped_jira-10.0.0-py3-none-any.whl | Python 3 | none | any | Details for untaped_jira-10.0.0-py3-none-any.whl |
Total release size: 69.7 kB
Release files / untaped_jira-10.0.0.tar.gz
| Download URL | untaped_jira-10.0.0.tar.gz |
|---|---|
| Size | 29.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5d81555ea21759d90f5e922c83018630ada8550fa8ae56972b75d9f86102224f
|
|
BLAKE2b-256 checksum How to use checksums |
df36570b7314120527e89fc88f95259cc756667e781166dc63c1cc42ec1667a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / untaped_jira-10.0.0-py3-none-any.whl
| Download URL | untaped_jira-10.0.0-py3-none-any.whl |
|---|---|
| Size | 40.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6db6576b16d340c82ff06604f1278dfc304009c8e9e3d71fac854148c419b449
|
|
BLAKE2b-256 checksum How to use checksums |
ad9d80f9b4c48f4354e82ead587219a746820a2330f130f6f49e12249955d7ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logSecurity for untaped-jira 10.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for untaped_jira-10.0.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.