@salesforce/plugin-devops-center 1.4.0 → 1.4.1
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/README.md +592 -55
- package/lib/commands/devops/pipeline/{activate.d.ts → get.d.ts} +3 -3
- package/lib/commands/devops/pipeline/get.js +81 -0
- package/lib/commands/devops/pipeline/get.js.map +1 -0
- package/lib/commands/devops/pipeline/list.d.ts +13 -0
- package/lib/commands/devops/pipeline/list.js +58 -0
- package/lib/commands/devops/pipeline/list.js.map +1 -0
- package/lib/commands/devops/pipeline/project/delete.d.ts +15 -0
- package/lib/commands/devops/pipeline/project/delete.js +71 -0
- package/lib/commands/devops/pipeline/project/delete.js.map +1 -0
- package/lib/commands/devops/pipeline/stage/delete.d.ts +15 -0
- package/lib/commands/devops/pipeline/stage/delete.js +69 -0
- package/lib/commands/devops/pipeline/stage/delete.js.map +1 -0
- package/lib/commands/devops/pipeline/update.d.ts +18 -0
- package/lib/commands/devops/pipeline/update.js +126 -0
- package/lib/commands/devops/pipeline/update.js.map +1 -0
- package/lib/commands/devops/project/update.d.ts +17 -0
- package/lib/commands/devops/project/update.js +86 -0
- package/lib/commands/devops/project/update.js.map +1 -0
- package/lib/commands/devops/promote.d.ts +24 -0
- package/lib/commands/devops/promote.js +148 -0
- package/lib/commands/devops/promote.js.map +1 -0
- package/lib/commands/devops/promotion/complete.d.ts +20 -0
- package/lib/commands/devops/promotion/complete.js +112 -0
- package/lib/commands/devops/promotion/complete.js.map +1 -0
- package/lib/commands/devops/request/status.d.ts +14 -0
- package/lib/commands/devops/request/status.js +71 -0
- package/lib/commands/devops/request/status.js.map +1 -0
- package/lib/commands/devops/{pull-request → review}/create.d.ts +1 -1
- package/lib/commands/devops/{pull-request → review}/create.js +3 -3
- package/lib/commands/devops/review/create.js.map +1 -0
- package/lib/commands/devops/stage/environment/add.js +2 -0
- package/lib/commands/devops/stage/environment/add.js.map +1 -1
- package/lib/commands/devops/stage/environment/delete.d.ts +15 -0
- package/lib/commands/devops/{pipeline/activate.js → stage/environment/delete.js} +18 -30
- package/lib/commands/devops/stage/environment/delete.js.map +1 -0
- package/lib/commands/devops/work-item/combine.d.ts +15 -0
- package/lib/commands/devops/work-item/combine.js +109 -0
- package/lib/commands/devops/work-item/combine.js.map +1 -0
- package/lib/commands/devops/work-item/prepare.d.ts +14 -0
- package/lib/commands/devops/work-item/prepare.js +98 -0
- package/lib/commands/devops/work-item/prepare.js.map +1 -0
- package/lib/common/flags/promote/promoteFlags.d.ts +1 -0
- package/lib/common/flags/promote/promoteFlags.js +5 -0
- package/lib/common/flags/promote/promoteFlags.js.map +1 -1
- package/lib/common/outputService/aorOutputService.js +4 -4
- package/lib/common/outputService/aorOutputService.js.map +1 -1
- package/lib/common/outputService/outputUtils.js +1 -2
- package/lib/common/outputService/outputUtils.js.map +1 -1
- package/lib/common/selectors/asyncOperationResultsSelector.js +3 -1
- package/lib/common/selectors/asyncOperationResultsSelector.js.map +1 -1
- package/lib/common/selectors/deployComponentsSelector.js +5 -6
- package/lib/common/selectors/deployComponentsSelector.js.map +1 -1
- package/lib/common/selectors/deployProgressSummarySelector.js +3 -1
- package/lib/common/selectors/deployProgressSummarySelector.js.map +1 -1
- package/lib/common/selectors/deploymentResultsSelector.js +10 -6
- package/lib/common/selectors/deploymentResultsSelector.js.map +1 -1
- package/lib/common/selectors/environmentSelector.js +4 -2
- package/lib/common/selectors/environmentSelector.js.map +1 -1
- package/lib/common/selectors/namedCredentialSelector.js +2 -1
- package/lib/common/selectors/namedCredentialSelector.js.map +1 -1
- package/lib/common/selectors/pipelineStageSelector.js +5 -3
- package/lib/common/selectors/pipelineStageSelector.js.map +1 -1
- package/lib/common/selectors/validateDeploySelector.js +3 -1
- package/lib/common/selectors/validateDeploySelector.js.map +1 -1
- package/lib/common/selectors/workItemSelector.js +4 -1
- package/lib/common/selectors/workItemSelector.js.map +1 -1
- package/lib/utils/activatePipeline.d.ts +13 -4
- package/lib/utils/activatePipeline.js +7 -6
- package/lib/utils/activatePipeline.js.map +1 -1
- package/lib/utils/attachProject.js +2 -0
- package/lib/utils/attachProject.js.map +1 -1
- package/lib/utils/combineWorkItems.d.ts +20 -0
- package/lib/utils/combineWorkItems.js +42 -0
- package/lib/utils/combineWorkItems.js.map +1 -0
- package/lib/utils/createPullRequest.js +2 -1
- package/lib/utils/createPullRequest.js.map +1 -1
- package/lib/utils/deletePipelineStage.d.ts +12 -0
- package/lib/utils/deletePipelineStage.js +41 -0
- package/lib/utils/deletePipelineStage.js.map +1 -0
- package/lib/utils/deleteStageEnvironment.d.ts +8 -0
- package/lib/utils/deleteStageEnvironment.js +33 -0
- package/lib/utils/deleteStageEnvironment.js.map +1 -0
- package/lib/utils/deployStage.d.ts +29 -0
- package/lib/utils/deployStage.js +68 -0
- package/lib/utils/deployStage.js.map +1 -0
- package/lib/utils/detachProject.d.ts +8 -0
- package/lib/utils/detachProject.js +37 -0
- package/lib/utils/detachProject.js.map +1 -0
- package/lib/utils/getPipeline.d.ts +27 -0
- package/lib/utils/getPipeline.js +66 -0
- package/lib/utils/getPipeline.js.map +1 -0
- package/lib/utils/getRequestStatus.d.ts +10 -0
- package/lib/utils/getRequestStatus.js +32 -0
- package/lib/utils/getRequestStatus.js.map +1 -0
- package/lib/utils/listPipelines.d.ts +11 -0
- package/lib/utils/listPipelines.js +20 -0
- package/lib/utils/listPipelines.js.map +1 -0
- package/lib/utils/pipelineUtils.js +3 -0
- package/lib/utils/pipelineUtils.js.map +1 -1
- package/lib/utils/prepareWorkItem.d.ts +25 -0
- package/lib/utils/prepareWorkItem.js +55 -0
- package/lib/utils/prepareWorkItem.js.map +1 -0
- package/lib/utils/promoteStage.d.ts +21 -0
- package/lib/utils/promoteStage.js +46 -0
- package/lib/utils/promoteStage.js.map +1 -0
- package/lib/utils/soqlUtils.d.ts +23 -0
- package/lib/utils/soqlUtils.js +63 -0
- package/lib/utils/soqlUtils.js.map +1 -0
- package/lib/utils/updateProject.d.ts +17 -0
- package/lib/utils/updateProject.js +41 -0
- package/lib/utils/updateProject.js.map +1 -0
- package/lib/utils/updateWorkItem.js +3 -1
- package/lib/utils/updateWorkItem.js.map +1 -1
- package/lib/utils/workItems.js +2 -0
- package/lib/utils/workItems.js.map +1 -1
- package/messages/devops.pipeline.get.md +17 -0
- package/messages/devops.pipeline.list.md +13 -0
- package/messages/devops.pipeline.project.delete.md +25 -0
- package/messages/devops.pipeline.stage.delete.md +25 -0
- package/messages/devops.pipeline.update.md +47 -0
- package/messages/devops.project.update.md +45 -0
- package/messages/devops.promote.md +61 -0
- package/messages/devops.promotion.complete.md +47 -0
- package/messages/devops.request.status.md +21 -0
- package/messages/devops.stage.environment.delete.md +29 -0
- package/messages/devops.work-item.combine.md +39 -0
- package/messages/devops.work-item.prepare.md +27 -0
- package/npm-shrinkwrap.json +37 -174
- package/oclif.lock +1 -1
- package/oclif.manifest.json +997 -63
- package/package.json +20 -8
- package/schemas/devops-pipeline-get.json +98 -0
- package/schemas/devops-pipeline-list.json +38 -0
- package/schemas/devops-pipeline-project-delete.json +25 -0
- package/schemas/devops-pipeline-stage-delete.json +25 -0
- package/schemas/{devops-pipeline-activate.json → devops-pipeline-update.json} +5 -2
- package/schemas/devops-project-update.json +31 -0
- package/schemas/devops-promote.json +28 -0
- package/schemas/devops-promotion-complete.json +34 -0
- package/schemas/devops-request-status.json +31 -0
- package/schemas/devops-stage-environment-delete.json +25 -0
- package/schemas/devops-work__item-combine.json +25 -0
- package/schemas/devops-work__item-prepare.json +25 -0
- package/lib/commands/devops/pipeline/activate.js.map +0 -1
- package/lib/commands/devops/pull-request/create.js.map +0 -1
- package/messages/devops.pipeline.activate.md +0 -29
- /package/messages/{devops.pull-request.create.md → devops.review.create.md} +0 -0
- /package/schemas/{devops-pull__request-create.json → devops-review-create.json} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../../src/commands/devops/stage/environment/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
2
|
+
import { CombineWorkItemsPrepareResult } from '../../../utils/combineWorkItems.js';
|
|
3
|
+
export default class DevopsWorkItemCombine extends SfCommand<CombineWorkItemsPrepareResult> {
|
|
4
|
+
static readonly summary: string;
|
|
5
|
+
static readonly description: string;
|
|
6
|
+
static readonly examples: string[];
|
|
7
|
+
static readonly flags: {
|
|
8
|
+
'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
'parent-work-item-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
'child-work-item-id': import("@oclif/core/interfaces").OptionFlag<string[], import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
'target-stage-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<CombineWorkItemsPrepareResult>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026, Salesforce, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Messages } from '@salesforce/core';
|
|
17
|
+
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
18
|
+
import { combineWorkItemsPrepare } from '../../../utils/combineWorkItems.js';
|
|
19
|
+
import { getPipelineIdForProject } from '../../../utils/pipelineUtils.js';
|
|
20
|
+
import { resolveProjectIdFromWorkItem } from '../../../utils/prepareWorkItem.js';
|
|
21
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
22
|
+
const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.work-item.combine');
|
|
23
|
+
const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
|
|
24
|
+
export default class DevopsWorkItemCombine extends SfCommand {
|
|
25
|
+
static summary = messages.getMessage('summary');
|
|
26
|
+
static description = messages.getMessage('description');
|
|
27
|
+
static examples = messages.getMessages('examples');
|
|
28
|
+
static flags = {
|
|
29
|
+
'target-org': Flags.requiredOrg(),
|
|
30
|
+
'api-version': Flags.orgApiVersion(),
|
|
31
|
+
'parent-work-item-id': Flags.salesforceId({
|
|
32
|
+
summary: messages.getMessage('flags.parent-work-item-id.summary'),
|
|
33
|
+
description: messages.getMessage('flags.parent-work-item-id.description'),
|
|
34
|
+
required: true,
|
|
35
|
+
startsWith: '1fk',
|
|
36
|
+
char: undefined,
|
|
37
|
+
}),
|
|
38
|
+
'child-work-item-id': Flags.salesforceId({
|
|
39
|
+
summary: messages.getMessage('flags.child-work-item-id.summary'),
|
|
40
|
+
description: messages.getMessage('flags.child-work-item-id.description'),
|
|
41
|
+
required: true,
|
|
42
|
+
multiple: true,
|
|
43
|
+
startsWith: '1fk',
|
|
44
|
+
char: undefined,
|
|
45
|
+
}),
|
|
46
|
+
'target-stage-id': Flags.salesforceId({
|
|
47
|
+
summary: messages.getMessage('flags.target-stage-id.summary'),
|
|
48
|
+
char: 't',
|
|
49
|
+
required: true,
|
|
50
|
+
startsWith: '1QV',
|
|
51
|
+
}),
|
|
52
|
+
};
|
|
53
|
+
async run() {
|
|
54
|
+
const { flags } = await this.parse(DevopsWorkItemCombine);
|
|
55
|
+
const org = flags['target-org'];
|
|
56
|
+
const connection = org.getConnection(flags['api-version']);
|
|
57
|
+
const parentWorkItemId = flags['parent-work-item-id'];
|
|
58
|
+
const childWorkItemIds = flags['child-work-item-id'];
|
|
59
|
+
let pipelineId;
|
|
60
|
+
let sourceStageId;
|
|
61
|
+
try {
|
|
62
|
+
const { projectId, pipelineStageId } = await resolveProjectIdFromWorkItem(connection, parentWorkItemId);
|
|
63
|
+
sourceStageId = pipelineStageId;
|
|
64
|
+
pipelineId = await getPipelineIdForProject(connection, projectId);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
68
|
+
if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
|
|
69
|
+
this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
|
|
70
|
+
}
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
73
|
+
if (!pipelineId) {
|
|
74
|
+
this.error(messages.getMessage('error.NoPipeline'));
|
|
75
|
+
}
|
|
76
|
+
let result;
|
|
77
|
+
try {
|
|
78
|
+
result = await combineWorkItemsPrepare({
|
|
79
|
+
connection,
|
|
80
|
+
pipelineId,
|
|
81
|
+
parentWorkItemId,
|
|
82
|
+
childWorkItemIds,
|
|
83
|
+
sourceStageId,
|
|
84
|
+
targetStageId: flags['target-stage-id'],
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
89
|
+
if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
|
|
90
|
+
this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
|
|
91
|
+
}
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
if (result.success) {
|
|
95
|
+
this.log('Work items prepared for custom promotion.');
|
|
96
|
+
this.log(` Request Token: ${result.requestToken ?? ''}`);
|
|
97
|
+
this.log('');
|
|
98
|
+
this.log('To complete the promotion, run:');
|
|
99
|
+
this.log(` sf devops work-item promote --target-org ${org.getUsername() ?? '<org>'} --work-item-id ${parentWorkItemId} --target-stage-id ${flags['target-stage-id']}`);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
this.log('Failed to prepare work items for custom promotion.');
|
|
103
|
+
this.log(` Error Code: ${result.errorCode ?? ''}`);
|
|
104
|
+
this.log(` Error Message: ${result.errorMessage ?? ''}`);
|
|
105
|
+
}
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=combine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combine.js","sourceRoot":"","sources":["../../../../src/commands/devops/work-item/combine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAiC,MAAM,oCAAoC,CAAC;AAC5G,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,0BAA0B,CAAC,CAAC;AACvG,MAAM,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;AAEtG,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,SAAwC;IAClF,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE;QACjC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;QACpC,qBAAqB,EAAE,KAAK,CAAC,YAAY,CAAC;YACxC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,mCAAmC,CAAC;YACjE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,uCAAuC,CAAC;YACzE,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,SAAS;SAChB,CAAC;QACF,oBAAoB,EAAE,KAAK,CAAC,YAAY,CAAC;YACvC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,kCAAkC,CAAC;YAChE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,sCAAsC,CAAC;YACxE,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,SAAS;SAChB,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,YAAY,CAAC;YACpC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,+BAA+B,CAAC;YAC7D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;SAClB,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACtD,MAAM,gBAAgB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAErD,IAAI,UAA8B,CAAC;QACnC,IAAI,aAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,4BAA4B,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACxG,aAAa,GAAG,eAAe,CAAC;YAChC,UAAU,GAAG,MAAM,uBAAuB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC3E,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,MAAqC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,uBAAuB,CAAC;gBACrC,UAAU;gBACV,UAAU;gBACV,gBAAgB;gBAChB,gBAAgB;gBAChB,aAAa;gBACb,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC3E,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CACN,8CACE,GAAG,CAAC,WAAW,EAAE,IAAI,OACvB,mBAAmB,gBAAgB,sBAAsB,KAAK,CAAC,iBAAiB,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
2
|
+
import { PrepareWorkItemResult } from '../../../utils/prepareWorkItem.js';
|
|
3
|
+
export default class DevopsWorkItemPrepare extends SfCommand<PrepareWorkItemResult> {
|
|
4
|
+
static readonly summary: string;
|
|
5
|
+
static readonly description: string;
|
|
6
|
+
static readonly examples: string[];
|
|
7
|
+
static readonly flags: {
|
|
8
|
+
'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
'work-item-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
'target-stage-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<PrepareWorkItemResult>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026, Salesforce, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Messages } from '@salesforce/core';
|
|
17
|
+
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
18
|
+
import { prepareWorkItem, resolveProjectIdFromWorkItem, } from '../../../utils/prepareWorkItem.js';
|
|
19
|
+
import { getPipelineIdForProject } from '../../../utils/pipelineUtils.js';
|
|
20
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
21
|
+
const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.work-item.prepare');
|
|
22
|
+
const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
|
|
23
|
+
export default class DevopsWorkItemPrepare extends SfCommand {
|
|
24
|
+
static summary = messages.getMessage('summary');
|
|
25
|
+
static description = messages.getMessage('description');
|
|
26
|
+
static examples = messages.getMessages('examples');
|
|
27
|
+
static flags = {
|
|
28
|
+
'target-org': Flags.requiredOrg(),
|
|
29
|
+
'api-version': Flags.orgApiVersion(),
|
|
30
|
+
'work-item-id': Flags.salesforceId({
|
|
31
|
+
summary: messages.getMessage('flags.work-item-id.summary'),
|
|
32
|
+
char: 'i',
|
|
33
|
+
required: true,
|
|
34
|
+
startsWith: '1fk',
|
|
35
|
+
}),
|
|
36
|
+
'target-stage-id': Flags.salesforceId({
|
|
37
|
+
summary: messages.getMessage('flags.target-stage-id.summary'),
|
|
38
|
+
char: 't',
|
|
39
|
+
required: true,
|
|
40
|
+
startsWith: '1QV',
|
|
41
|
+
}),
|
|
42
|
+
};
|
|
43
|
+
async run() {
|
|
44
|
+
const { flags } = await this.parse(DevopsWorkItemPrepare);
|
|
45
|
+
const org = flags['target-org'];
|
|
46
|
+
const connection = org.getConnection(flags['api-version']);
|
|
47
|
+
const workItemId = flags['work-item-id'];
|
|
48
|
+
let projectId;
|
|
49
|
+
let sourceStageId;
|
|
50
|
+
try {
|
|
51
|
+
const workItem = await resolveProjectIdFromWorkItem(connection, workItemId);
|
|
52
|
+
projectId = workItem.projectId;
|
|
53
|
+
sourceStageId = workItem.pipelineStageId;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
57
|
+
if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
|
|
58
|
+
this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
|
|
59
|
+
}
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
if (!sourceStageId) {
|
|
63
|
+
this.error(`Work item '${workItemId}' is not currently assigned to a pipeline stage.`);
|
|
64
|
+
}
|
|
65
|
+
const pipelineId = await getPipelineIdForProject(connection, projectId);
|
|
66
|
+
if (!pipelineId) {
|
|
67
|
+
this.error(`No pipeline found for work item ${workItemId}. Ensure the project has an associated pipeline.`);
|
|
68
|
+
}
|
|
69
|
+
let result;
|
|
70
|
+
try {
|
|
71
|
+
result = await prepareWorkItem({
|
|
72
|
+
connection,
|
|
73
|
+
pipelineId,
|
|
74
|
+
workItemId,
|
|
75
|
+
sourceStageId,
|
|
76
|
+
targetStageId: flags['target-stage-id'],
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
81
|
+
if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
|
|
82
|
+
this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
|
|
83
|
+
}
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
if (result.success) {
|
|
87
|
+
this.log(`Work item ${workItemId} prepared for one-off promotion.`);
|
|
88
|
+
this.log(` Request Token: ${result.requestToken ?? ''}`);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.log('Failed to prepare work item for one-off promotion.');
|
|
92
|
+
this.log(` Error Code: ${result.errorCode ?? ''}`);
|
|
93
|
+
this.log(` Error Message: ${result.errorMessage ?? ''}`);
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=prepare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../../src/commands/devops/work-item/prepare.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare const testLevel: import("@oclif/core/interfaces").FlagDefinition<
|
|
|
10
10
|
requiredOrDefaulted: false;
|
|
11
11
|
}>;
|
|
12
12
|
export declare const specificTests: OptionFlag<string[] | undefined>;
|
|
13
|
+
export declare const specificTestsNoChar: OptionFlag<string[] | undefined>;
|
|
13
14
|
export declare const deployAll: BooleanFlag<boolean>;
|
|
14
15
|
export declare const bundleVersionName: OptionFlag<string | undefined>;
|
|
15
16
|
export declare const async: BooleanFlag<boolean>;
|
|
@@ -41,6 +41,11 @@ export const specificTests = Flags.string({
|
|
|
41
41
|
description: messages.getMessage('promote.tests.description'),
|
|
42
42
|
summary: messages.getMessage('promote.tests.summary'),
|
|
43
43
|
});
|
|
44
|
+
export const specificTestsNoChar = Flags.string({
|
|
45
|
+
multiple: true,
|
|
46
|
+
description: messages.getMessage('promote.tests.description'),
|
|
47
|
+
summary: messages.getMessage('promote.tests.summary'),
|
|
48
|
+
});
|
|
44
49
|
export const deployAll = Flags.boolean({
|
|
45
50
|
char: 'a',
|
|
46
51
|
description: messages.getMessage('promote.deploy-all.description'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promoteFlags.js","sourceRoot":"","sources":["../../../../src/common/flags/promote/promoteFlags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,UAAU,GAAuB,KAAK,CAAC,MAAM,CAAC;IACzD,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC;IAC3D,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAY;IACpD,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAkB,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;IACjC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC;IAClE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,4BAA4B,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAqC,KAAK,CAAC,MAAM,CAAC;IAC1E,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;IAC7D,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAyB,KAAK,CAAC,OAAO,CAAC;IAC3D,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC;IAClE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,4BAA4B,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAmC,KAAK,CAAC,MAAM,CAAC;IAC5E,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qCAAqC,CAAC;IACnE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,yCAAyC,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAyB,KAAK,CAAC,OAAO,CAAC;IACvD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;IAC7D,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;CACtD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"promoteFlags.js","sourceRoot":"","sources":["../../../../src/common/flags/promote/promoteFlags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,UAAU,GAAuB,KAAK,CAAC,MAAM,CAAC;IACzD,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC;IAC3D,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAY;IACpD,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAkB,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;IACjC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC;IAClE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,4BAA4B,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAqC,KAAK,CAAC,MAAM,CAAC;IAC1E,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;IAC7D,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAqC,KAAK,CAAC,MAAM,CAAC;IAChF,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;IAC7D,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAyB,KAAK,CAAC,OAAO,CAAC;IAC3D,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,gCAAgC,CAAC;IAClE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,4BAA4B,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAmC,KAAK,CAAC,MAAM,CAAC;IAC5E,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,qCAAqC,CAAC;IACnE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,yCAAyC,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAyB,KAAK,CAAC,OAAO,CAAC;IACvD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;IAC7D,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;CACtD,CAAC,CAAC"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
/* eslint-disable no-console, class-methods-use-this */
|
|
17
17
|
import { Messages } from '@salesforce/core';
|
|
18
|
-
import
|
|
18
|
+
import { StandardColors } from '@salesforce/sf-plugins-core';
|
|
19
19
|
import { AsyncOperationStatus } from '../types.js';
|
|
20
20
|
import { AbstractOutputService } from './outputService.js';
|
|
21
21
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
@@ -34,14 +34,14 @@ export class AbstractAorOutputService extends AbstractOutputService {
|
|
|
34
34
|
}
|
|
35
35
|
printAorStatus(aor) {
|
|
36
36
|
if (aor.sf_devops__Status__c === AsyncOperationStatus.Completed) {
|
|
37
|
-
console.log(
|
|
37
|
+
console.log(StandardColors.success(aor.sf_devops__Message__c));
|
|
38
38
|
}
|
|
39
39
|
else if (aor.sf_devops__Status__c === AsyncOperationStatus.Error) {
|
|
40
40
|
if (aor.sf_devops__Error_Details__c) {
|
|
41
|
-
console.log(
|
|
41
|
+
console.log(StandardColors.error(output.getMessage('output.aor-error-status', [aor.sf_devops__Message__c, aor.sf_devops__Error_Details__c])));
|
|
42
42
|
}
|
|
43
43
|
else {
|
|
44
|
-
console.log(
|
|
44
|
+
console.log(StandardColors.error(aor.sf_devops__Message__c));
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
else if (aor.sf_devops__Message__c) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aorOutputService.js","sourceRoot":"","sources":["../../../src/common/outputService/aorOutputService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,uDAAuD;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"aorOutputService.js","sourceRoot":"","sources":["../../../src/common/outputService/aorOutputService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,uDAAuD;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAwB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAA8B,MAAM,oBAAoB,CAAC;AAEvF,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,sBAAsB,CAAC,CAAC;AAiCjG;;;;GAIG;AACH,MAAM,OAAgB,wBACpB,SAAQ,qBAAwB;IAGtB,KAAK,CAAS;IACd,MAAM,CAAmC;IAEnD,YAAmB,KAAQ,EAAE,KAAa;QACxC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,cAAc,CAAC,GAAyB;QAC7C,IAAI,GAAG,CAAC,oBAAoB,KAAK,oBAAoB,CAAC,SAAS,EAAE,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,GAAG,CAAC,oBAAoB,KAAK,oBAAoB,CAAC,KAAK,EAAE,CAAC;YACnE,IAAI,GAAG,CAAC,2BAA2B,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CACT,cAAc,CAAC,KAAK,CAClB,MAAM,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAC3G,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,oBAAoB,CAAC;IACzC,CAAC;IAEM,UAAU;QACf,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAEM,QAAQ,CAAC,KAAa;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CAGF"}
|
|
@@ -14,10 +14,9 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { StandardColors } from '@salesforce/sf-plugins-core';
|
|
17
|
-
import chalk from 'chalk';
|
|
18
17
|
import { AsyncOperationStatus } from '../types.js';
|
|
19
18
|
export function tableHeader(message) {
|
|
20
|
-
return
|
|
19
|
+
return StandardColors.info(message);
|
|
21
20
|
}
|
|
22
21
|
export function colorStatus(status) {
|
|
23
22
|
if (status === AsyncOperationStatus.Completed)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputUtils.js","sourceRoot":"","sources":["../../../src/common/outputService/outputUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"outputUtils.js","sourceRoot":"","sources":["../../../src/common/outputService/outputUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,MAA4B;IACtD,IAAI,MAAM,KAAK,oBAAoB,CAAC,SAAS;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrF,IAAI,MAAM,KAAK,oBAAoB,CAAC,KAAK;QAAE,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;QAC1E,OAAO,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -13,14 +13,16 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { validateSalesforceId } from '../../utils/soqlUtils.js';
|
|
16
17
|
import { runSafeQuery } from './selectorUtils.js';
|
|
17
18
|
/**
|
|
18
19
|
*
|
|
19
20
|
* Returns an Async Operation Result record filtering by project name.
|
|
20
21
|
*/
|
|
21
22
|
export async function selectAsyncOperationResultById(con, aorId) {
|
|
23
|
+
validateSalesforceId(aorId, 'async operation result');
|
|
22
24
|
const queryStr = `SELECT sf_devops__Status__c, sf_devops__Message__c, sf_devops__Error_Details__c
|
|
23
|
-
FROM sf_devops__Async_Operation_Result__c
|
|
25
|
+
FROM sf_devops__Async_Operation_Result__c
|
|
24
26
|
WHERE Id = '${aorId}'`;
|
|
25
27
|
const resp = await runSafeQuery(con, queryStr);
|
|
26
28
|
return resp.records[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncOperationResultsSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/asyncOperationResultsSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"asyncOperationResultsSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/asyncOperationResultsSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,GAAe,EAAE,KAAa;IACjF,oBAAoB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG;;kCAEe,KAAK,GAAG,CAAC;IAEzC,MAAM,IAAI,GAAsC,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAClF,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -13,18 +13,17 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { validateSalesforceId } from '../../utils/soqlUtils.js';
|
|
16
17
|
import { runSafeQuery } from './selectorUtils.js';
|
|
17
18
|
export async function selectDeployComponentsByAsyncOpId(con, asyncOpId) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
WHERE sf_devops__Deployment_Result__r.sf_devops__Status__c = '${asyncOpId}'`;
|
|
19
|
+
validateSalesforceId(asyncOpId, 'async operation');
|
|
20
|
+
const queryStr = `SELECT sf_devops__Source_Component__c, sf_devops__Operation__c, sf_devops__File_Path__c FROM sf_devops__Deploy_Component__c WHERE sf_devops__Deployment_Result__r.sf_devops__Status__c = '${asyncOpId}'`;
|
|
21
21
|
const resp = await runSafeQuery(con, queryStr);
|
|
22
22
|
return resp.records;
|
|
23
23
|
}
|
|
24
24
|
export async function selectDeployComponentsForCheckDeployByAsynchOpId(con, asyncOpId) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
WHERE sf_devops__Deployment_Result__r.sf_devops__Check_Deploy_Status__c = '${asyncOpId}'`;
|
|
25
|
+
validateSalesforceId(asyncOpId, 'async operation');
|
|
26
|
+
const queryStr = `SELECT sf_devops__Source_Component__c, sf_devops__Operation__c, sf_devops__File_Path__c FROM sf_devops__Deploy_Component__c WHERE sf_devops__Deployment_Result__r.sf_devops__Check_Deploy_Status__c = '${asyncOpId}'`;
|
|
28
27
|
const resp = await runSafeQuery(con, queryStr);
|
|
29
28
|
return resp.records;
|
|
30
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployComponentsSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/deployComponentsSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"deployComponentsSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/deployComponentsSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,GAAe,EACf,SAAiB;IAEjB,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,6LAA6L,SAAS,GAAG,CAAC;IAE3N,MAAM,IAAI,GAAiC,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gDAAgD,CACpE,GAAe,EACf,SAAiB;IAEjB,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,0MAA0M,SAAS,GAAG,CAAC;IAExO,MAAM,IAAI,GAAiC,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC"}
|
|
@@ -13,16 +13,18 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { validateSalesforceId } from '../../utils/soqlUtils.js';
|
|
16
17
|
import { runSafeQuery } from './selectorUtils.js';
|
|
17
18
|
/**
|
|
18
19
|
* Returns the data necessary to create the deploy summary (or part of it).
|
|
19
20
|
*/
|
|
20
21
|
export async function selectDeployAORSummaryDataById(con, aorId) {
|
|
22
|
+
validateSalesforceId(aorId, 'async operation result');
|
|
21
23
|
const queryStr = `SELECT Id, sf_devops__Operation__c,
|
|
22
24
|
(SELECT sf_devops__Pipeline_Stage__r.Name, sf_devops__Pipeline_Stage__r.sf_devops__Environment__r.sf_devops__Named_Credential__c, sf_devops__Pipeline_Stage__r.sf_devops__Environment__r.Name, sf_devops__Work_Item__r.Name FROM sf_devops__Work_Item_Promotes__r),
|
|
23
25
|
(SELECT sf_devops__Change_Bundle__r.Id, sf_devops__Change_Bundle__r.sf_devops__Version_Name__c, sf_devops__Environment__r.Id FROM sf_devops__Change_Bundle_Installs__r),
|
|
24
26
|
(SELECT Name FROM sf_devops__Work_Items__r)
|
|
25
|
-
FROM sf_devops__Async_Operation_Result__c
|
|
27
|
+
FROM sf_devops__Async_Operation_Result__c
|
|
26
28
|
WHERE Id = '${aorId}'`;
|
|
27
29
|
const resp = await runSafeQuery(con, queryStr);
|
|
28
30
|
return resp.records[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployProgressSummarySelector.js","sourceRoot":"","sources":["../../../src/common/selectors/deployProgressSummarySelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"deployProgressSummarySelector.js","sourceRoot":"","sources":["../../../src/common/selectors/deployProgressSummarySelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAUlD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,GAAe,EACf,KAAa;IAEb,oBAAoB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG;;;;;kCAKe,KAAK,GAAG,CAAC;IAEzC,MAAM,IAAI,GAA0C,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtF,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -13,17 +13,19 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { validateSalesforceId } from '../../utils/soqlUtils.js';
|
|
16
17
|
import { runSafeQuery } from './selectorUtils.js';
|
|
17
18
|
/**
|
|
18
19
|
*
|
|
19
20
|
* Returns deployment result record filtering by async job id.
|
|
20
21
|
*/
|
|
21
22
|
export async function selectOneDeploymentResultByAsyncJobId(con, asyncJobId) {
|
|
23
|
+
validateSalesforceId(asyncJobId, 'async job');
|
|
22
24
|
const queryStr = `SELECT sf_devops__Full_Deploy__c, sf_devops__Check_Deploy__c, sf_devops__Test_Level__c, sf_devops__Run_Tests__c, sf_devops__Completion_Date__c,
|
|
23
25
|
sf_devops__Status__r.Id, sf_devops__Status__r.CreatedDate, sf_devops__Status__r.CreatedById,
|
|
24
|
-
sf_devops__Status__r.CreatedBy.Name, sf_devops__Status__r.sf_devops__Message__c,
|
|
25
|
-
sf_devops__Status__r.sf_devops__Status__c, sf_devops__Status__r.sf_devops__Error_Details__c
|
|
26
|
-
FROM sf_devops__Deployment_Result__c
|
|
26
|
+
sf_devops__Status__r.CreatedBy.Name, sf_devops__Status__r.sf_devops__Message__c,
|
|
27
|
+
sf_devops__Status__r.sf_devops__Status__c, sf_devops__Status__r.sf_devops__Error_Details__c
|
|
28
|
+
FROM sf_devops__Deployment_Result__c
|
|
27
29
|
WHERE sf_devops__Status__r.Id = '${asyncJobId}'`;
|
|
28
30
|
const resp = await runSafeQuery(con, queryStr, true);
|
|
29
31
|
return resp.totalSize > 0 ? resp.records[0] : null;
|
|
@@ -33,9 +35,10 @@ export async function selectOneDeploymentResultByAsyncJobId(con, asyncJobId) {
|
|
|
33
35
|
* Returns if a deployment result is from a Check-Deploy by async job id.
|
|
34
36
|
*/
|
|
35
37
|
export async function isCheckDeploy(con, asyncJobId) {
|
|
38
|
+
validateSalesforceId(asyncJobId, 'async job');
|
|
36
39
|
const queryStr = `SELECT sf_devops__Check_Deploy__c,
|
|
37
|
-
sf_devops__Status__r.Id, sf_devops__Check_Deploy_Status__r.Id
|
|
38
|
-
FROM sf_devops__Deployment_Result__c
|
|
40
|
+
sf_devops__Status__r.Id, sf_devops__Check_Deploy_Status__r.Id
|
|
41
|
+
FROM sf_devops__Deployment_Result__c
|
|
39
42
|
WHERE sf_devops__Status__r.Id = '${asyncJobId}'
|
|
40
43
|
OR sf_devops__Check_Deploy_Status__r.Id = '${asyncJobId}'`;
|
|
41
44
|
const resp = await runSafeQuery(con, queryStr, true);
|
|
@@ -47,9 +50,10 @@ export async function isCheckDeploy(con, asyncJobId) {
|
|
|
47
50
|
* Returns deployment result record with Change Bundle Installs filtering by check deploy job id.
|
|
48
51
|
*/
|
|
49
52
|
export async function selectOneDeploymentResultWithChangeBundleInstallsByAsyncJobId(con, asyncJobId) {
|
|
53
|
+
validateSalesforceId(asyncJobId, 'async job');
|
|
50
54
|
const queryStr = `SELECT sf_devops__Check_Deploy__c, sf_devops__Deployment_Id__c, sf_devops__Check_Deploy_Status__r.sf_devops__Status__c,
|
|
51
55
|
(SELECT sf_devops__Environment__c FROM sf_devops__Change_Bundle_Installs__r)
|
|
52
|
-
FROM sf_devops__Deployment_Result__c
|
|
56
|
+
FROM sf_devops__Deployment_Result__c
|
|
53
57
|
WHERE sf_devops__Check_Deploy_Status__c = '${asyncJobId}'
|
|
54
58
|
AND sf_devops__Check_Deploy__c = TRUE
|
|
55
59
|
AND Id IN (SELECT sf_devops__Deployment_Result__c FROM sf_devops__Change_Bundle_Install__c)`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploymentResultsSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/deploymentResultsSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"deploymentResultsSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/deploymentResultsSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWlD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,GAAe,EACf,UAAkB;IAElB,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG;;;;;uDAKoC,UAAU,GAAG,CAAC;IAEnE,MAAM,IAAI,GAAkC,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAe,EAAE,UAAkB;IACrE,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG;;;uDAGoC,UAAU;iEACA,UAAU,GAAG,CAAC;IAE7E,MAAM,IAAI,GAA6C,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC;IAClF,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,6DAA6D,CACjF,GAAe,EACf,UAAkB;IAElB,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG;;;iEAG8C,UAAU;;kHAEuC,CAAC;IAEjH,MAAM,IAAI,GAA+D,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjH,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC"}
|
|
@@ -13,14 +13,16 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { validateSalesforceId } from '../../utils/soqlUtils.js';
|
|
16
17
|
import { runSafeQuery } from './selectorUtils.js';
|
|
17
18
|
/**
|
|
18
19
|
* Returns the named credential and pipeline stage name associated with the envId sent
|
|
19
20
|
*/
|
|
20
21
|
export async function selectPipelineStageByEnvironment(con, envId) {
|
|
21
|
-
|
|
22
|
+
validateSalesforceId(envId, 'environment');
|
|
23
|
+
const queryStr = `SELECT Name,
|
|
22
24
|
(SELECT Name FROM sf_devops__Pipeline_Stages__r)
|
|
23
|
-
FROM sf_devops__Environment__c
|
|
25
|
+
FROM sf_devops__Environment__c
|
|
24
26
|
WHERE Id = '${envId}'`;
|
|
25
27
|
const resp = await runSafeQuery(con, queryStr);
|
|
26
28
|
return resp.records[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environmentSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/environmentSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"environmentSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/environmentSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQlD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,GAAe,EAAE,KAAa;IACnF,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG;;;kCAGe,KAAK,GAAG,CAAC;IAEzC,MAAM,IAAI,GAAgC,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { escapeSOQL } from '../../utils/soqlUtils.js';
|
|
16
17
|
import { runSafeQuery } from './selectorUtils.js';
|
|
17
18
|
/**
|
|
18
19
|
* Given a named credential it returns the org url (endpoint) associated with it
|
|
@@ -21,7 +22,7 @@ export async function selectNamedCredentialByName(con, name) {
|
|
|
21
22
|
const queryStr = `
|
|
22
23
|
SELECT Endpoint
|
|
23
24
|
FROM NamedCredential
|
|
24
|
-
WHERE DeveloperName = '${name}'
|
|
25
|
+
WHERE DeveloperName = '${escapeSOQL(name)}'
|
|
25
26
|
AND NamespacePrefix = 'sf_devops'
|
|
26
27
|
LIMIT 1`;
|
|
27
28
|
const resp = await runSafeQuery(con, queryStr);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namedCredentialSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/namedCredentialSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"namedCredentialSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/namedCredentialSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,GAAe,EAAE,IAAY;IAC7E,MAAM,QAAQ,GAAG;;;6BAGU,UAAU,CAAC,IAAI,CAAC;;YAEjC,CAAC;IAEX,MAAM,IAAI,GAAiC,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { escapeSOQL, validateSalesforceId } from '../../utils/soqlUtils.js';
|
|
16
17
|
import { runSafeQuery } from './selectorUtils.js';
|
|
17
18
|
/**
|
|
18
19
|
*
|
|
@@ -20,8 +21,8 @@ import { runSafeQuery } from './selectorUtils.js';
|
|
|
20
21
|
*/
|
|
21
22
|
export async function selectPipelineStagesByProject(con, projectName) {
|
|
22
23
|
const queryStr = `SELECT Id, sf_devops__Pipeline__r.sf_devops__Project__c, sf_devops__Branch__r.sf_devops__Name__c, (SELECT Id FROM sf_devops__Pipeline_Stages__r)
|
|
23
|
-
FROM sf_devops__Pipeline_Stage__c
|
|
24
|
-
WHERE sf_devops__Pipeline__r.sf_devops__Project__r.Name = '${projectName}'`;
|
|
24
|
+
FROM sf_devops__Pipeline_Stage__c
|
|
25
|
+
WHERE sf_devops__Pipeline__r.sf_devops__Project__r.Name = '${escapeSOQL(projectName)}'`;
|
|
25
26
|
const resp = await runSafeQuery(con, queryStr);
|
|
26
27
|
return resp.records;
|
|
27
28
|
}
|
|
@@ -30,8 +31,9 @@ export async function selectPipelineStagesByProject(con, projectName) {
|
|
|
30
31
|
* Returns an array of a pipeline stages filtering by environment Id.
|
|
31
32
|
*/
|
|
32
33
|
export async function selectOnePipelineStageByEnvironmentId(con, envId) {
|
|
34
|
+
validateSalesforceId(envId, 'environment');
|
|
33
35
|
const queryStr = `SELECT Id, sf_devops__Pipeline__r.sf_devops__Project__c, sf_devops__Branch__r.sf_devops__Name__c, (SELECT Id FROM sf_devops__Pipeline_Stages__r)
|
|
34
|
-
FROM sf_devops__Pipeline_Stage__c
|
|
36
|
+
FROM sf_devops__Pipeline_Stage__c
|
|
35
37
|
WHERE sf_devops__Environment__c = '${envId}'`;
|
|
36
38
|
const resp = await runSafeQuery(con, queryStr);
|
|
37
39
|
return resp.records[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelineStageSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/pipelineStageSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"pipelineStageSelector.js","sourceRoot":"","sources":["../../../src/common/selectors/pipelineStageSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,GAAe,EAAE,WAAmB;IACtF,MAAM,QAAQ,GAAG;;iFAE8D,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC;IAE1G,MAAM,IAAI,GAA+B,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,GAAe,EACf,KAAa;IAEb,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG;;yDAEsC,KAAK,GAAG,CAAC;IAEhE,MAAM,IAAI,GAA+B,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -13,13 +13,15 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { validateSalesforceId } from '../../utils/soqlUtils.js';
|
|
16
17
|
import { runSafeQuery } from './selectorUtils.js';
|
|
17
18
|
/**
|
|
18
19
|
* Returns the data necessary to create the deploy summary (or part of it).
|
|
19
20
|
*/
|
|
20
21
|
export async function selectValidateDeployAORSummaryDataById(con, aorId) {
|
|
22
|
+
validateSalesforceId(aorId, 'async operation result');
|
|
21
23
|
const queryStr = `SELECT sf_devops__Change_Bundle__r.Id, sf_devops__Change_Bundle__r.sf_devops__Version_Name__c, sf_devops__Environment__r.Id
|
|
22
|
-
FROM sf_devops__Change_Bundle_Install__c
|
|
24
|
+
FROM sf_devops__Change_Bundle_Install__c
|
|
23
25
|
WHERE sf_devops__Deployment_Result__r.sf_devops__Check_Deploy_Status__c = '${aorId}'`;
|
|
24
26
|
const resp = await runSafeQuery(con, queryStr);
|
|
25
27
|
return resp.records;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateDeploySelector.js","sourceRoot":"","sources":["../../../src/common/selectors/validateDeploySelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"validateDeploySelector.js","sourceRoot":"","sources":["../../../src/common/selectors/validateDeploySelector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sCAAsC,CAC1D,GAAe,EACf,KAAa;IAEb,oBAAoB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG;;iGAE8E,KAAK,GAAG,CAAC;IAExG,MAAM,IAAI,GAAqC,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC"}
|