The Jira service synchronizes data between Jira from Atlassian and the life cycle management extension Sphinx-Needs from useblocks.

The implementation is based on the services mechanism of Sphinx-Needs.

The Jira service allows to retrieve external data during documentation build and to create Sphinx-Needs objects based on this data. After the created Sphinx-Needs objects support every function from Sphinx-Needs, which includes Filtering, Linking, Updating and much more.


The following options can be used inside .. needservice:: Jira and related directives.


A query string, which must be valid to JQL.


A string, which is taken as prefix for the need-id. E.g. CB_IMPORT_ –> CB_IMPORT_005.


Most configuration needs to be done via the service configuration in your conf.py file.


For details about most configuration options, please take a look into the common configuration description.

The following documentation describes service specific information for Jira only.


Default: /rest/api/2/search

See also endpoint for more details.


String, which must follow the JQL. notation.

See also query for more details.


A prefix for the final ID of the created need. Can get important, if the IDs from Jira are not unique.

Example: JIRA_ will create IDs like JIRA_TEST-3.


If True, the format used by JIRA for descriptions gets transformed to rst. This allows Sphinx to render the content.

Otherwise the default format is kept and printed, which would contain also the style specific information like h3. for titles.

Drawback: The used converter libraries are quite slow and it will take 1-3 seconds per issue.

Default: True


Inside your conf.py file:

jira_content = """

needs_services = {
    "jira_config": {
        "url": "",
        "user": "test",
        "password": "test",
        "id_prefix": "JIRA_",
        "query": "project = PX",
        "content": jira_content,
        "mappings": {
            "id": ["key"],
            "type": "spec",
            "title": ["fields", "summary"],
            "status": ["fields", "status", "name"],
        "extra_data": {
            "Original Type": ["fields", "issuetype", "name"],
            "Original Assignee": ["fields", "assignee", "displayName"],

Inside any rst file of your Sphinx project:

.. needservice:: jira_config
    :query: project = PX
    :prefix: JIRA_IMPORT

.. needtable::
   :filter: "JIRA_IMPORT" in id



The below examples are just images, as no Jira instance was available during documentation build.

../_images/jira_example.png ../_images/jira_table.png