jira

Last modified by Lucas Charpentier on 2026/10/27 10:28

Audit

Macro ID
jira
Source
JIRA Macro
Type
Generator
Classification reason
The content holds the issue keys or the JQL query, but the output, the issues with their fields, comes from the JIRA server.
Status
Reviewed
Criteria version
15.20
XWiki version
18.8.0
Audit date
2026-10-19
Auditor
Compared macros
liveData documents

Sources

Where to gather the information the criteria are checked against, see Gather the sources.

SourceWhat it givesUsed forWhere
DocumentationParameters, default values and examples, including the most common exampleL2, L3, and the criteria measured with the most common examplehttps://www.xwiki.org/xwiki/bin/view/documentation/extensions/user/jira/display-issues/macro/
Source codeHow the macro declares its parameters and content: types, groups, features, advanced and hidden flags, constraints, content type, inline supportC4, C5, C7, C8, C9, C13, E4, E6https://github.com/xwiki-contrib/macro-jira/blob/jira-11.1.7/jira-macro/jira-macro-default/src/main/java/org/xwiki/contrib/jira/macro/JIRAMacroParameters.java
Macro descriptorWhat the Edit Macro dialog is built from, on design.xwiki.orgD1, D2, C1 to C9, E4Descriptor, list of macros with their categories
TranslationsThe name, description and parameter names in each languageD1, D2, D4, C1l10n.xwiki.org
Uses in XWiki pagesHow XWiki itself uses the macro, a realistic example when the documentation has noneL3, C2, C3, C6, C8, C9Search the xwiki organization on GitHub
Compared macrosThe audits of the macros of the same typeL1, D3liveData, documents
Other sources specific to this macro
  • JIRAMacro.java, jira-11.1.7: the macro declares inline support but throws an error for the table and list styles inline, and has no translation resources for its name, description or parameters.
  • Open JIRA project issues: JIRA-45 on the rendering in the editor, JIRA-37 on a default server, JIRA-80 on a server picker, JIRA-122 on the parsing of parameters.
CriterionResultNotes
D1 wordingOK"JIRA" is the name of the product the macro reads from, the word users of that tracker use, not a code identifier. Atlassian now writes it "Jira", not as an acronym.
D2 summaryOKthe description, "Fetches information from a JIRA server and displays them as a table, list or enumeration.", says what the macro adds, in 16 words, but "information" is vague where the documentation says "issues", and "them" does not agree with it.
D3 categoryOK
D4 quick-actionKOQuick Actions finds the macro first for "jira" and "JIRA". The synonyms "issues", "tickets" and "bugs" do not find it: "issues" only lists jiraBiDimensionalGridChart and jiraCreatedVsResolvedChart, the other two give no result. The macro has no translation at all, so its French and German names are "JIRA", as in English, a product name that does not need translating.
L1 consistencyOKcompared with liveData and documents, two generators of the Content category that display lists. Unlike them, jira requires its content, the issue keys or the JQL query, so Quick Actions opens the Edit Macro dialog instead of inserting the macro right away; this is by design. It also needs a server, through URL or id, see C7.
L2 doc-parametersOKthe new documentation lists every parameter, with the defaults and the "id or url" requirement, and explains the content in the Usage section. It writes "url" where the descriptor says "URL", which works since parameter names are case-insensitive.
L3 doc-exampleOKthe most common example is "Listing issue keys, with the default table", {{jira url="https://jira.xwiki.org"}} with the keys XWIKI-2484, XE-291 and XWIKI-3677 as content, one per line. It renders a table of the three issues without error.
I1 patternOKQuick Actions and the Insert Macro dialog both open the Edit Macro dialog, since the content is mandatory. This is the generic behavior of a macro with a mandatory parameter, not a macro-specific one.
I2 zero-configOKsubmitting the Edit Macro dialog with the default values does nothing, with no message, since the content is required: the generic behavior of the dialog. {{jira/}} renders "No JIRA Server found. You must specify a JIRA server, using the "url" macro parameter or using the "id" macro parameter [...]", a configuration a generator may require, see C7.
I3 instantN/A
I4 cursorN/A
I5 focusKOthe content, mandatory, comes first and has the focus. But the server, without which nothing renders, is in the second tab, Instance, behind the Optional parameters tab: to reproduce, insert the macro from Quick Actions, the URL and id fields are not visible until the Instance tab is clicked.
E1 wysiwygKOthe editor never shows the issues, only the generic "macro:jira" placeholder in the standalone editor, still after 30 seconds, and nothing at all in the in-place editor, where the placeholder is hidden and the macro output stays empty. The macro is rendered asynchronously and the async content is not loaded in the editor, see XWIKI-23947 and JIRA-45. To reproduce: edit a page holding the most common example, view mode shows the table of three issues. The macro should show an edit-mode replacement in the editor, describing the issues it lists, rather than depend on the async rendering.
E2 errorsKOseveral invalid values are accepted silently or give a technical message. maxCount="abc" and maxCount="0" added to the most common example render an empty table with only its headers. fields="key,noSuchField" renders an empty column, and fields=":::,," renders nothing at all. parameters="field.url.label='See';other=x" is ignored, see JIRA-122. style="foo" gives "Can't find descriptor for the component with type [interface org.xwiki.contrib.jira.macro.JIRADisplayer] and hint [foo]", and source="foo" the same for JIRADataSource, with no list of the allowed values. url="notaurl" gives "no protocol: notaurl". parameters="garbage" gives "Invalid macro parameters used for the [jira] macro. Cause: [null]". The messages for an unknown id and for a wrong issue key or JQL query are clear.
E3 nestingKOin a list item and in a table cell, like * {{jira url="https://jira.xwiki.org"}}XWIKI-2484{{/jira}} , the macro is inline and renders "The "table" style for the "jira" macro cannot be used inline." in view mode; only the enum style works there. In a box it renders. The content is a list of keys or a query typed in a dialog text area, so inserting a list, a table or a box in it does not apply.
E4 inline-supportKOminor: the macro declares inline support, but only the enum style renders inline: the most common example in a sentence, Before {{jira url="https://jira.xwiki.org"}}XWIKI-2484{{/jira}} after. , renders "The "table" style for the "jira" macro cannot be used inline.", and so does style="list". With style="enum" it renders inside the sentence. The documentation says so, but when the macro is inline, the style parameter should only offer the styles that work inline.
E5 emptyN/A
E6 inplaceN/A

Parameters

ParameterC1 clarityC2 mandatoryC3 defaultsC4 input-assistanceC5 groupsC6 orderC7 alternativesC8 advancedC9 technicalC13 constraintsNotes
$contentKOOKN/AKON/AOKN/AN/AN/AN/A

C1: "The JIRA issues to retrieve" does not say what to type: one issue key per line when source is list, optionally followed by "|" and a note, or a JQL query when source is jql. To reproduce: open the Edit Macro dialog from Quick Actions.

C2: the content is mandatory, and no default would work: without issue keys or a query there is nothing to display.

C4, minor: a plain text area, for issue keys as well as a JQL query. For the list source, the default, an issue picker with suggestions from the server could be used; a JQL query needs a text area, but nothing helps writing it.

URLOKOKKOOKKOOKKOOKOKKO

C3: no default is declared and the field opens empty. The URL of the most common example, https://jira.xwiki.org, is specific to each wiki, but no administration setting gives a default server for the wiki, see JIRA-37. The documentation recommends id instead, see the notes of id.

C5: URL and id, the server without which nothing renders, are in the second tab, "Instance", after the "Optional parameters" tab, which holds the display options.

C7: URL and id are two alternative ways to set the server and one of them is needed, but the "instance" group is a tab, not a feature, and neither is marked as required: the dialog submits {{jira}}XWIKI-2484{{/jira}} , which renders "No JIRA Server found. You must specify a JIRA server, using the "url" macro parameter or using the "id" macro parameter [...]".

C13: a URL, with no declared format: url="notaurl" is accepted and fails at rendering with "no protocol: notaurl".

fieldNamesN/AOKN/AN/AN/AN/AN/AN/AOKN/A

Deprecated since version 8.3 of the extension, in favor of the labels of fields, and hidden from the Edit Macro dialog, so the criteria about its field do not apply. The probe lists it as a field not visible without scrolling: it is in the dialog, hidden.

fieldsKOOKKOKOOKOKN/AOKOKKO

C1: the description shows raw Javadoc markup to the user, "Format is {@code id1:label1!type1,id2:label2!type2}", and does not say which field ids and types exist. The name "Fields" is fine. To reproduce: open the Edit Macro dialog from Quick Actions.

C3: the field opens empty, which stands for the default fields of the style, type, key, summary, status and created for the default table style, but neither the field nor the description says which ones.

C4: a free text field for a list of JIRA fields in a dedicated syntax: a multi-select of the fields of the server, with an optional label, could be used.

C13: a list of id:label!type entries, with no declared format: fields=":::,," is accepted and renders nothing, with no message.

idKOOKKOKOKOOKKOOKOKN/A

C1, minor: "the configuration id of the JIRA Server URL to use" does not say where these ids are defined, the JIRA configuration of the wiki administration, nor that it is the recommended way to set the server.

C3, minor: the field opens empty, which stands for no server and fails, even when the wiki defines a JIRA server: a single configured server is not preselected, see JIRA-37.

C4: a free text field, although the accepted values are the servers configured in the administration: a select of them could be used, see JIRA-80. id="noSuchInstance" is accepted and fails at rendering.

C5: in the second tab, "Instance", with URL, see the notes of URL.

C7: an alternative of URL, not grouped as a feature and not required, see the notes of URL.

C13: the accepted values are the configured servers, a list rather than a format, so it is recorded N/A: the select of C4 would declare them.

maxCountKOOKOKKOOKOKN/AOKOKKO

C1: the label is the camelCase ID, "MaxCount", and the description, "the max number of JIRA issues to display", does not say what the preselected -1 means, the limit of the JIRA server.

C3: the field preselects the declared default, -1, the value of the most common example, but what it stands for is unclear, see C1.

C4: a plain text field for a number.

C13: a number, typed int, with no declared range, while only a positive number or -1 makes sense: maxCount="0" and maxCount="abc" are accepted and render an empty table, with no message.

parametersKOOKKOOKOKOKN/AKOOKKO

C1: the name "Parameters" says nothing, and the description, "extra parameters for sources, displayers and field displayers", uses internal terms and gives neither the format, comma-separated name=value pairs, nor an example of a parameter, like field.url.label.

C3, minor: the field preselects "{}", the Java rendering of an empty set of properties, instead of an empty field.

C8: rarely used, for internal settings like the label of the url field, and set by no example of the documentation, but not marked as advanced.

C13: a list of name=value pairs, with no declared format: parameters="field.url.label='See';other=x" is accepted and ignored, see JIRA-122, and parameters="garbage" fails at rendering with "Cause: [null]".

sourceKOOKOKKOOKKON/AOKOKN/A

C1, minor: "how JIRA issues are defined (e.g. "jql", "list")" does not say that it decides what the content holds, issue keys or a JQL query, and the "e.g." suggests other values while there are only two.

C4: a free text field, although the accepted values are list and jql: a select could be used. source="foo" is accepted and fails at rendering, see E2.

C6: the documentation sets it in three examples, but it comes fourth in the Optional parameters tab, after maxCount and parameters, which no example sets: the order is alphabetical.

C13: the accepted values are a list rather than a format, so it is recorded N/A: the select of C4 would declare them.

styleOKOKOKKOOKKON/AOKOKN/A

C1: the description, "how JIRA issues are displayed (e.g. "table", "list", "enum")", says what it sets; it does not say that only enum works inline, see E4.

C4: a free text field, although the accepted values are table, list and enum: a select could be used. style="foo" is accepted and fails at rendering, see E2.

C6: the documentation sets it in three examples, but it comes last in the Optional parameters tab, after maxCount and parameters, which no example sets: the order is alphabetical.

C13: the accepted values are a list rather than a format, so it is recorded N/A: the select of C4 would declare them.

Other notes

None of the texts of the macro is translated: the name, description, parameter names and descriptions, and the group name "instance" are in English in French and German, and the parameter names are their IDs, see C1. This is accepted: jira is a community supported extension, not part of XWiki Standard, and a rather technical macro.

KOs and tickets

Every KO needs a ticket covering it, see Report the KOs. One ticket can cover several KOs. Known issues filed for this macro are suggested in italics: link them as existing tickets when they cover the KO.

KOCriterionExisting ticketsNew tickets
D4D4 quick-actionXWIKI-25444
I5I5 focusJIRA-128
E1E1 wysiwygJIRA-45, XWIKI-19833 (partial), XWIKI-23320, XWIKI-23947
E2E2 errorsJIRA-122, JIRA-125XCOMMONS-3847 (partial), XRENDERING-823 (partial)
E3E3 nestingJIRA-95 (partial), XWIKI-23501
E4E4 inline-supportJIRA-132
C1:$contentC1 clarity, $contentJIRA-127
C4:$contentC4 input-assistance, $contentXWIKI-23059 (partial)JIRA-130
C3:URLC3 defaults, URLJIRA-37
C5:URLC5 groups, URLJIRA-128
C7:URLC7 alternatives, URLJIRA-128
C13:URLC13 constraints, URLJIRA-131
C1:fieldsC1 clarity, fieldsJIRA-127
C3:fieldsC3 defaults, fieldsXWIKI-23759 (partial)JIRA-128 (partial)
C4:fieldsC4 input-assistance, fieldsXWIKI-23045 (partial)JIRA-129
C13:fieldsC13 constraints, fieldsJIRA-131
C1:idC1 clarity, idJIRA-127
C3:idC3 defaults, idJIRA-37
C4:idC4 input-assistance, idJIRA-80
C5:idC5 groups, idJIRA-128
C7:idC7 alternatives, idJIRA-128
C1:maxCountC1 clarity, maxCountJIRA-127
C4:maxCountC4 input-assistance, maxCountXWIKI-25182
C13:maxCountC13 constraints, maxCountXWIKI-25182
C1:parametersC1 clarity, parametersJIRA-127
C3:parametersC3 defaults, parametersJIRA-128
C8:parametersC8 advanced, parametersJIRA-128
C13:parametersC13 constraints, parametersJIRA-122
C1:sourceC1 clarity, sourceJIRA-127
C4:sourceC4 input-assistance, sourceJIRA-129
C6:sourceC6 order, sourceJIRA-128
C4:styleC4 input-assistance, styleJIRA-129
C6:styleC6 order, styleJIRA-128
Success

Every KO is covered by a ticket.

Tickets

TicketOriginKOs coveredKOs partly covered
JIRA-122ExistingC13:parameters E2
JIRA-125ExistingE2
JIRA-37ExistingC3:URL C3:id
JIRA-45ExistingE1
JIRA-80ExistingC4:id
JIRA-95ExistingE3
XWIKI-19833ExistingE1
XWIKI-23320ExistingE1
XWIKI-23759ExistingC3:fields
XWIKI-23947ExistingE1
XWIKI-25182ExistingC13:maxCount C4:maxCount
XCOMMONS-3847NewE2
XRENDERING-823NewE2
XWIKI-25444NewD4
JIRA-127NewC1:$content C1:fields C1:id C1:maxCount C1:parameters C1:source
JIRA-128NewC3:parameters C5:URL C5:id C6:source C6:style C8:parameters C7:URL C7:id I5C3:fields
JIRA-129NewC4:source C4:style C4:fields
XWIKI-23045ExistingC4:fields
JIRA-130NewC4:$content
XWIKI-23059ExistingC4:$content
JIRA-131NewC13:URL C13:fields
XWIKI-23501ExistingE3
JIRA-132NewE4

Known issues of this macro

IssueTitleStatusCriteria
JIRA-37Add ability to add a default Jira instanceOpenC3
JIRA-41Improve error reporting when the API fails to parse the returned content properlyOpenE2
JIRA-45Jira Macro doesn't render the first time edit mode is enteredOpenE1
JIRA-69Provide default message when no issues are foundOpenE2
JIRA-80Introduce a custom JIRAServer (instance id) dispalyerOpenC4
JIRA-95Jira macro inside list field does not display error in view mode due to async rendering differenceOpenE2
JIRA-111Paste feature does not work if JIRA instance URL configured in Administration contains a slash at the endOpen
JIRA-113Paste feature does not work if JIRA links are pasted by regular (non-admin) usersOpen
JIRA-122The parameters Macro parameter silently mis-parses any separator other than a commaOpenC4
JIRA-125Display a user-friendly message when the JIRA server is unavailableOpenE2
XWIKI-23320Some macro output is hidden when editing themOpenE1

68 more known issues affect every macro: see the Known issues.

Get Connected