sfdx-hardis 8.5.0 → 8.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commands/hardis/ticket/get.js +4 -4
- package/lib/commands/hardis/ticket/get.js.map +1 -1
- package/lib/common/ticketProvider/azureBoardsProvider.d.ts +6 -3
- package/lib/common/ticketProvider/azureBoardsProvider.js +46 -27
- package/lib/common/ticketProvider/azureBoardsProvider.js.map +1 -1
- package/lib/common/ticketProvider/genericProvider.d.ts +13 -2
- package/lib/common/ticketProvider/genericProvider.js +25 -2
- package/lib/common/ticketProvider/genericProvider.js.map +1 -1
- package/lib/common/ticketProvider/index.d.ts +34 -25
- package/lib/common/ticketProvider/index.js +24 -26
- package/lib/common/ticketProvider/index.js.map +1 -1
- package/lib/common/ticketProvider/jiraProvider.d.ts +6 -3
- package/lib/common/ticketProvider/jiraProvider.js +9 -3
- package/lib/common/ticketProvider/jiraProvider.js.map +1 -1
- package/lib/common/ticketProvider/serviceNowProvider.d.ts +93 -4
- package/lib/common/ticketProvider/serviceNowProvider.js +380 -28
- package/lib/common/ticketProvider/serviceNowProvider.js.map +1 -1
- package/lib/i18n/de.json +31 -0
- package/lib/i18n/en.json +33 -21
- package/lib/i18n/es.json +31 -0
- package/lib/i18n/fr.json +31 -0
- package/lib/i18n/it.json +31 -0
- package/lib/i18n/ja.json +31 -0
- package/lib/i18n/nl.json +31 -0
- package/lib/i18n/pl.json +31 -0
- package/lib/i18n/pt-BR.json +31 -0
- package/oclif.lock +50 -100
- package/oclif.manifest.json +3717 -3717
- package/package.json +6 -6
|
@@ -6,7 +6,7 @@ import * as path from 'path';
|
|
|
6
6
|
import fs from '../../../common/utils/fsUtils.js';
|
|
7
7
|
import { isCI, uxLog } from '../../../common/utils/index.js';
|
|
8
8
|
import { prompts } from '../../../common/utils/prompts.js';
|
|
9
|
-
import { TicketProvider } from '../../../common/ticketProvider/index.js';
|
|
9
|
+
import { TicketProvider, ticketDetailsProviderKeys } from '../../../common/ticketProvider/index.js';
|
|
10
10
|
import { renderTicketDetailsMarkdown } from '../../../common/ticketProvider/ticketDetails.js';
|
|
11
11
|
import { t } from '../../../common/utils/i18n.js';
|
|
12
12
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
@@ -50,7 +50,7 @@ The command reuses the ticketing variables sfdx-hardis already documents, read f
|
|
|
50
50
|
<details markdown="1">
|
|
51
51
|
<summary>Technical explanations</summary>
|
|
52
52
|
|
|
53
|
-
- **Provider abstraction:** \`TicketProvider.getTicketDetails()\` picks the connector whose identifier pattern matches and whose credentials are configured, then delegates to that provider's \`getTicketDetails()\`. A matching connector may first complete its own configuration: Azure Boards parses \`origin\` with \`parseAzureRepoUrl()\` and fills the organization and project it finds there, so only a token has to be supplied locally. Values already set always win, and the git remote is only read when the identifier could belong to Azure Boards. An identifier that matches nothing, or that matches a provider with no credentials, raises an explicit error naming the missing configuration rather than returning an empty result.
|
|
53
|
+
- **Provider abstraction:** every connector is declared in the same \`allTicketProviders\` list, with the same static surface (\`providerKey\`, \`providerLabel\`, \`isAvailable\`, \`matchesTicketId\`, \`getTicketsFromString\`, \`supportsTicketDetails\`). \`TicketProvider.getTicketDetails()\` picks the connector that supports a deep fetch, whose identifier pattern matches, and whose credentials are configured, then delegates to that provider's \`getTicketDetails()\`. A matching connector may first complete its own configuration: Azure Boards parses \`origin\` with \`parseAzureRepoUrl()\` and fills the organization and project it finds there, so only a token has to be supplied locally. Values already set always win, and the git remote is only read when the identifier could belong to Azure Boards. An identifier that matches nothing, or that matches a provider with no credentials, raises an explicit error naming the missing configuration rather than returning an empty result.
|
|
54
54
|
- **Text conversion:** provider HTML (JIRA \`renderedFields\`, Azure Boards fields, ServiceNow journals) is converted to plain text with \`sanitize-html\`, and JIRA's Atlassian Document Format is walked as a fallback.
|
|
55
55
|
- **Attachment safety:** the download URL of an attachment comes from the ticket payload, which is user-controlled data. Before any credential is sent, the URL is checked to resolve to the same host as the ticketing instance the command authenticated against. The response is read through a size cap (\`--max-attachment-size\`, 20 MB by default), the file name is sanitized and the resolved path is verified to stay inside the target directory.
|
|
56
56
|
- **No sub-process:** downloaded content is never handed to an external converter. Text attachments are decoded in-process; images, PDFs and Office documents are saved as-is and reported through \`localPath\`, for the caller to open with its own tooling.
|
|
@@ -86,7 +86,7 @@ sf hardis ticket get --id ACME-4567 --agent --json
|
|
|
86
86
|
}),
|
|
87
87
|
provider: Flags.string({
|
|
88
88
|
char: 'p',
|
|
89
|
-
options:
|
|
89
|
+
options: ticketDetailsProviderKeys(),
|
|
90
90
|
description: 'Force the ticketing system instead of deducing it from the identifier',
|
|
91
91
|
}),
|
|
92
92
|
'output-file': Flags.string({
|
|
@@ -170,7 +170,7 @@ sf hardis ticket get --id ACME-4567 --agent --json
|
|
|
170
170
|
}
|
|
171
171
|
/** Short console recap: the full payload is in --json, the log only needs to say what was found */
|
|
172
172
|
logSummary(details) {
|
|
173
|
-
uxLog('action', this, c.cyan(`[TicketGet] ${details.id}
|
|
173
|
+
uxLog('action', this, c.cyan(`[TicketGet] ${details.id} - ${details.subject}`));
|
|
174
174
|
uxLog('log', this, c.grey(t('ticketGetSummary', {
|
|
175
175
|
status: details.status || '-',
|
|
176
176
|
type: details.type || '-',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/hardis/ticket/get.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/hardis/ticket/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import * as azdev from "azure-devops-node-api";
|
|
2
2
|
import { TicketProviderRoot } from "./ticketProviderRoot.js";
|
|
3
|
-
import type { Ticket } from "./index.js";
|
|
3
|
+
import type { Ticket, TicketsFromStringOptions } from "./index.js";
|
|
4
4
|
import { CommonPullRequestInfo } from "../gitProvider/index.js";
|
|
5
5
|
import { TicketDetails, TicketDetailsOptions } from "./ticketDetails.js";
|
|
6
6
|
export declare class AzureBoardsProvider extends TicketProviderRoot {
|
|
7
|
+
static readonly providerKey: "azure";
|
|
8
|
+
static readonly providerLabel = "Azure Boards";
|
|
9
|
+
static readonly supportsTicketDetails = true;
|
|
7
10
|
protected serverUrl: string | null;
|
|
8
11
|
protected azureApi: InstanceType<typeof azdev.WebApi>;
|
|
9
12
|
protected teamProject: string | null;
|
|
@@ -26,10 +29,10 @@ export declare class AzureBoardsProvider extends TicketProviderRoot {
|
|
|
26
29
|
static autoDetectFromGitRemote(): Promise<void>;
|
|
27
30
|
static isAvailable(_config: any): boolean;
|
|
28
31
|
getLabel(): string;
|
|
29
|
-
static getTicketsFromString(text: string,
|
|
32
|
+
static getTicketsFromString(text: string, options?: TicketsFromStringOptions): Promise<Ticket[]>;
|
|
30
33
|
collectTicketsInfo(tickets: Ticket[]): Promise<Ticket[]>;
|
|
31
34
|
/** True when the identifier is a work item id, bare or in the AB-1234 form used by the skills */
|
|
32
|
-
static matchesTicketId(ticketId: string): boolean;
|
|
35
|
+
static matchesTicketId(ticketId: string, _config?: any): boolean;
|
|
33
36
|
/** Accepts 1234, AB-1234, or a _workitems/edit/1234 URL */
|
|
34
37
|
private static workItemIdOf;
|
|
35
38
|
/** Azure identities come back either as an object or as a "Display Name <mail>" string */
|
|
@@ -15,6 +15,9 @@ import { WorkItemExpand } from "azure-devops-node-api/interfaces/WorkItemTrackin
|
|
|
15
15
|
import { capText, classifyAttachment, detectManualActions, htmlToPlainText, newTicketDetails, } from "./ticketDetails.js";
|
|
16
16
|
/* jscpd:ignore-end */
|
|
17
17
|
export class AzureBoardsProvider extends TicketProviderRoot {
|
|
18
|
+
static providerKey = "azure";
|
|
19
|
+
static providerLabel = "Azure Boards";
|
|
20
|
+
static supportsTicketDetails = true;
|
|
18
21
|
serverUrl;
|
|
19
22
|
azureApi;
|
|
20
23
|
teamProject;
|
|
@@ -97,7 +100,8 @@ export class AzureBoardsProvider extends TicketProviderRoot {
|
|
|
97
100
|
getLabel() {
|
|
98
101
|
return "sfdx-hardis Azure Boards connector";
|
|
99
102
|
}
|
|
100
|
-
static async getTicketsFromString(text,
|
|
103
|
+
static async getTicketsFromString(text, options = {}) {
|
|
104
|
+
const prInfo = options.pullRequestInfo || null;
|
|
101
105
|
const tickets = [];
|
|
102
106
|
// Extract Azure Boards Work Items
|
|
103
107
|
const azureBoardsUrlRegex = /(https:\/\/.*\/_workitems\/edit\/[0-9]+)/g;
|
|
@@ -115,34 +119,46 @@ export class AzureBoardsProvider extends TicketProviderRoot {
|
|
|
115
119
|
}
|
|
116
120
|
}
|
|
117
121
|
}
|
|
118
|
-
const
|
|
119
|
-
const config = await getConfig("project");
|
|
122
|
+
const config = options.config || (await getConfig("project"));
|
|
120
123
|
if (!this.isAvailable(config)) {
|
|
121
|
-
return
|
|
124
|
+
return sortArray(tickets, { by: ["id"], order: ["asc"] });
|
|
122
125
|
}
|
|
123
|
-
// Get tickets from Azure commits
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
126
|
+
// Get tickets from Azure commits.
|
|
127
|
+
// BUILD_REPOSITORY_ID only exists on an Azure Pipelines agent: Azure Boards is also used with
|
|
128
|
+
// GitHub or GitLab repositories, and asking the Azure git API for the commits of an empty
|
|
129
|
+
// repository id would fail on every one of them. The work items linked to the Pull Request
|
|
130
|
+
// itself are collected below, and do not need the git API.
|
|
131
|
+
const repositoryId = getEnvVar("BUILD_REPOSITORY_ID") || "";
|
|
132
|
+
if (prInfo?.providerInfo?.commits && repositoryId) {
|
|
133
|
+
// Never lets a failure here escape: the caller turns any throw into "unable to compute git
|
|
134
|
+
// summary" and drops the whole Pull Request comment, work items and commits alike
|
|
135
|
+
try {
|
|
136
|
+
const azureBoardsProvider = new AzureBoardsProvider(config);
|
|
137
|
+
const azureApi = azureBoardsProvider.azureApi;
|
|
138
|
+
const azureGitApi = await azureApi.getGitApi();
|
|
139
|
+
const commitIds = prInfo?.providerInfo?.commits.filter((commit) => commit.hash).map((commit) => commit.hash);
|
|
140
|
+
const azureCommits = [];
|
|
141
|
+
for (const commitId of commitIds) {
|
|
142
|
+
const commitRefs = await azureGitApi.getCommits(repositoryId, { fromCommitId: commitId, toCommitId: commitId, includeWorkItems: true });
|
|
143
|
+
azureCommits.push(...commitRefs);
|
|
144
|
+
}
|
|
145
|
+
for (const commit of azureCommits) {
|
|
146
|
+
for (const workItem of commit?.workItems || []) {
|
|
147
|
+
if (!tickets.some((ticket) => ticket.id === workItem.id)) {
|
|
148
|
+
tickets.push({
|
|
149
|
+
provider: "AZURE",
|
|
150
|
+
url: workItem.url || "",
|
|
151
|
+
id: workItem.id || "",
|
|
152
|
+
});
|
|
153
|
+
}
|
|
143
154
|
}
|
|
144
155
|
}
|
|
145
156
|
}
|
|
157
|
+
catch (e) {
|
|
158
|
+
uxLog("warning", AzureBoardsProvider, c.yellow('[AzureBoardsProvider] ' + t('azureBoardsCommitWorkItemsError', {
|
|
159
|
+
message: e.message,
|
|
160
|
+
})));
|
|
161
|
+
}
|
|
146
162
|
}
|
|
147
163
|
// Get tickets from Azure PR
|
|
148
164
|
if (prInfo?.providerInfo?.workItemRefs?.length) {
|
|
@@ -156,7 +172,7 @@ export class AzureBoardsProvider extends TicketProviderRoot {
|
|
|
156
172
|
}
|
|
157
173
|
}
|
|
158
174
|
}
|
|
159
|
-
return
|
|
175
|
+
return sortArray(tickets, { by: ["id"], order: ["asc"] });
|
|
160
176
|
}
|
|
161
177
|
// Call Azure Work Items apis to gather more information from the ticket identifiers
|
|
162
178
|
async collectTicketsInfo(tickets) {
|
|
@@ -213,7 +229,8 @@ export class AzureBoardsProvider extends TicketProviderRoot {
|
|
|
213
229
|
return tickets;
|
|
214
230
|
}
|
|
215
231
|
/** True when the identifier is a work item id, bare or in the AB-1234 form used by the skills */
|
|
216
|
-
|
|
232
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
233
|
+
static matchesTicketId(ticketId, _config = {}) {
|
|
217
234
|
return /^(AB-)?[0-9]{1,10}$/i.test((ticketId || "").trim());
|
|
218
235
|
}
|
|
219
236
|
/** Accepts 1234, AB-1234, or a _workitems/edit/1234 URL */
|
|
@@ -342,7 +359,9 @@ export class AzureBoardsProvider extends TicketProviderRoot {
|
|
|
342
359
|
const taggedTickets = [];
|
|
343
360
|
const azureWorkItemApi = await this.azureApi.getWorkItemTrackingApi(this.serverUrl || "");
|
|
344
361
|
for (const ticket of tickets) {
|
|
345
|
-
|
|
362
|
+
// The list holds the tickets of every connector: without this filter a configured Azure
|
|
363
|
+
// Boards would call getWorkItem(NaN) on a JIRA key or a ServiceNow record number
|
|
364
|
+
if (ticket.provider === "AZURE" && ticket.foundOnServer) {
|
|
346
365
|
let commentMd = `Deployed from branch ${branchMarkdown} to org ${orgMarkdown}`;
|
|
347
366
|
if (pullRequestInfo) {
|
|
348
367
|
const prUrl = pullRequestInfo.webUrl || "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azureBoardsProvider.js","sourceRoot":"","sources":["../../../src/common/ticketProvider/azureBoardsProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"azureBoardsProvider.js","sourceRoot":"","sources":["../../../src/common/ticketProvider/azureBoardsProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import type { Ticket } from "./index.js";
|
|
1
|
+
import type { Ticket, TicketsFromStringOptions } from "./index.js";
|
|
2
2
|
import { TicketProviderRoot } from "./ticketProviderRoot.js";
|
|
3
3
|
import { CommonPullRequestInfo } from "../gitProvider/index.js";
|
|
4
4
|
export declare class GenericTicketingProvider extends TicketProviderRoot {
|
|
5
|
+
static readonly providerKey: "generic";
|
|
6
|
+
static readonly providerLabel = "Generic ticketing";
|
|
7
|
+
static readonly supportsTicketDetails = false;
|
|
5
8
|
private ticketRefRegex;
|
|
6
9
|
private ticketUrlBuilder;
|
|
7
10
|
constructor(config: any);
|
|
8
11
|
static isAvailable(config: any): boolean;
|
|
9
|
-
static getTicketsFromString(text: string, options?:
|
|
12
|
+
static getTicketsFromString(text: string, options?: TicketsFromStringOptions): Promise<Ticket[]>;
|
|
13
|
+
/**
|
|
14
|
+
* True when the identifier is exactly what the project's own regex describes.
|
|
15
|
+
*
|
|
16
|
+
* Only used to route an identifier to a connector: this one never fetches a ticket
|
|
17
|
+
* (`supportsTicketDetails` is false), so a match here can only ever end as "no connector able to
|
|
18
|
+
* fetch this ticket is configured".
|
|
19
|
+
*/
|
|
20
|
+
static matchesTicketId(ticketId: string, config?: any): boolean;
|
|
10
21
|
getLabel(): string;
|
|
11
22
|
collectTicketsInfo(tickets: Ticket[]): Promise<Ticket[]>;
|
|
12
23
|
postDeploymentComments(tickets: Ticket[], _org: string, _pullRequestInfo: CommonPullRequestInfo | null): Promise<Ticket[]>;
|
|
@@ -3,6 +3,10 @@ import { extractRegexMatches } from "../utils/index.js";
|
|
|
3
3
|
import { TicketProviderRoot } from "./ticketProviderRoot.js";
|
|
4
4
|
import { getConfig, getEnvVar } from "../../config/index.js";
|
|
5
5
|
export class GenericTicketingProvider extends TicketProviderRoot {
|
|
6
|
+
static providerKey = "generic";
|
|
7
|
+
static providerLabel = "Generic ticketing";
|
|
8
|
+
// No API to call: this connector collects references and builds their URL, nothing more
|
|
9
|
+
static supportsTicketDetails = false;
|
|
6
10
|
ticketRefRegex;
|
|
7
11
|
ticketUrlBuilder;
|
|
8
12
|
constructor(config) {
|
|
@@ -16,10 +20,9 @@ export class GenericTicketingProvider extends TicketProviderRoot {
|
|
|
16
20
|
static isAvailable(config) {
|
|
17
21
|
return (getEnvVar("GENERIC_TICKETING_PROVIDER_REGEX") || config.genericTicketingProviderRegex) && (getEnvVar("GENERIC_TICKETING_PROVIDER_URL_BUILDER") || config.genericTicketingProviderUrlBuilder);
|
|
18
22
|
}
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
20
23
|
static async getTicketsFromString(text, options = {}) {
|
|
21
24
|
const tickets = [];
|
|
22
|
-
const config = await getConfig("project");
|
|
25
|
+
const config = options.config || (await getConfig("project"));
|
|
23
26
|
if (!this.isAvailable(config)) {
|
|
24
27
|
return tickets;
|
|
25
28
|
}
|
|
@@ -40,6 +43,26 @@ export class GenericTicketingProvider extends TicketProviderRoot {
|
|
|
40
43
|
const ticketsSorted = sortArray(tickets, { by: ["id"], order: ["asc"] });
|
|
41
44
|
return ticketsSorted;
|
|
42
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* True when the identifier is exactly what the project's own regex describes.
|
|
48
|
+
*
|
|
49
|
+
* Only used to route an identifier to a connector: this one never fetches a ticket
|
|
50
|
+
* (`supportsTicketDetails` is false), so a match here can only ever end as "no connector able to
|
|
51
|
+
* fetch this ticket is configured".
|
|
52
|
+
*/
|
|
53
|
+
static matchesTicketId(ticketId, config = {}) {
|
|
54
|
+
const ticketRefRegex = getEnvVar("GENERIC_TICKETING_PROVIDER_REGEX") || config?.genericTicketingProviderRegex;
|
|
55
|
+
if (!ticketRefRegex) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
return new RegExp(`^(?:${ticketRefRegex})$`).test((ticketId || "").trim());
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// A malformed project regex must not break the routing of the other connectors
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
43
66
|
getLabel() {
|
|
44
67
|
return "sfdx-hardis Generic ticketing system connector";
|
|
45
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genericProvider.js","sourceRoot":"","sources":["../../../src/common/ticketProvider/genericProvider.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG7D,MAAM,OAAO,wBAAyB,SAAQ,kBAAkB;
|
|
1
|
+
{"version":3,"file":"genericProvider.js","sourceRoot":"","sources":["../../../src/common/ticketProvider/genericProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +1,59 @@
|
|
|
1
|
-
import { JiraProvider } from "./jiraProvider.js";
|
|
2
1
|
import { TicketProviderRoot } from "./ticketProviderRoot.js";
|
|
3
|
-
import { GenericTicketingProvider } from "./genericProvider.js";
|
|
4
|
-
import { AzureBoardsProvider } from "./azureBoardsProvider.js";
|
|
5
2
|
import { CommonPullRequestInfo } from "../gitProvider/index.js";
|
|
6
3
|
import { TicketDetails, TicketDetailsOptions } from "./ticketDetails.js";
|
|
7
|
-
export
|
|
4
|
+
export type TicketProviderKey = "jira" | "azure" | "servicenow" | "generic";
|
|
8
5
|
/**
|
|
9
|
-
*
|
|
6
|
+
* Options handed to every `getTicketsFromString()`.
|
|
10
7
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* notes. Deep fetch is opt-in per invocation, so a new connector can land here without touching the
|
|
14
|
-
* behavior of projects that already use the bulk flows.
|
|
8
|
+
* `config` is read once by the caller and passed down, so scanning a Pull Request does not re-read
|
|
9
|
+
* the project configuration once per connector.
|
|
15
10
|
*/
|
|
16
|
-
export
|
|
17
|
-
|
|
11
|
+
export interface TicketsFromStringOptions {
|
|
12
|
+
pullRequestInfo?: CommonPullRequestInfo | null;
|
|
13
|
+
commits?: any[];
|
|
14
|
+
config?: any;
|
|
15
|
+
}
|
|
18
16
|
/**
|
|
19
|
-
* Static surface
|
|
17
|
+
* Static surface every ticketing connector exposes.
|
|
20
18
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* All of them are declared the same way and live in the same list: what differs between two
|
|
20
|
+
* connectors is the value of their flags, never the shape of their class. `supportsTicketDetails`
|
|
21
|
+
* is the only capability that is not universal - the generic connector has no API to call, so it
|
|
22
|
+
* can collect references but never fetch a ticket in full.
|
|
23
23
|
*/
|
|
24
|
-
export type
|
|
24
|
+
export type TicketProviderClass = {
|
|
25
25
|
new (config: any): TicketProviderRoot;
|
|
26
|
+
providerKey: TicketProviderKey;
|
|
27
|
+
providerLabel: string;
|
|
28
|
+
supportsTicketDetails: boolean;
|
|
26
29
|
isAvailable(config: any): boolean;
|
|
27
|
-
matchesTicketId(ticketId: string): boolean;
|
|
30
|
+
matchesTicketId(ticketId: string, config?: any): boolean;
|
|
31
|
+
getTicketsFromString(text: string, options: TicketsFromStringOptions): Promise<Ticket[]>;
|
|
32
|
+
/** Only implemented by connectors able to complete their own configuration from the git remote */
|
|
28
33
|
autoDetectFromGitRemote?: () => Promise<void>;
|
|
29
34
|
};
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
providerClass: TicketDetailsProviderClass;
|
|
34
|
-
}
|
|
35
|
+
export declare const allTicketProviders: TicketProviderClass[];
|
|
36
|
+
/** Connectors `sf hardis ticket get` can fetch a full ticket from */
|
|
37
|
+
export declare function ticketDetailsProviderKeys(): TicketProviderKey[];
|
|
35
38
|
export declare abstract class TicketProvider {
|
|
36
39
|
static getInstances(config: any): TicketProviderRoot[];
|
|
37
|
-
static getProvidersTicketsFromString(text: string, options
|
|
40
|
+
static getProvidersTicketsFromString(text: string, options?: TicketsFromStringOptions): Promise<Ticket[]>;
|
|
38
41
|
static collectTicketsInfo(tickets: Ticket[]): Promise<Ticket[]>;
|
|
39
42
|
/**
|
|
40
43
|
* Deep fetch of a single ticket, with its description, comments, links and attachments.
|
|
41
44
|
*
|
|
42
45
|
* The provider is deduced from the shape of the identifier (PROJ-123 -> JIRA, 1234 / AB-1234 ->
|
|
43
|
-
* Azure Boards, INC0012345 -> ServiceNow) unless `providerKey` forces one. Throws
|
|
46
|
+
* Azure Boards, INC0012345 -> ServiceNow) unless `providerKey` forces one. Throws an explicit
|
|
44
47
|
* SfError rather than returning null when nothing can handle the identifier, so the caller can
|
|
45
48
|
* report which variables are missing instead of an empty result.
|
|
46
49
|
*/
|
|
47
50
|
static getTicketDetails(ticketId: string, options?: TicketDetailsOptions & {
|
|
48
|
-
providerKey?:
|
|
51
|
+
providerKey?: TicketProviderKey;
|
|
49
52
|
}): Promise<TicketDetails | null>;
|
|
50
53
|
static postDeploymentActions(tickets: Ticket[], org: string, pullRequestInfo: CommonPullRequestInfo | null): Promise<Ticket[]>;
|
|
51
54
|
}
|
|
52
55
|
export interface Ticket {
|
|
53
|
-
provider: "JIRA" | "AZURE" | "GENERIC";
|
|
56
|
+
provider: "JIRA" | "AZURE" | "GENERIC" | "SERVICENOW";
|
|
54
57
|
id: string;
|
|
55
58
|
url: string;
|
|
56
59
|
subject?: string;
|
|
@@ -64,4 +67,10 @@ export interface Ticket {
|
|
|
64
67
|
reporter?: string;
|
|
65
68
|
reporterLabel?: string;
|
|
66
69
|
foundOnServer?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Internal identifier of the record in its ticketing system, when it differs from the reference
|
|
72
|
+
* displayed to humans (a ServiceNow sys_id, where the ticket is referenced by its number).
|
|
73
|
+
* Collected once, so posting the deployment comment does not need a second lookup.
|
|
74
|
+
*/
|
|
75
|
+
providerRecordId?: string;
|
|
67
76
|
}
|
|
@@ -9,20 +9,16 @@ import { getConfig } from "../../config/index.js";
|
|
|
9
9
|
import { t } from '../utils/i18n.js';
|
|
10
10
|
import { SfError } from "@salesforce/core";
|
|
11
11
|
import { ServiceNowProvider } from "./serviceNowProvider.js";
|
|
12
|
-
export const allTicketProviders = [
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
* pull request, and adding a provider to it changes the content of existing PR comments and release
|
|
18
|
-
* notes. Deep fetch is opt-in per invocation, so a new connector can land here without touching the
|
|
19
|
-
* behavior of projects that already use the bulk flows.
|
|
20
|
-
*/
|
|
21
|
-
export const ticketDetailsProviders = [
|
|
22
|
-
{ key: "jira", label: "JIRA", providerClass: JiraProvider },
|
|
23
|
-
{ key: "azure", label: "Azure Boards", providerClass: AzureBoardsProvider },
|
|
24
|
-
{ key: "servicenow", label: "ServiceNow", providerClass: ServiceNowProvider },
|
|
12
|
+
export const allTicketProviders = [
|
|
13
|
+
JiraProvider,
|
|
14
|
+
GenericTicketingProvider,
|
|
15
|
+
AzureBoardsProvider,
|
|
16
|
+
ServiceNowProvider,
|
|
25
17
|
];
|
|
18
|
+
/** Connectors `sf hardis ticket get` can fetch a full ticket from */
|
|
19
|
+
export function ticketDetailsProviderKeys() {
|
|
20
|
+
return allTicketProviders.filter((provider) => provider.supportsTicketDetails).map((provider) => provider.providerKey);
|
|
21
|
+
}
|
|
26
22
|
export class TicketProvider {
|
|
27
23
|
static getInstances(config) {
|
|
28
24
|
const ticketProviders = [];
|
|
@@ -34,10 +30,11 @@ export class TicketProvider {
|
|
|
34
30
|
return ticketProviders;
|
|
35
31
|
}
|
|
36
32
|
// Returns all providers ticket references from input string
|
|
37
|
-
static async getProvidersTicketsFromString(text, options) {
|
|
33
|
+
static async getProvidersTicketsFromString(text, options = {}) {
|
|
38
34
|
const tickets = [];
|
|
35
|
+
const optionsWithConfig = { ...options, config: options.config || (await getConfig("project")) };
|
|
39
36
|
for (const ticketProvider of allTicketProviders) {
|
|
40
|
-
const providerTickets = await ticketProvider.getTicketsFromString(text,
|
|
37
|
+
const providerTickets = await ticketProvider.getTicketsFromString(text, optionsWithConfig);
|
|
41
38
|
tickets.push(...providerTickets);
|
|
42
39
|
}
|
|
43
40
|
const ticketsSorted = sortArray(tickets, { by: ["id"], order: ["asc"] });
|
|
@@ -62,14 +59,15 @@ export class TicketProvider {
|
|
|
62
59
|
* Deep fetch of a single ticket, with its description, comments, links and attachments.
|
|
63
60
|
*
|
|
64
61
|
* The provider is deduced from the shape of the identifier (PROJ-123 -> JIRA, 1234 / AB-1234 ->
|
|
65
|
-
* Azure Boards, INC0012345 -> ServiceNow) unless `providerKey` forces one. Throws
|
|
62
|
+
* Azure Boards, INC0012345 -> ServiceNow) unless `providerKey` forces one. Throws an explicit
|
|
66
63
|
* SfError rather than returning null when nothing can handle the identifier, so the caller can
|
|
67
64
|
* report which variables are missing instead of an empty result.
|
|
68
65
|
*/
|
|
69
66
|
static async getTicketDetails(ticketId, options = {}) {
|
|
70
67
|
const config = await getConfig("project");
|
|
71
68
|
const trimmedId = (ticketId || "").trim();
|
|
72
|
-
const shapeMatches =
|
|
69
|
+
const shapeMatches = allTicketProviders.filter((provider) => provider.supportsTicketDetails &&
|
|
70
|
+
(options.providerKey ? provider.providerKey === options.providerKey : provider.matchesTicketId(trimmedId, config)));
|
|
73
71
|
if (shapeMatches.length === 0) {
|
|
74
72
|
throw new SfError(t('ticketDetailsUnknownIdShape', { ticketId: trimmedId }));
|
|
75
73
|
}
|
|
@@ -77,27 +75,27 @@ export class TicketProvider {
|
|
|
77
75
|
// and the project from the git remote). Runs before isAvailable(), which is synchronous and
|
|
78
76
|
// cannot look at the remote itself. Only the candidates matching the identifier are prepared,
|
|
79
77
|
// so a JIRA key never triggers a git call.
|
|
80
|
-
for (const
|
|
81
|
-
if (
|
|
82
|
-
await
|
|
78
|
+
for (const provider of shapeMatches) {
|
|
79
|
+
if (provider.autoDetectFromGitRemote) {
|
|
80
|
+
await provider.autoDetectFromGitRemote();
|
|
83
81
|
}
|
|
84
82
|
}
|
|
85
|
-
const available = shapeMatches.filter((
|
|
83
|
+
const available = shapeMatches.filter((provider) => provider.isAvailable(config));
|
|
86
84
|
if (available.length === 0) {
|
|
87
85
|
throw new SfError(t('ticketDetailsProviderNotConfigured', {
|
|
88
86
|
ticketId: trimmedId,
|
|
89
|
-
providers: shapeMatches.map((
|
|
87
|
+
providers: shapeMatches.map((provider) => provider.providerLabel).join(", "),
|
|
90
88
|
}));
|
|
91
89
|
}
|
|
92
90
|
if (available.length > 1) {
|
|
93
91
|
throw new SfError(t('ticketDetailsAmbiguousProvider', {
|
|
94
92
|
ticketId: trimmedId,
|
|
95
|
-
providers: available.map((
|
|
93
|
+
providers: available.map((provider) => provider.providerKey).join(", "),
|
|
96
94
|
}));
|
|
97
95
|
}
|
|
98
|
-
const
|
|
99
|
-
const provider = new
|
|
100
|
-
uxLog("action", this, c.cyan('[TicketProvider] ' + t('ticketDetailsFetching', { ticketId: trimmedId, provider:
|
|
96
|
+
const providerClass = available[0];
|
|
97
|
+
const provider = new providerClass(config);
|
|
98
|
+
uxLog("action", this, c.cyan('[TicketProvider] ' + t('ticketDetailsFetching', { ticketId: trimmedId, provider: providerClass.providerLabel })));
|
|
101
99
|
return provider.getTicketDetails(trimmedId, options);
|
|
102
100
|
}
|
|
103
101
|
// Process Ticket providers actions after a deployment.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/ticketProvider/index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAsB,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/ticketProvider/index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAsB,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAqC7D,MAAM,CAAC,MAAM,kBAAkB,GAA0B;IACvD,YAAY;IACZ,wBAAwB;IACxB,mBAAmB;IACnB,kBAAkB;CACnB,CAAC;AAEF,qEAAqE;AACrE,MAAM,UAAU,yBAAyB;IACvC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACzH,CAAC;AAED,MAAM,OAAgB,cAAc;IAClC,MAAM,CAAC,YAAY,CAAC,MAAW;QAC7B,MAAM,eAAe,GAAyB,EAAE,CAAC;QACjD,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;YAC1C,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,eAAe,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,4DAA4D;IACrD,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAY,EAAE,UAAoC,EAAE;QACpG,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,iBAAiB,GAA6B,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC3H,KAAK,MAAM,cAAc,IAAI,kBAAkB,EAAE,CAAC;YAChD,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAC3F,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,aAAa,GAAa,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,kEAAkE;IAC3D,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAiB;QACtD,2BAA2B,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;QACvF,CAAC;QACD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAClC,QAAgB,EAChB,UAAsE,EAAE;QAExE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAC5C,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,qBAAqB;YAC9B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CACrH,CAAC;QACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,gGAAgG;QAChG,4FAA4F;QAC5F,8FAA8F;QAC9F,2CAA2C;QAC3C,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,IAAI,QAAQ,CAAC,uBAAuB,EAAE,CAAC;gBACrC,MAAM,QAAQ,CAAC,uBAAuB,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAClF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,OAAO,CACf,CAAC,CAAC,oCAAoC,EAAE;gBACtC,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAC7E,CAAC,CACH,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,OAAO,CACf,CAAC,CAAC,gCAAgC,EAAE;gBAClC,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aACxE,CAAC,CACH,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;QAChJ,OAAO,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,uDAAuD;IACvD,+DAA+D;IACxD,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAiB,EAAE,GAAW,EAAE,eAA6C;QACrH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,cAAc,CAAC,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|