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)
| File | Size | Uploaded | |
|---|---|---|---|
| runspec_jsm-0.1.1.tar.gz | 13.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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