@salesforce/plugin-devops-center 2.0.0 → 2.0.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.
Files changed (50) hide show
  1. package/README.md +150 -31
  2. package/lib/commands/devops/pipeline/stage/update.d.ts +19 -0
  3. package/lib/commands/devops/pipeline/stage/update.js +66 -0
  4. package/lib/commands/devops/pipeline/stage/update.js.map +1 -0
  5. package/lib/commands/devops/promote.d.ts +5 -0
  6. package/lib/commands/devops/promote.js +49 -3
  7. package/lib/commands/devops/promote.js.map +1 -1
  8. package/lib/commands/devops/promotion/complete.d.ts +1 -1
  9. package/lib/commands/devops/promotion/complete.js +1 -1
  10. package/lib/commands/devops/promotion/complete.js.map +1 -1
  11. package/lib/commands/devops/promotion/validate.d.ts +21 -0
  12. package/lib/commands/devops/promotion/validate.js +137 -0
  13. package/lib/commands/devops/promotion/validate.js.map +1 -0
  14. package/lib/commands/devops/stage/branch/delete.d.ts +15 -0
  15. package/lib/commands/devops/stage/branch/delete.js +107 -0
  16. package/lib/commands/devops/stage/branch/delete.js.map +1 -0
  17. package/lib/commands/devops/work-item/prepare.js +0 -3
  18. package/lib/commands/devops/work-item/prepare.js.map +1 -1
  19. package/lib/utils/addPipelineStage.js +1 -0
  20. package/lib/utils/addPipelineStage.js.map +1 -1
  21. package/lib/utils/createPipeline.js +24 -12
  22. package/lib/utils/createPipeline.js.map +1 -1
  23. package/lib/utils/deleteStageBranch.d.ts +22 -0
  24. package/lib/utils/deleteStageBranch.js +44 -0
  25. package/lib/utils/deleteStageBranch.js.map +1 -0
  26. package/lib/utils/pipelineUtils.d.ts +9 -0
  27. package/lib/utils/pipelineUtils.js +32 -0
  28. package/lib/utils/pipelineUtils.js.map +1 -1
  29. package/lib/utils/prepareWorkItem.d.ts +1 -1
  30. package/lib/utils/prepareWorkItem.js +4 -5
  31. package/lib/utils/prepareWorkItem.js.map +1 -1
  32. package/lib/utils/{deployStage.d.ts → promotionUtils.d.ts} +24 -0
  33. package/lib/utils/{deployStage.js → promotionUtils.js} +65 -1
  34. package/lib/utils/promotionUtils.js.map +1 -0
  35. package/lib/utils/soqlUtils.d.ts +5 -0
  36. package/lib/utils/soqlUtils.js +7 -0
  37. package/lib/utils/soqlUtils.js.map +1 -1
  38. package/messages/devops.pipeline.stage.update.md +25 -0
  39. package/messages/devops.promote.md +16 -0
  40. package/messages/devops.promotion.complete.md +3 -3
  41. package/messages/devops.promotion.validate.md +64 -0
  42. package/messages/devops.stage.branch.delete.md +37 -0
  43. package/npm-shrinkwrap.json +2 -2
  44. package/oclif.manifest.json +294 -56
  45. package/package.json +3 -3
  46. package/schemas/devops-pipeline-stage-update.json +22 -0
  47. package/schemas/devops-promote.json +38 -0
  48. package/schemas/devops-promotion-validate.json +66 -0
  49. package/schemas/devops-stage-branch-delete.json +47 -0
  50. package/lib/utils/deployStage.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"promote.js","sourceRoot":"","sources":["../../../src/commands/devops/promote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promote.js","sourceRoot":"","sources":["../../../src/commands/devops/promote.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { SfCommand } from '@salesforce/sf-plugins-core';
2
- import { DeployStageResult } from '../../../utils/deployStage.js';
2
+ import { DeployStageResult } from '../../../utils/promotionUtils.js';
3
3
  export type PromotionCompleteResult = DeployStageResult & {
4
4
  undeployedWorkitemIds: string[];
5
5
  };
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import { Messages } from '@salesforce/core';
17
17
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
18
- import { getUndeployedWorkItems, validateDeploy, executeDeploy, } from '../../../utils/deployStage.js';
18
+ import { getUndeployedWorkItems, validateDeploy, executeDeploy, } from '../../../utils/promotionUtils.js';
19
19
  import { deployAll, testLevel, specificTestsNoChar } from '../../../common/flags/promote/promoteFlags.js';
20
20
  import { validateSalesforceId } from '../../../utils/soqlUtils.js';
21
21
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
@@ -1 +1 @@
1
- {"version":3,"file":"complete.js","sourceRoot":"","sources":["../../../../src/commands/devops/promotion/complete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"complete.js","sourceRoot":"","sources":["../../../../src/commands/devops/promotion/complete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { CombineDetails } from '../../../utils/promotionUtils.js';
3
+ export type PromotionValidateResult = {
4
+ success: boolean;
5
+ errorType: string | null;
6
+ errorDetails: string | null;
7
+ combineDetails: CombineDetails | null;
8
+ suggestions: string[];
9
+ };
10
+ export default class DevopsPromotionValidate extends SfCommand<PromotionValidateResult> {
11
+ static readonly summary: string;
12
+ static readonly description: string;
13
+ static readonly examples: string[];
14
+ static readonly flags: {
15
+ 'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
16
+ 'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ 'target-stage-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
18
+ 'work-item-id': import("@oclif/core/interfaces").OptionFlag<string[], import("@oclif/core/interfaces").CustomOptions>;
19
+ };
20
+ run(): Promise<PromotionValidateResult>;
21
+ }
@@ -0,0 +1,137 @@
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 { validatePromotion, formatValidationDetails, hasSharedComponents, } from '../../../utils/promotionUtils.js';
19
+ import { validateSalesforceId } from '../../../utils/soqlUtils.js';
20
+ import { resolveProjectIdFromWorkItem } from '../../../utils/prepareWorkItem.js';
21
+ import { getPipelineIdForProject } from '../../../utils/pipelineUtils.js';
22
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
23
+ const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.promotion.validate');
24
+ const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
25
+ export default class DevopsPromotionValidate extends SfCommand {
26
+ static summary = messages.getMessage('summary');
27
+ static description = messages.getMessage('description');
28
+ static examples = messages.getMessages('examples');
29
+ static flags = {
30
+ 'target-org': Flags.requiredOrg(),
31
+ 'api-version': Flags.orgApiVersion(),
32
+ 'target-stage-id': Flags.salesforceId({
33
+ char: 't',
34
+ summary: messages.getMessage('flags.target-stage-id.summary'),
35
+ required: true,
36
+ startsWith: '1QV',
37
+ }),
38
+ 'work-item-id': Flags.salesforceId({
39
+ char: 'i',
40
+ summary: messages.getMessage('flags.work-item-id.summary'),
41
+ required: true,
42
+ multiple: true,
43
+ startsWith: '1fk',
44
+ }),
45
+ };
46
+ async run() {
47
+ const { flags } = await this.parse(DevopsPromotionValidate);
48
+ const connection = flags['target-org'].getConnection(flags['api-version']);
49
+ const targetStageId = flags['target-stage-id'];
50
+ const workItemIds = flags['work-item-id'];
51
+ validateSalesforceId(targetStageId, 'target stage');
52
+ for (const id of workItemIds) {
53
+ validateSalesforceId(id, 'work item');
54
+ }
55
+ let pipelineId;
56
+ try {
57
+ const { projectId } = await resolveProjectIdFromWorkItem(connection, workItemIds[0]);
58
+ const pid = await getPipelineIdForProject(connection, projectId);
59
+ if (!pid) {
60
+ this.error(messages.getMessage('error.NoPipeline', [workItemIds[0]]));
61
+ }
62
+ pipelineId = pid;
63
+ }
64
+ catch (error) {
65
+ const errMsg = error instanceof Error ? error.message : String(error);
66
+ if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
67
+ this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
68
+ }
69
+ throw error;
70
+ }
71
+ let result;
72
+ try {
73
+ result = await validatePromotion(connection, pipelineId, workItemIds, targetStageId, true);
74
+ }
75
+ catch (error) {
76
+ const errMsg = error instanceof Error ? error.message : String(error);
77
+ if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
78
+ this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
79
+ }
80
+ const cleanMsg = errMsg.split('<')[0].trim();
81
+ this.error(messages.getMessage('error.ValidationRequestFailed', [cleanMsg]));
82
+ }
83
+ if (!result.success) {
84
+ this.error(messages.getMessage('error.ValidationFailed', [
85
+ result.errorType ?? '',
86
+ formatValidationDetails(result.errorDetails),
87
+ ]));
88
+ }
89
+ this.log(`Success: ${result.success}`);
90
+ if (result.combineDetails) {
91
+ this.log('Combine Details:');
92
+ this.log(JSON.stringify(result.combineDetails, null, 2));
93
+ }
94
+ // Validation succeeded, which means a pull request already exists for each work item, so they
95
+ // can be promoted directly. When the work items also share components, the user has two choices:
96
+ // 1. combine them and promote the combined parent as a single unit, or
97
+ // 2. promote them as they are, without combining.
98
+ const suggestions = [];
99
+ if (hasSharedComponents(result.combineDetails)) {
100
+ suggestions.push(messages.getMessage('suggestion.SharedComponents'));
101
+ // Option 1 — combine + promote. combineDetails carries the parent/child IDs to combine.
102
+ const parentId = result.combineDetails?.parentWorkitemId;
103
+ const childIds = result.combineDetails?.childWorkitemsId ?? [];
104
+ if (parentId && childIds.length > 0) {
105
+ const combineArgs = [
106
+ `--parent-work-item-id ${parentId}`,
107
+ ...childIds.map((id) => `--child-work-item-id ${id}`),
108
+ `--target-stage-id ${targetStageId}`,
109
+ ].join(' ');
110
+ suggestions.push(messages.getMessage('suggestion.CombineOption'));
111
+ suggestions.push(messages.getMessage('suggestion.CombineStepPrepare', [`sf devops work-item combine ${combineArgs}`]));
112
+ // Combine merges the children into the parent, so only the parent is promoted.
113
+ suggestions.push(messages.getMessage('suggestion.CombineStepPromote', [
114
+ `sf devops promote --work-item-id ${parentId} --target-stage-id ${targetStageId}`,
115
+ ]));
116
+ }
117
+ // Option 2 — promote the work items as-is. Their PRs already exist (validation passed).
118
+ const promoteArgs = [
119
+ ...workItemIds.map((id) => `--work-item-id ${id}`),
120
+ `--target-stage-id ${targetStageId}`,
121
+ ].join(' ');
122
+ suggestions.push(messages.getMessage('suggestion.PromoteOption'));
123
+ suggestions.push(messages.getMessage('suggestion.PromoteStep', [`sf devops promote ${promoteArgs}`]));
124
+ this.log('');
125
+ this.log('Suggestions:');
126
+ suggestions.forEach((s) => this.log(` ${s}`));
127
+ }
128
+ return {
129
+ success: result.success,
130
+ errorType: result.errorType,
131
+ errorDetails: result.errorDetails,
132
+ combineDetails: result.combineDetails,
133
+ suggestions,
134
+ };
135
+ }
136
+ }
137
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/commands/devops/promotion/validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Org } from '@salesforce/core';
2
+ import { SfCommand } from '@salesforce/sf-plugins-core';
3
+ import { DeleteStageBranchResult } from '../../../../utils/deleteStageBranch.js';
4
+ export default class DevopsStageBranchDelete extends SfCommand<DeleteStageBranchResult> {
5
+ static readonly summary: string;
6
+ static readonly description: string;
7
+ static readonly examples: string[];
8
+ static readonly flags: {
9
+ 'target-org': import("@oclif/core/interfaces").OptionFlag<Org, import("@oclif/core/interfaces").CustomOptions>;
10
+ 'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ 'pipeline-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
+ 'stage-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ };
14
+ run(): Promise<DeleteStageBranchResult>;
15
+ }
@@ -0,0 +1,107 @@
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 { deleteStageBranch } from '../../../../utils/deleteStageBranch.js';
19
+ import { computeUpstreamStageIds, fetchPipelineStages } from '../../../../utils/pipelineUtils.js';
20
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
21
+ const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.stage.branch.delete');
22
+ const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
23
+ export default class DevopsStageBranchDelete 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
+ 'pipeline-id': Flags.salesforceId({
31
+ summary: messages.getMessage('flags.pipeline-id.summary'),
32
+ required: true,
33
+ char: undefined,
34
+ }),
35
+ 'stage-id': Flags.salesforceId({
36
+ summary: messages.getMessage('flags.stage-id.summary'),
37
+ required: true,
38
+ char: undefined,
39
+ }),
40
+ };
41
+ async run() {
42
+ const { flags } = await this.parse(DevopsStageBranchDelete);
43
+ const org = flags['target-org'];
44
+ const connection = org.getConnection(flags['api-version']);
45
+ const pipelineId = flags['pipeline-id'];
46
+ const stageId = flags['stage-id'];
47
+ // The branch can only be removed while the pipeline is inactive.
48
+ const pipelineQueryResult = await connection.query(`SELECT IsActive FROM DevopsPipeline WHERE Id = '${pipelineId}' LIMIT 1`);
49
+ const pipelineRecord = (pipelineQueryResult.records ?? [])[0];
50
+ if (pipelineRecord?.IsActive) {
51
+ this.error(messages.getMessage('error.PipelineAlreadyActive', [pipelineId]));
52
+ }
53
+ let stages;
54
+ try {
55
+ stages = await fetchPipelineStages(connection, pipelineId);
56
+ }
57
+ catch (error) {
58
+ const errMsg = error instanceof Error ? error.message : String(error);
59
+ if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
60
+ this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
61
+ }
62
+ throw error;
63
+ }
64
+ const targetStage = stages.find((s) => s.Id === stageId);
65
+ if (!targetStage) {
66
+ this.error(messages.getMessage('error.StageNotFound', [stageId, pipelineId]));
67
+ }
68
+ const branchName = targetStage.SourceCodeRepositoryBranch?.Name;
69
+ if (!branchName) {
70
+ this.error(messages.getMessage('error.NoBranch', [targetStage.Name ?? stageId]));
71
+ }
72
+ // Branches are configured right-to-left, so removing this stage's branch must also remove the
73
+ // branch from every upstream (left) stage to keep the pipeline in a valid state.
74
+ const upstreamStageIds = computeUpstreamStageIds(stages, stageId);
75
+ const stagesById = new Map(stages.map((s) => [s.Id, s]));
76
+ const stagesToClear = [targetStage, ...upstreamStageIds.map((id) => stagesById.get(id))]
77
+ .filter((s) => Boolean(s?.SourceCodeRepositoryBranch?.Name))
78
+ .map((s) => ({ stageId: s.Id, stageName: s.Name, branchName: s.SourceCodeRepositoryBranch?.Name }));
79
+ let result;
80
+ try {
81
+ result = await deleteStageBranch(connection, stageId, stagesToClear);
82
+ }
83
+ catch (error) {
84
+ const errMsg = error instanceof Error ? error.message : String(error);
85
+ if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
86
+ this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
87
+ }
88
+ throw error;
89
+ }
90
+ if (result.success) {
91
+ this.log(`Successfully deleted branch "${result.branchName ?? ''}" from the stage.`);
92
+ this.log(` Stage ID: ${stageId}`);
93
+ this.log(` Pipeline ID: ${pipelineId}`);
94
+ const cascaded = (result.clearedStages ?? []).filter((s) => s.stageId !== stageId);
95
+ if (cascaded.length > 0) {
96
+ this.log('');
97
+ this.log('Also removed branches from upstream stages:');
98
+ cascaded.forEach((s) => this.log(` - ${s.stageName ?? s.stageId}: "${s.branchName ?? ''}"`));
99
+ }
100
+ }
101
+ else {
102
+ this.error(messages.getMessage('error.BranchDeleteFailed', [result.error ?? '']));
103
+ }
104
+ return result;
105
+ }
106
+ }
107
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../../src/commands/devops/stage/branch/delete.ts"],"names":[],"mappings":"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"}
@@ -59,9 +59,6 @@ export default class DevopsWorkItemPrepare extends SfCommand {
59
59
  }
60
60
  throw error;
61
61
  }
62
- if (!sourceStageId) {
63
- this.error(`Work item '${workItemId}' is not currently assigned to a pipeline stage.`);
64
- }
65
62
  const pipelineId = await getPipelineIdForProject(connection, projectId);
66
63
  if (!pipelineId) {
67
64
  this.error(`No pipeline found for work item ${workItemId}. Ensure the project has an associated pipeline.`);
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../../src/commands/devops/work-item/prepare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../../src/commands/devops/work-item/prepare.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export async function addPipelineStage(params) {
23
23
  Name: name,
24
24
  DevopsPipelineId: pipelineId,
25
25
  NextStageId: nextStageId,
26
+ IsBundled: true,
26
27
  });
27
28
  const createResult = result;
28
29
  if (!createResult.success) {
@@ -1 +1 @@
1
- {"version":3,"file":"addPipelineStage.js","sourceRoot":"","sources":["../../src/utils/addPipelineStage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA0BH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAA8B;IACnE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAE7D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC;QACpE,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,UAAU;QAC5B,WAAW,EAAE,WAAW;KACzB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAwC,CAAC;IAE9D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC;QAC1F,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,YAAY,CAAC,EAAE;QACxB,IAAI;QACJ,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"addPipelineStage.js","sourceRoot":"","sources":["../../src/utils/addPipelineStage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA0BH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAA8B;IACnE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAE7D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC;QACpE,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,UAAU;QAC5B,WAAW,EAAE,WAAW;QACxB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAwC,CAAC;IAE9D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC;QAC1F,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,YAAY,CAAC,EAAE;QACxB,IAAI;QACJ,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -34,11 +34,21 @@ export function detectRepoType(repoUrl) {
34
34
  * don't block the command when the check itself is unavailable.
35
35
  */
36
36
  export async function validateGitHubOwner(owner, token, fetchFn = fetch) {
37
+ const encoded = encodeURIComponent(owner);
37
38
  try {
38
- execSync(`gh api users/${encodeURIComponent(owner)}`, {
39
- encoding: 'utf-8',
40
- stdio: ['pipe', 'pipe', 'pipe'],
41
- });
39
+ // Try user first, then org — owner may be either a personal account or an organization
40
+ try {
41
+ execSync(`gh api users/${encoded}`, { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] });
42
+ return;
43
+ }
44
+ catch (e) {
45
+ const stderr = String(e.stderr ?? '');
46
+ const stdout = String(e.stdout ?? '');
47
+ if (!stderr.includes('404') && !stdout.includes('"Not Found"'))
48
+ throw e;
49
+ // 404 on users/ — try orgs/
50
+ }
51
+ execSync(`gh api orgs/${encoded}`, { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] });
42
52
  return;
43
53
  }
44
54
  catch (e) {
@@ -51,14 +61,16 @@ export async function validateGitHubOwner(owner, token, fetchFn = fetch) {
51
61
  }
52
62
  if (!token)
53
63
  return;
54
- const response = await fetchFn(`https://api.github.com/users/${encodeURIComponent(owner)}`, {
55
- headers: {
56
- Accept: 'application/vnd.github+json',
57
- 'X-GitHub-Api-Version': '2022-11-28',
58
- Authorization: `Bearer ${token}`,
59
- },
60
- });
61
- if (response.status === 404)
64
+ const headers = {
65
+ Accept: 'application/vnd.github+json',
66
+ 'X-GitHub-Api-Version': '2022-11-28',
67
+ Authorization: `Bearer ${token}`,
68
+ };
69
+ const userRes = await fetchFn(`https://api.github.com/users/${encoded}`, { headers });
70
+ if (userRes.status !== 404)
71
+ return;
72
+ const orgRes = await fetchFn(`https://api.github.com/orgs/${encoded}`, { headers });
73
+ if (orgRes.status === 404)
62
74
  throw new GitHubOwnerNotFoundError(owner);
63
75
  // 403 or other non-404: skip validation
64
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createPipeline.js","sourceRoot":"","sources":["../../src/utils/createPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createPipeline.js","sourceRoot":"","sources":["../../src/utils/createPipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Connection } from '@salesforce/core';
2
+ export type ClearedStage = {
3
+ stageId: string;
4
+ stageName?: string;
5
+ branchName?: string;
6
+ };
7
+ export type DeleteStageBranchResult = {
8
+ success: boolean;
9
+ stageId: string;
10
+ branchName?: string;
11
+ clearedStages?: ClearedStage[];
12
+ error?: string;
13
+ };
14
+ /**
15
+ * Removes the branch associated with a pipeline stage, cascading to every upstream (left) stage.
16
+ *
17
+ * Branches are configured right-to-left, so a stage can only have a branch once the stage to its
18
+ * right does. Clearing a branch therefore also clears the branch on every upstream stage to keep
19
+ * the pipeline in a valid state. Each stage's SourceCodeRepositoryBranchId lookup is cleared; the
20
+ * branch records themselves are left untouched.
21
+ */
22
+ export declare function deleteStageBranch(connection: Connection, targetStageId: string, stagesToClear: ClearedStage[]): Promise<DeleteStageBranchResult>;
@@ -0,0 +1,44 @@
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 { validateSalesforceId } from './soqlUtils.js';
17
+ /**
18
+ * Removes the branch associated with a pipeline stage, cascading to every upstream (left) stage.
19
+ *
20
+ * Branches are configured right-to-left, so a stage can only have a branch once the stage to its
21
+ * right does. Clearing a branch therefore also clears the branch on every upstream stage to keep
22
+ * the pipeline in a valid state. Each stage's SourceCodeRepositoryBranchId lookup is cleared; the
23
+ * branch records themselves are left untouched.
24
+ */
25
+ export async function deleteStageBranch(connection, targetStageId, stagesToClear) {
26
+ validateSalesforceId(targetStageId, 'stage');
27
+ stagesToClear.forEach((s) => validateSalesforceId(s.stageId, 'stage'));
28
+ const updates = stagesToClear.map((s) => ({ Id: s.stageId, SourceCodeRepositoryBranchId: null }));
29
+ const rawResults = await connection.sobject('DevopsPipelineStage').update(updates);
30
+ const results = (Array.isArray(rawResults) ? rawResults : [rawResults]);
31
+ const failures = results.filter((r) => !r.success);
32
+ if (failures.length > 0) {
33
+ const errorMsg = failures.flatMap((r) => r.errors?.map((e) => e.message) ?? ['Unknown error']).join('; ');
34
+ return { success: false, stageId: targetStageId, error: errorMsg };
35
+ }
36
+ const target = stagesToClear.find((s) => s.stageId === targetStageId);
37
+ return {
38
+ success: true,
39
+ stageId: targetStageId,
40
+ branchName: target?.branchName,
41
+ clearedStages: stagesToClear,
42
+ };
43
+ }
44
+ //# sourceMappingURL=deleteStageBranch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteStageBranch.js","sourceRoot":"","sources":["../../src/utils/deleteStageBranch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAgBtD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAAsB,EACtB,aAAqB,EACrB,aAA6B;IAE7B,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC7C,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,4BAA4B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClG,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAGpE,CAAC;IAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1G,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC;IACtE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,MAAM,EAAE,UAAU;QAC9B,aAAa,EAAE,aAAa;KAC7B,CAAC;AACJ,CAAC"}
@@ -6,3 +6,12 @@ export declare function computeFirstStageId(stages: PipelineStageRecord[]): stri
6
6
  export declare function resolveTargetStageId(currentStageId: string | undefined, stages: PipelineStageRecord[]): string | undefined;
7
7
  export declare function findStageById(stages: PipelineStageRecord[], stageId: string | undefined): PipelineStageRecord | undefined;
8
8
  export declare function getBranchNameFromStage(stage: PipelineStageRecord | undefined): string | undefined;
9
+ /**
10
+ * Returns the IDs of all stages upstream (to the left) of the given stage, i.e. every stage
11
+ * whose promotion path eventually reaches it by following NextStageId. The target stage itself
12
+ * is not included. Order is nearest-to-farthest from the target.
13
+ *
14
+ * Branches are configured right-to-left (a stage can only have a branch once the stage to its
15
+ * right does), so removing a branch must cascade to every upstream stage to keep the pipeline valid.
16
+ */
17
+ export declare function computeUpstreamStageIds(stages: PipelineStageRecord[], stageId: string): string[];
@@ -51,4 +51,36 @@ export function findStageById(stages, stageId) {
51
51
  export function getBranchNameFromStage(stage) {
52
52
  return stage?.SourceCodeRepositoryBranch?.Name ?? undefined;
53
53
  }
54
+ /**
55
+ * Returns the IDs of all stages upstream (to the left) of the given stage, i.e. every stage
56
+ * whose promotion path eventually reaches it by following NextStageId. The target stage itself
57
+ * is not included. Order is nearest-to-farthest from the target.
58
+ *
59
+ * Branches are configured right-to-left (a stage can only have a branch once the stage to its
60
+ * right does), so removing a branch must cascade to every upstream stage to keep the pipeline valid.
61
+ */
62
+ export function computeUpstreamStageIds(stages, stageId) {
63
+ const predecessorsByStageId = new Map();
64
+ for (const stage of stages) {
65
+ if (stage.NextStageId) {
66
+ const predecessors = predecessorsByStageId.get(stage.NextStageId) ?? [];
67
+ predecessors.push(stage.Id);
68
+ predecessorsByStageId.set(stage.NextStageId, predecessors);
69
+ }
70
+ }
71
+ const upstream = [];
72
+ const seen = new Set([stageId]);
73
+ const queue = [stageId];
74
+ while (queue.length > 0) {
75
+ const current = queue.shift();
76
+ for (const predecessorId of predecessorsByStageId.get(current) ?? []) {
77
+ if (!seen.has(predecessorId)) {
78
+ seen.add(predecessorId);
79
+ upstream.push(predecessorId);
80
+ queue.push(predecessorId);
81
+ }
82
+ }
83
+ }
84
+ return upstream;
85
+ }
54
86
  //# sourceMappingURL=pipelineUtils.js.map