@pagopa/danger-plugin
Version:
Shared rules for DangerJS, used in the PagoPA projects
68 lines (67 loc) • 1.9 kB
JavaScript
;
/**
* type definition for generic tickets / stories and Jira conversion
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.fromJiraToGenericTicket = exports.ticketOrdByType = exports.ticketPriority = void 0;
const jira_1 = require("./jira");
exports.ticketPriority = {
chore: 0,
epic: 3,
feat: 2,
fix: 1,
};
exports.ticketOrdByType = {
equals: (x, y) => x.type === y.type,
compare: (x, y) => exports.ticketPriority[x.type] < exports.ticketPriority[y.type]
? -1
: exports.ticketPriority[x.type] > exports.ticketPriority[y.type]
? 1
: 0,
};
/**
* From {@link JiraIssueTypeName} to {@link GenericTicketType}
*
* @param jiraType
*/
const convertJiraTypeToGeneric = (jiraType) => {
switch (jiraType) {
case "Bug":
return "fix";
case "Epic":
return "epic";
case "Sub-task":
case "Sottotask":
return "chore";
case "Story":
return "feat";
case "Task":
return "chore";
default:
return "chore";
}
};
/**
* From {@link JiraIssueResponse} to {@link GenericTicket}
*
* @param jira
*/
const fromJiraToGenericTicket = (jira) => ({
id: jira.key,
parent: jira.fields.parent
? (0, exports.fromJiraToGenericTicket)({
...jira.fields.parent,
fields: {
...jira.fields.parent.fields,
labels: [],
project: jira.fields.project,
},
})
: undefined,
projectId: jira.fields.project.key,
tags: jira.fields.labels,
title: jira.fields.summary,
type: convertJiraTypeToGeneric(jira.fields.issuetype.name),
url: new URL(jira.key, `https://${jira_1.JIRA_HOST_NAME}/browse/`).toString(),
});
exports.fromJiraToGenericTicket = fromJiraToGenericTicket;