Skip to main content

runspec-jsm

Jira Service Management (Data Center) service-desk runnables for runspec — for service-desk agents and customers, not Jira product admins. pip install it into a venv and the runnables are discoverable by runspec local, runspec serve (MCP), and runspec-console.

Pure HTTP via httpx over a mixed REST surface (/rest/servicedeskapi for raise/comment/discovery, /rest/api/2 for transitions/properties), so it runs unchanged on Windows and Linux. All runnables emit JSON on stdout.

Install

pip install runspec-jsm

Runnables

Kind Runnables
Requests jsm-raise-request, jsm-get-request, jsm-add-comment (public or internal)
Transitions jsm-list-transitions, jsm-transition-issue (by name or id)
Properties jsm-set-property
Discovery jsm-list-request-types, jsm-list-fields

Auth — env vars only

Set the base URL and one credential; a Personal Access Token wins over Basic:

export JSM_BASE_URL=https://jsm.example.com
export JSM_PAT=<personal-access-token>          # Bearer
# …or Basic:
export JSM_USER=svc-desk
export JSM_PASSWORD=<password>

Every runnable takes --env dev|uat|prod, which selects JSM_<ENV>_* prefixed vars (e.g. JSM_PROD_BASE_URL) so one install serves several environments.

Identity is deploy-determined — there is no sudo flag. Run it as yourself locally, or as the service account on a server (sudo -u <svc> -E, systemd, or a login shell); it makes no OS calls.

jsm-list-request-types --env prod
jsm-raise-request --request-type-id 42 --summary "VPN down" --env prod
jsm-add-comment --issue SD-1234 --body "Investigating" --internal
jsm-transition-issue --issue SD-1234 --transition "Resolve this issue"

Public Python API

Every operation takes a JsmConfig first arg, so a private (e.g. Nexus-hosted) wrapper can inject credentials in code and bake in a default service_desk_id / project_key / env to build "one runnable per project" on top:

from runspec_jsm import config_from_env, create_request, add_comment, transition_issue

cfg = config_from_env(env="prod")
create_request(cfg, request_type_id=42, summary="VPN down")

Operations raise JsmError on failure.

Development

python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
ruff check . && ruff format --check .
pytest

Metadata

Release files for runspec-jsm 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for runspec-jsm 0.1.1
File Size Uploaded
runspec_jsm-0.1.1.tar.gz 13.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for runspec-jsm 0.1.1
File Interpreter ABI Platform
runspec_jsm-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 27.7 kB

Release files / runspec_jsm-0.1.1.tar.gz

Download URL runspec_jsm-0.1.1.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d936fde88860b0ee6045b823ce9d84c985e2b606809985c5462b34342f7c3430
BLAKE2b-256 checksum
How to use checksums
217338b576c9147feeb57f80f6e88a9a3bf16a665abac0e1561a074cb8058562
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 20, 2026.

Transparency log

Release files / runspec_jsm-0.1.1-py3-none-any.whl

Download URL runspec_jsm-0.1.1-py3-none-any.whl
Size 14.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34f513a45dcd6cd4bd9eef9dbceafa68878864ea08a4821e340f192c9adb2e1f
BLAKE2b-256 checksum
How to use checksums
197b6bb76d1c1c98df8a11bc9e662f073d1ff395e2311b408705c32db46ae24c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page