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',
name: 'options',
type: 'collection',
placeholder: 'Add Field',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
@ -130,10 +130,23 @@ export const issueCommentFields: INodeProperties[] = [
value: 'renderedBody',
},
],
default: '',
default: [],
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.',
},
{
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',
},
],
default: '',
default: 'renderedBody',
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.',
},
@ -384,7 +397,7 @@ export const issueCommentFields: INodeProperties[] = [
displayName: 'Options',
name: 'options',
type: 'collection',
placeholder: 'Add Field',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
@ -403,10 +416,23 @@ export const issueCommentFields: INodeProperties[] = [
value: 'renderedBody',
},
],
default: '',
default: 'renderedBody',
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.',
},
{
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') {
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
if (operation === 'add') {
@ -1175,6 +1175,11 @@ export class Jira implements INodeType {
const jsonParameters = this.getNodeParameter('jsonParameters', 0);
const issueKey = this.getNodeParameter('issueKey', i) as string;
const options = this.getNodeParameter('options', i);
if (options.wikiMarkup) {
apiVersion = '2';
}
const body: IDataObject = {};
if (options.expand) {
qs.expand = options.expand as string;
@ -1184,7 +1189,7 @@ export class Jira implements INodeType {
Object.assign(body, options);
if (!jsonParameters) {
const comment = this.getNodeParameter('comment', i) as string;
if (jiraVersion === 'server') {
if (jiraVersion === 'server' || options.wikiMarkup) {
Object.assign(body, { body: comment });
} else {
Object.assign(body, {
@ -1327,10 +1332,15 @@ export class Jira implements INodeType {
qs.expand = options.expand as string;
delete options.expand;
}
if (options.wikiMarkup) {
apiVersion = '2';
}
Object.assign(qs, options);
if (!jsonParameters) {
const comment = this.getNodeParameter('comment', i) as string;
if (jiraVersion === 'server') {
if (jiraVersion === 'server' || options.wikiMarkup) {
Object.assign(body, { body: comment });
} else {
Object.assign(body, {