feat(Jira Software Node): Add Wiki Markup support for Jira Cloud comments (#8857)

Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
This commit is contained in:
pemontto 2024-04-25 11:14:31 +01:00 committed by GitHub
parent 00dfad3279
commit 756012b052
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 44 additions and 8 deletions

View file

@ -111,7 +111,7 @@ export const issueCommentFields: INodeProperties[] = [
displayName: 'Options', displayName: 'Options',
name: 'options', name: 'options',
type: 'collection', type: 'collection',
placeholder: 'Add Field', placeholder: 'Add Option',
default: {}, default: {},
displayOptions: { displayOptions: {
show: { show: {
@ -130,10 +130,23 @@ export const issueCommentFields: INodeProperties[] = [
value: 'renderedBody', value: 'renderedBody',
}, },
], ],
default: '', default: [],
description: description:
'Use expand to include additional information about comments in the response. This parameter accepts Rendered Body, which returns the comment body rendered in HTML.', 'Use expand to include additional information about comments in the response. This parameter accepts Rendered Body, which returns the comment body rendered in HTML.',
}, },
{
displayName: 'Use Wiki Markup',
name: 'wikiMarkup',
type: 'boolean',
default: false,
displayOptions: {
show: {
'/jiraVersion': ['cloud'],
},
},
description:
'Whether to enable parsing of wikiformatting for this comment. Default is false.',
},
], ],
}, },
@ -269,7 +282,7 @@ export const issueCommentFields: INodeProperties[] = [
value: 'renderedBody', value: 'renderedBody',
}, },
], ],
default: '', default: 'renderedBody',
description: description:
'Use expand to include additional information about comments in the response. This parameter accepts Rendered Body, which returns the comment body rendered in HTML.', 'Use expand to include additional information about comments in the response. This parameter accepts Rendered Body, which returns the comment body rendered in HTML.',
}, },
@ -384,7 +397,7 @@ export const issueCommentFields: INodeProperties[] = [
displayName: 'Options', displayName: 'Options',
name: 'options', name: 'options',
type: 'collection', type: 'collection',
placeholder: 'Add Field', placeholder: 'Add Option',
default: {}, default: {},
displayOptions: { displayOptions: {
show: { show: {
@ -403,10 +416,23 @@ export const issueCommentFields: INodeProperties[] = [
value: 'renderedBody', value: 'renderedBody',
}, },
], ],
default: '', default: 'renderedBody',
description: description:
'Use expand to include additional information about comments in the response. This parameter accepts Rendered Body, which returns the comment body rendered in HTML.', 'Use expand to include additional information about comments in the response. This parameter accepts Rendered Body, which returns the comment body rendered in HTML.',
}, },
{
displayName: 'Use Wiki Markup',
name: 'wikiMarkup',
type: 'boolean',
default: false,
displayOptions: {
show: {
'/jiraVersion': ['cloud'],
},
},
description:
'Whether to enable parsing of wikiformatting for this comment. Default is false.',
},
], ],
}, },
]; ];

View file

@ -1167,7 +1167,7 @@ export class Jira implements INodeType {
} }
if (resource === 'issueComment') { if (resource === 'issueComment') {
const apiVersion = jiraVersion === 'server' ? '2' : ('3' as string); let apiVersion = jiraVersion === 'server' ? '2' : ('3' as string);
//https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-comments/#api-rest-api-3-issue-issueidorkey-comment-post //https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-comments/#api-rest-api-3-issue-issueidorkey-comment-post
if (operation === 'add') { if (operation === 'add') {
@ -1175,6 +1175,11 @@ export class Jira implements INodeType {
const jsonParameters = this.getNodeParameter('jsonParameters', 0); const jsonParameters = this.getNodeParameter('jsonParameters', 0);
const issueKey = this.getNodeParameter('issueKey', i) as string; const issueKey = this.getNodeParameter('issueKey', i) as string;
const options = this.getNodeParameter('options', i); const options = this.getNodeParameter('options', i);
if (options.wikiMarkup) {
apiVersion = '2';
}
const body: IDataObject = {}; const body: IDataObject = {};
if (options.expand) { if (options.expand) {
qs.expand = options.expand as string; qs.expand = options.expand as string;
@ -1184,7 +1189,7 @@ export class Jira implements INodeType {
Object.assign(body, options); Object.assign(body, options);
if (!jsonParameters) { if (!jsonParameters) {
const comment = this.getNodeParameter('comment', i) as string; const comment = this.getNodeParameter('comment', i) as string;
if (jiraVersion === 'server') { if (jiraVersion === 'server' || options.wikiMarkup) {
Object.assign(body, { body: comment }); Object.assign(body, { body: comment });
} else { } else {
Object.assign(body, { Object.assign(body, {
@ -1327,10 +1332,15 @@ export class Jira implements INodeType {
qs.expand = options.expand as string; qs.expand = options.expand as string;
delete options.expand; delete options.expand;
} }
if (options.wikiMarkup) {
apiVersion = '2';
}
Object.assign(qs, options); Object.assign(qs, options);
if (!jsonParameters) { if (!jsonParameters) {
const comment = this.getNodeParameter('comment', i) as string; const comment = this.getNodeParameter('comment', i) as string;
if (jiraVersion === 'server') { if (jiraVersion === 'server' || options.wikiMarkup) {
Object.assign(body, { body: comment }); Object.assign(body, { body: comment });
} else { } else {
Object.assign(body, { Object.assign(body, {