@salesforce/plugin-devops-center 1.3.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.
Files changed (185) hide show
  1. package/README.md +649 -102
  2. package/lib/commands/devops/pipeline/create.d.ts +2 -1
  3. package/lib/commands/devops/pipeline/create.js +37 -7
  4. package/lib/commands/devops/pipeline/create.js.map +1 -1
  5. package/lib/commands/devops/pipeline/{activate.d.ts → get.d.ts} +3 -3
  6. package/lib/commands/devops/pipeline/get.js +81 -0
  7. package/lib/commands/devops/pipeline/get.js.map +1 -0
  8. package/lib/commands/devops/pipeline/list.d.ts +13 -0
  9. package/lib/commands/devops/pipeline/list.js +58 -0
  10. package/lib/commands/devops/pipeline/list.js.map +1 -0
  11. package/lib/commands/devops/pipeline/{attach-project.d.ts → project/add.d.ts} +2 -2
  12. package/lib/commands/devops/pipeline/{attach-project.js → project/add.js} +5 -5
  13. package/lib/commands/devops/pipeline/project/add.js.map +1 -0
  14. package/lib/commands/devops/pipeline/project/delete.d.ts +15 -0
  15. package/lib/commands/devops/pipeline/{activate.js → project/delete.js} +17 -28
  16. package/lib/commands/devops/pipeline/project/delete.js.map +1 -0
  17. package/lib/commands/devops/pipeline/stage/delete.d.ts +15 -0
  18. package/lib/commands/devops/pipeline/stage/delete.js +69 -0
  19. package/lib/commands/devops/pipeline/stage/delete.js.map +1 -0
  20. package/lib/commands/devops/pipeline/update.d.ts +18 -0
  21. package/lib/commands/devops/pipeline/update.js +126 -0
  22. package/lib/commands/devops/pipeline/update.js.map +1 -0
  23. package/lib/commands/devops/project/update.d.ts +17 -0
  24. package/lib/commands/devops/project/update.js +86 -0
  25. package/lib/commands/devops/project/update.js.map +1 -0
  26. package/lib/commands/devops/promote.d.ts +24 -0
  27. package/lib/commands/devops/promote.js +148 -0
  28. package/lib/commands/devops/promote.js.map +1 -0
  29. package/lib/commands/devops/promotion/complete.d.ts +20 -0
  30. package/lib/commands/devops/promotion/complete.js +112 -0
  31. package/lib/commands/devops/promotion/complete.js.map +1 -0
  32. package/lib/commands/devops/request/status.d.ts +14 -0
  33. package/lib/commands/devops/request/status.js +71 -0
  34. package/lib/commands/devops/request/status.js.map +1 -0
  35. package/lib/commands/devops/{pull-request → review}/create.d.ts +1 -3
  36. package/lib/commands/devops/{pull-request → review}/create.js +11 -43
  37. package/lib/commands/devops/review/create.js.map +1 -0
  38. package/lib/commands/devops/stage/{add-branch.d.ts → branch/add.d.ts} +2 -2
  39. package/lib/commands/devops/stage/{add-branch.js → branch/add.js} +6 -6
  40. package/lib/commands/devops/stage/branch/add.js.map +1 -0
  41. package/lib/commands/devops/stage/{add-environment.d.ts → environment/add.d.ts} +2 -2
  42. package/lib/commands/devops/stage/{add-environment.js → environment/add.js} +13 -6
  43. package/lib/commands/devops/stage/environment/add.js.map +1 -0
  44. package/lib/commands/devops/stage/environment/delete.d.ts +15 -0
  45. package/lib/commands/devops/stage/environment/delete.js +75 -0
  46. package/lib/commands/devops/stage/environment/delete.js.map +1 -0
  47. package/lib/commands/devops/work-item/combine.d.ts +15 -0
  48. package/lib/commands/devops/work-item/combine.js +109 -0
  49. package/lib/commands/devops/work-item/combine.js.map +1 -0
  50. package/lib/commands/devops/work-item/prepare.d.ts +14 -0
  51. package/lib/commands/devops/work-item/prepare.js +98 -0
  52. package/lib/commands/devops/work-item/prepare.js.map +1 -0
  53. package/lib/commands/devops/work-item/{status/update.d.ts → update.d.ts} +6 -4
  54. package/lib/commands/devops/work-item/{status/update.js → update.js} +30 -9
  55. package/lib/commands/devops/work-item/update.js.map +1 -0
  56. package/lib/common/flags/promote/promoteFlags.d.ts +1 -0
  57. package/lib/common/flags/promote/promoteFlags.js +5 -0
  58. package/lib/common/flags/promote/promoteFlags.js.map +1 -1
  59. package/lib/common/outputService/aorOutputService.js +4 -4
  60. package/lib/common/outputService/aorOutputService.js.map +1 -1
  61. package/lib/common/outputService/outputUtils.js +1 -2
  62. package/lib/common/outputService/outputUtils.js.map +1 -1
  63. package/lib/common/selectors/asyncOperationResultsSelector.js +3 -1
  64. package/lib/common/selectors/asyncOperationResultsSelector.js.map +1 -1
  65. package/lib/common/selectors/deployComponentsSelector.js +5 -6
  66. package/lib/common/selectors/deployComponentsSelector.js.map +1 -1
  67. package/lib/common/selectors/deployProgressSummarySelector.js +3 -1
  68. package/lib/common/selectors/deployProgressSummarySelector.js.map +1 -1
  69. package/lib/common/selectors/deploymentResultsSelector.js +10 -6
  70. package/lib/common/selectors/deploymentResultsSelector.js.map +1 -1
  71. package/lib/common/selectors/environmentSelector.js +4 -2
  72. package/lib/common/selectors/environmentSelector.js.map +1 -1
  73. package/lib/common/selectors/namedCredentialSelector.js +2 -1
  74. package/lib/common/selectors/namedCredentialSelector.js.map +1 -1
  75. package/lib/common/selectors/pipelineStageSelector.js +5 -3
  76. package/lib/common/selectors/pipelineStageSelector.js.map +1 -1
  77. package/lib/common/selectors/validateDeploySelector.js +3 -1
  78. package/lib/common/selectors/validateDeploySelector.js.map +1 -1
  79. package/lib/common/selectors/workItemSelector.js +4 -1
  80. package/lib/common/selectors/workItemSelector.js.map +1 -1
  81. package/lib/utils/activatePipeline.d.ts +13 -4
  82. package/lib/utils/activatePipeline.js +7 -6
  83. package/lib/utils/activatePipeline.js.map +1 -1
  84. package/lib/utils/attachProject.js +2 -0
  85. package/lib/utils/attachProject.js.map +1 -1
  86. package/lib/utils/combineWorkItems.d.ts +20 -0
  87. package/lib/utils/combineWorkItems.js +42 -0
  88. package/lib/utils/combineWorkItems.js.map +1 -0
  89. package/lib/utils/createPipeline.d.ts +14 -1
  90. package/lib/utils/createPipeline.js +52 -6
  91. package/lib/utils/createPipeline.js.map +1 -1
  92. package/lib/utils/createProject.js +1 -0
  93. package/lib/utils/createProject.js.map +1 -1
  94. package/lib/utils/createPullRequest.d.ts +7 -19
  95. package/lib/utils/createPullRequest.js +51 -122
  96. package/lib/utils/createPullRequest.js.map +1 -1
  97. package/lib/utils/deletePipelineStage.d.ts +12 -0
  98. package/lib/utils/deletePipelineStage.js +41 -0
  99. package/lib/utils/deletePipelineStage.js.map +1 -0
  100. package/lib/utils/deleteStageEnvironment.d.ts +8 -0
  101. package/lib/utils/deleteStageEnvironment.js +33 -0
  102. package/lib/utils/deleteStageEnvironment.js.map +1 -0
  103. package/lib/utils/deployStage.d.ts +29 -0
  104. package/lib/utils/deployStage.js +68 -0
  105. package/lib/utils/deployStage.js.map +1 -0
  106. package/lib/utils/detachProject.d.ts +8 -0
  107. package/lib/utils/detachProject.js +37 -0
  108. package/lib/utils/detachProject.js.map +1 -0
  109. package/lib/utils/getPipeline.d.ts +27 -0
  110. package/lib/utils/getPipeline.js +66 -0
  111. package/lib/utils/getPipeline.js.map +1 -0
  112. package/lib/utils/getRequestStatus.d.ts +10 -0
  113. package/lib/utils/getRequestStatus.js +32 -0
  114. package/lib/utils/getRequestStatus.js.map +1 -0
  115. package/lib/utils/listPipelines.d.ts +11 -0
  116. package/lib/utils/listPipelines.js +20 -0
  117. package/lib/utils/listPipelines.js.map +1 -0
  118. package/lib/utils/pipelineUtils.js +3 -0
  119. package/lib/utils/pipelineUtils.js.map +1 -1
  120. package/lib/utils/prepareWorkItem.d.ts +25 -0
  121. package/lib/utils/prepareWorkItem.js +55 -0
  122. package/lib/utils/prepareWorkItem.js.map +1 -0
  123. package/lib/utils/promoteStage.d.ts +21 -0
  124. package/lib/utils/promoteStage.js +46 -0
  125. package/lib/utils/promoteStage.js.map +1 -0
  126. package/lib/utils/soqlUtils.d.ts +23 -0
  127. package/lib/utils/soqlUtils.js +63 -0
  128. package/lib/utils/soqlUtils.js.map +1 -0
  129. package/lib/utils/updateProject.d.ts +17 -0
  130. package/lib/utils/updateProject.js +41 -0
  131. package/lib/utils/updateProject.js.map +1 -0
  132. package/lib/utils/{updateWorkItemStatus.d.ts → updateWorkItem.d.ts} +12 -14
  133. package/lib/utils/{updateWorkItemStatus.js → updateWorkItem.js} +31 -27
  134. package/lib/utils/updateWorkItem.js.map +1 -0
  135. package/lib/utils/workItems.js +2 -0
  136. package/lib/utils/workItems.js.map +1 -1
  137. package/messages/devops.pipeline.create.md +26 -6
  138. package/messages/devops.pipeline.get.md +17 -0
  139. package/messages/devops.pipeline.list.md +13 -0
  140. package/messages/devops.pipeline.project.delete.md +25 -0
  141. package/messages/devops.pipeline.stage.delete.md +25 -0
  142. package/messages/devops.pipeline.update.md +47 -0
  143. package/messages/devops.project.update.md +45 -0
  144. package/messages/devops.promote.md +61 -0
  145. package/messages/devops.promotion.complete.md +47 -0
  146. package/messages/devops.request.status.md +21 -0
  147. package/messages/devops.review.create.md +33 -0
  148. package/messages/{devops.stage.add-environment.md → devops.stage.environment.add.md} +4 -0
  149. package/messages/devops.stage.environment.delete.md +29 -0
  150. package/messages/devops.work-item.combine.md +39 -0
  151. package/messages/devops.work-item.prepare.md +27 -0
  152. package/messages/devops.work-item.update.md +45 -0
  153. package/npm-shrinkwrap.json +37 -174
  154. package/oclif.lock +1 -1
  155. package/oclif.manifest.json +1167 -223
  156. package/package.json +20 -8
  157. package/schemas/devops-pipeline-get.json +98 -0
  158. package/schemas/devops-pipeline-list.json +38 -0
  159. package/schemas/devops-pipeline-project-delete.json +25 -0
  160. package/schemas/devops-pipeline-stage-delete.json +25 -0
  161. package/schemas/{devops-pipeline-activate.json → devops-pipeline-update.json} +5 -2
  162. package/schemas/devops-project-update.json +31 -0
  163. package/schemas/devops-promote.json +28 -0
  164. package/schemas/devops-promotion-complete.json +34 -0
  165. package/schemas/devops-request-status.json +31 -0
  166. package/schemas/{devops-pull__request-create.json → devops-review-create.json} +0 -3
  167. package/schemas/devops-stage-environment-delete.json +25 -0
  168. package/schemas/devops-work__item-combine.json +25 -0
  169. package/schemas/devops-work__item-prepare.json +25 -0
  170. package/schemas/{devops-work__item-status-update.json → devops-work__item-update.json} +8 -2
  171. package/lib/commands/devops/pipeline/activate.js.map +0 -1
  172. package/lib/commands/devops/pipeline/attach-project.js.map +0 -1
  173. package/lib/commands/devops/pull-request/create.js.map +0 -1
  174. package/lib/commands/devops/stage/add-branch.js.map +0 -1
  175. package/lib/commands/devops/stage/add-environment.js.map +0 -1
  176. package/lib/commands/devops/work-item/status/update.js.map +0 -1
  177. package/lib/utils/updateWorkItemStatus.js.map +0 -1
  178. package/messages/devops.pipeline.activate.md +0 -29
  179. package/messages/devops.pull-request.create.md +0 -57
  180. package/messages/devops.work-item.status.update.md +0 -29
  181. /package/messages/{devops.pipeline.attach-project.md → devops.pipeline.project.add.md} +0 -0
  182. /package/messages/{devops.stage.add-branch.md → devops.stage.branch.add.md} +0 -0
  183. /package/schemas/{devops-pipeline-attach__project.json → devops-pipeline-project-add.json} +0 -0
  184. /package/schemas/{devops-stage-add__branch.json → devops-stage-branch-add.json} +0 -0
  185. /package/schemas/{devops-stage-add__environment.json → devops-stage-environment-add.json} +0 -0
@@ -13,7 +13,8 @@ export default class DevopsPipelineCreate extends SfCommand<CreatePipelineResult
13
13
  'repo-type': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
14
  'create-repo': import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
15
  'repo-owner': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
- 'bitbucket-project': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ 'bitbucket-workspace': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ 'bitbucket-project-key': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
18
  description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
19
  };
19
20
  run(): Promise<CreatePipelineResult>;
@@ -15,7 +15,8 @@
15
15
  */
16
16
  import { Messages } from '@salesforce/core';
17
17
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
18
- import { createPipeline, detectRepoType } from '../../../utils/createPipeline.js';
18
+ import { createPipeline, detectRepoType, validateGitHubOwner, GitHubOwnerNotFoundError, } from '../../../utils/createPipeline.js';
19
+ import { resolveGitHubToken } from '../../../utils/createPullRequest.js';
19
20
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
20
21
  const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pipeline.create');
21
22
  const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
@@ -47,8 +48,11 @@ export default class DevopsPipelineCreate extends SfCommand {
47
48
  'repo-owner': Flags.string({
48
49
  summary: messages.getMessage('flags.repo-owner.summary'),
49
50
  }),
50
- 'bitbucket-project': Flags.string({
51
- summary: messages.getMessage('flags.bitbucket-project.summary'),
51
+ 'bitbucket-workspace': Flags.string({
52
+ summary: messages.getMessage('flags.bitbucket-workspace.summary'),
53
+ }),
54
+ 'bitbucket-project-key': Flags.string({
55
+ summary: messages.getMessage('flags.bitbucket-project-key.summary'),
52
56
  }),
53
57
  description: Flags.string({
54
58
  summary: messages.getMessage('flags.description.summary'),
@@ -60,8 +64,27 @@ export default class DevopsPipelineCreate extends SfCommand {
60
64
  const org = flags['target-org'];
61
65
  const connection = org.getConnection(flags['api-version']);
62
66
  const repoType = this.resolveRepoType(flags['repo-type'], flags['repo'], flags['create-repo']);
63
- if (flags['create-repo'] && !flags['repo-owner']) {
64
- this.error(messages.getMessage('error.RepoOwnerRequired'));
67
+ if (flags['create-repo']) {
68
+ if (repoType === 'bitbucket') {
69
+ if (!flags['bitbucket-workspace']) {
70
+ this.error(messages.getMessage('error.BitbucketWorkspaceRequired'));
71
+ }
72
+ }
73
+ else {
74
+ if (!flags['repo-owner']) {
75
+ this.error(messages.getMessage('error.RepoOwnerRequired'));
76
+ }
77
+ try {
78
+ const token = await resolveGitHubToken();
79
+ await validateGitHubOwner(flags['repo-owner'], token);
80
+ }
81
+ catch (error) {
82
+ if (error instanceof GitHubOwnerNotFoundError) {
83
+ this.error(messages.getMessage('error.RepoOwnerNotFound', [flags['repo-owner']]));
84
+ }
85
+ throw error;
86
+ }
87
+ }
65
88
  }
66
89
  let result;
67
90
  try {
@@ -73,7 +96,8 @@ export default class DevopsPipelineCreate extends SfCommand {
73
96
  repoType,
74
97
  createRepo: flags['create-repo'],
75
98
  repoOwner: flags['repo-owner'],
76
- bitbucketProject: flags['bitbucket-project'],
99
+ bitbucketWorkspace: flags['bitbucket-workspace'],
100
+ bitbucketProjectKey: flags['bitbucket-project-key'],
77
101
  });
78
102
  }
79
103
  catch (error) {
@@ -106,6 +130,12 @@ export default class DevopsPipelineCreate extends SfCommand {
106
130
  }
107
131
  handleApiError(errMsg, repo) {
108
132
  if (errMsg.includes('REPOSITORY_CREATION_FAILED')) {
133
+ if (errMsg.includes('Repository not found') || errMsg.includes('fatal: repository')) {
134
+ this.error(messages.getMessage('error.RepoOwnerNotFound', [repo]));
135
+ }
136
+ if (errMsg.includes('name already exists on this account')) {
137
+ this.error(messages.getMessage('error.RepoNameAlreadyExists', [repo]));
138
+ }
109
139
  this.error(messages.getMessage('error.RepoCreationFailed', [repo, errMsg]));
110
140
  }
111
141
  if (errMsg.includes('REPO_NOT_FOUND_OR_UNAUTHORIZED')) {
@@ -130,7 +160,7 @@ export default class DevopsPipelineCreate extends SfCommand {
130
160
  const orgLabel = username ?? '<org>';
131
161
  const pipelineIdLabel = result.pipelineId ?? '<ID>';
132
162
  this.log(` Add pipeline stages: sf devops pipeline stage add --target-org ${orgLabel} --pipeline-id ${pipelineIdLabel}`);
133
- this.log(` Attach a project: sf devops pipeline attach-project --target-org ${orgLabel} --pipeline-id ${pipelineIdLabel} --project-id <ID>`);
163
+ this.log(` Attach a project: sf devops pipeline project add --target-org ${orgLabel} --pipeline-id ${pipelineIdLabel} --project-id <ID>`);
134
164
  }
135
165
  }
136
166
  //# sourceMappingURL=create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/devops/pipeline/create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAO,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAwB,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAExG,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,wBAAwB,CAAC,CAAC;AACrG,MAAM,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;AAEtG,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAA+B;IACxE,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,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC;YACvD,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;SACjC,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;YAC3B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;YACzD,OAAO,EAAE,KAAK;SACf,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;SACzD,CAAC;QACF,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,iCAAiC,CAAC;SAChE,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;YACzD,IAAI,EAAE,GAAG;SACV,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzD,MAAM,GAAG,GAAQ,KAAK,CAAC,YAAY,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAE/F,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,MAA4B,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,cAAc,CAAC;gBAC5B,UAAU;gBACV,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;gBACnB,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC;gBACjC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;gBACnB,QAAQ;gBACR,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;gBAChC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;gBAC9B,gBAAgB,EAAE,KAAK,CAAC,mBAAmB,CAAC;aAC7C,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,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3C,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,eAAe,CAAC,YAAgC,EAAE,IAAY,EAAE,YAAqB;QAC3F,IAAI,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,YAAY;YAAE,OAAO,YAAY,CAAC;QAEtC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,cAAc,CAAC,MAAc,EAAE,IAAY;QACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;YACzF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,MAA4B,EAAE,QAAgB,EAAE,QAA4B;QACrG,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,uBAAuB,QAAQ,KAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,kCAAkC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC;QACtG,IAAI,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,QAAQ,IAAI,OAAO,CAAC;QACrC,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;QACpD,IAAI,CAAC,GAAG,CACN,sEAAsE,QAAQ,kBAAkB,eAAe,EAAE,CAClH,CAAC;QACF,IAAI,CAAC,GAAG,CACN,wEAAwE,QAAQ,kBAAkB,eAAe,oBAAoB,CACtI,CAAC;IACJ,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/devops/pipeline/create.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Org } from '@salesforce/core';
2
2
  import { SfCommand } from '@salesforce/sf-plugins-core';
3
- import { ActivatePipelineResult } from '../../../utils/activatePipeline.js';
4
- export default class DevopsPipelineActivate extends SfCommand<ActivatePipelineResult> {
3
+ import { PipelineGetResult } from '../../../utils/getPipeline.js';
4
+ export default class DevopsPipelineGet extends SfCommand<PipelineGetResult> {
5
5
  static readonly summary: string;
6
6
  static readonly description: string;
7
7
  static readonly examples: string[];
@@ -10,5 +10,5 @@ export default class DevopsPipelineActivate extends SfCommand<ActivatePipelineRe
10
10
  'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
11
  'pipeline-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
12
  };
13
- run(): Promise<ActivatePipelineResult>;
13
+ run(): Promise<PipelineGetResult>;
14
14
  }
@@ -0,0 +1,81 @@
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 { getPipeline } from '../../../utils/getPipeline.js';
19
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
20
+ const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pipeline.get');
21
+ const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
22
+ export default class DevopsPipelineGet extends SfCommand {
23
+ static summary = messages.getMessage('summary');
24
+ static description = messages.getMessage('description');
25
+ static examples = messages.getMessages('examples');
26
+ static flags = {
27
+ 'target-org': Flags.requiredOrg(),
28
+ 'api-version': Flags.orgApiVersion(),
29
+ 'pipeline-id': Flags.salesforceId({
30
+ summary: messages.getMessage('flags.pipeline-id.summary'),
31
+ char: 'i',
32
+ required: true,
33
+ }),
34
+ };
35
+ async run() {
36
+ const { flags } = await this.parse(DevopsPipelineGet);
37
+ const org = flags['target-org'];
38
+ const connection = org.getConnection(flags['api-version']);
39
+ let result;
40
+ try {
41
+ result = await getPipeline(connection, flags['pipeline-id']);
42
+ }
43
+ catch (error) {
44
+ const errMsg = error instanceof Error ? error.message : String(error);
45
+ if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
46
+ this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
47
+ }
48
+ throw error;
49
+ }
50
+ this.styledHeader(`Pipeline: ${result.name}`);
51
+ this.log(` ID: ${result.id}`);
52
+ this.log(` Description: ${result.description ?? ''}`);
53
+ this.log(` Active: ${result.isActive}`);
54
+ if (result.stages.length > 0) {
55
+ this.log('');
56
+ this.styledHeader('Stages');
57
+ this.table({
58
+ data: result.stages.map((s) => ({
59
+ ID: s.id,
60
+ Name: s.name ?? '',
61
+ 'Next Stage ID': s.nextStageId ?? '',
62
+ Branch: s.branchName ?? '',
63
+ Repository: s.repositoryOwner && s.repositoryName ? `${s.repositoryOwner}/${s.repositoryName}` : s.repositoryName ?? '',
64
+ Environment: s.environment?.name ?? '',
65
+ 'Environment ID': s.environment?.id ?? '',
66
+ })),
67
+ columns: ['ID', 'Name', 'Next Stage ID', 'Branch', 'Repository', 'Environment', 'Environment ID'],
68
+ });
69
+ }
70
+ if (result.connectedProjects.length > 0) {
71
+ this.log('');
72
+ this.styledHeader('Connected Projects');
73
+ this.table({
74
+ data: result.connectedProjects.map((p) => ({ ID: p.id, Name: p.name ?? '' })),
75
+ columns: ['ID', 'Name'],
76
+ });
77
+ }
78
+ return result;
79
+ }
80
+ }
81
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/devops/pipeline/get.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Org } from '@salesforce/core';
2
+ import { SfCommand } from '@salesforce/sf-plugins-core';
3
+ import { PipelineListResult } from '../../../utils/listPipelines.js';
4
+ export default class DevopsPipelineList extends SfCommand<PipelineListResult> {
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
+ };
12
+ run(): Promise<PipelineListResult>;
13
+ }
@@ -0,0 +1,58 @@
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 { listPipelines } from '../../../utils/listPipelines.js';
19
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
20
+ const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pipeline.list');
21
+ const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
22
+ export default class DevopsPipelineList extends SfCommand {
23
+ static summary = messages.getMessage('summary');
24
+ static description = messages.getMessage('description');
25
+ static examples = messages.getMessages('examples');
26
+ static flags = {
27
+ 'target-org': Flags.requiredOrg(),
28
+ 'api-version': Flags.orgApiVersion(),
29
+ };
30
+ async run() {
31
+ const { flags } = await this.parse(DevopsPipelineList);
32
+ const org = flags['target-org'];
33
+ const connection = org.getConnection(flags['api-version']);
34
+ let result;
35
+ try {
36
+ result = await listPipelines(connection);
37
+ }
38
+ catch (error) {
39
+ const errMsg = error instanceof Error ? error.message : String(error);
40
+ if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
41
+ this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
42
+ }
43
+ throw error;
44
+ }
45
+ if (result.pipelines.length === 0) {
46
+ this.log('No DevOps Center pipelines found in this org.');
47
+ }
48
+ else {
49
+ this.styledHeader('DevOps Center Pipelines');
50
+ this.table({
51
+ data: result.pipelines,
52
+ columns: ['Id', 'Name', 'Description', 'IsActive'],
53
+ });
54
+ }
55
+ return result;
56
+ }
57
+ }
58
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/devops/pipeline/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAO,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAsB,MAAM,iCAAiC,CAAC;AAEpF,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,sBAAsB,CAAC,CAAC;AACnG,MAAM,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;AAEtG,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAA6B;IACpE,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;KACrC,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACvD,MAAM,GAAG,GAAQ,KAAK,CAAC,YAAY,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAE3D,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QAC3C,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,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC;gBACT,IAAI,EAAE,MAAM,CAAC,SAAS;gBACtB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Org } from '@salesforce/core';
2
2
  import { SfCommand } from '@salesforce/sf-plugins-core';
3
- import { AttachProjectResult } from '../../../utils/attachProject.js';
4
- export default class DevopsPipelineAttachProject extends SfCommand<AttachProjectResult> {
3
+ import { AttachProjectResult } from '../../../../utils/attachProject.js';
4
+ export default class DevopsPipelineProjectAdd extends SfCommand<AttachProjectResult> {
5
5
  static readonly summary: string;
6
6
  static readonly description: string;
7
7
  static readonly examples: string[];
@@ -15,11 +15,11 @@
15
15
  */
16
16
  import { Messages } from '@salesforce/core';
17
17
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
18
- import { attachProject, findExistingAttachment } from '../../../utils/attachProject.js';
18
+ import { attachProject, findExistingAttachment } from '../../../../utils/attachProject.js';
19
19
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
20
- const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pipeline.attach-project');
20
+ const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pipeline.project.add');
21
21
  const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
22
- export default class DevopsPipelineAttachProject extends SfCommand {
22
+ export default class DevopsPipelineProjectAdd extends SfCommand {
23
23
  static summary = messages.getMessage('summary');
24
24
  static description = messages.getMessage('description');
25
25
  static examples = messages.getMessages('examples');
@@ -38,7 +38,7 @@ export default class DevopsPipelineAttachProject extends SfCommand {
38
38
  }),
39
39
  };
40
40
  async run() {
41
- const { flags } = await this.parse(DevopsPipelineAttachProject);
41
+ const { flags } = await this.parse(DevopsPipelineProjectAdd);
42
42
  const org = flags['target-org'];
43
43
  const connection = org.getConnection(flags['api-version']);
44
44
  const projectId = flags['project-id'];
@@ -79,4 +79,4 @@ export default class DevopsPipelineAttachProject extends SfCommand {
79
79
  return result;
80
80
  }
81
81
  }
82
- //# sourceMappingURL=attach-project.js.map
82
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../../src/commands/devops/pipeline/project/add.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 { DetachProjectResult } from '../../../../utils/detachProject.js';
4
+ export default class DevopsPipelineProjectDelete extends SfCommand<DetachProjectResult> {
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
+ 'project-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ };
14
+ run(): Promise<DetachProjectResult>;
15
+ }
@@ -15,12 +15,11 @@
15
15
  */
16
16
  import { Messages } from '@salesforce/core';
17
17
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
18
- import { activatePipeline } from '../../../utils/activatePipeline.js';
19
- import { fetchPipelineStages } from '../../../utils/pipelineUtils.js';
18
+ import { detachProject } from '../../../../utils/detachProject.js';
20
19
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
21
- const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pipeline.activate');
20
+ const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pipeline.project.delete');
22
21
  const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
23
- export default class DevopsPipelineActivate extends SfCommand {
22
+ export default class DevopsPipelineProjectDelete extends SfCommand {
24
23
  static summary = messages.getMessage('summary');
25
24
  static description = messages.getMessage('description');
26
25
  static examples = messages.getMessages('examples');
@@ -32,51 +31,41 @@ export default class DevopsPipelineActivate extends SfCommand {
32
31
  required: true,
33
32
  char: undefined,
34
33
  }),
34
+ 'project-id': Flags.salesforceId({
35
+ summary: messages.getMessage('flags.project-id.summary'),
36
+ required: true,
37
+ char: undefined,
38
+ }),
35
39
  };
36
40
  async run() {
37
- const { flags } = await this.parse(DevopsPipelineActivate);
41
+ const { flags } = await this.parse(DevopsPipelineProjectDelete);
38
42
  const org = flags['target-org'];
39
43
  const connection = org.getConnection(flags['api-version']);
44
+ const projectId = flags['project-id'];
40
45
  const pipelineId = flags['pipeline-id'];
41
- let stages;
42
- try {
43
- stages = await fetchPipelineStages(connection, pipelineId);
44
- }
45
- catch (error) {
46
- const errMsg = error instanceof Error ? error.message : String(error);
47
- if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
48
- this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
49
- }
50
- throw error;
51
- }
52
- if (stages.length === 0) {
53
- this.error(messages.getMessage('error.NoStages', [pipelineId]));
54
- }
55
46
  let result;
56
47
  try {
57
- result = await activatePipeline({ connection, pipelineId });
58
- result.stageCount = stages.length;
48
+ result = await detachProject(connection, projectId, pipelineId);
59
49
  }
60
50
  catch (error) {
61
51
  const errMsg = error instanceof Error ? error.message : String(error);
62
52
  if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
63
53
  this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
64
54
  }
65
- if (errMsg.includes('already active') || errMsg.includes('ALREADY_ACTIVE')) {
66
- this.error(messages.getMessage('error.AlreadyActive', [pipelineId]));
55
+ if (errMsg.startsWith('ProjectNotAttached:') || errMsg.includes('entity is deleted')) {
56
+ this.error(messages.getMessage('error.ProjectNotAttached', [projectId, pipelineId]));
67
57
  }
68
58
  throw error;
69
59
  }
70
60
  if (result.success) {
71
- this.log('Successfully activated the pipeline.');
61
+ this.log('Successfully removed project from pipeline.');
62
+ this.log(` Project ID: ${projectId}`);
72
63
  this.log(` Pipeline ID: ${pipelineId}`);
73
- this.log(` Status: ${result.status ?? 'Active'}`);
74
- this.log(` Stages: ${result.stageCount ?? stages.length}`);
75
64
  }
76
65
  else {
77
- this.error(`Failed to activate pipeline: ${result.error ?? ''}`);
66
+ this.error(`Failed to remove project from pipeline: ${result.error ?? ''}`);
78
67
  }
79
68
  return result;
80
69
  }
81
70
  }
82
- //# sourceMappingURL=activate.js.map
71
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../../src/commands/devops/pipeline/project/delete.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 { DeletePipelineStageResult } from '../../../../utils/deletePipelineStage.js';
4
+ export default class DevopsPipelineStageDelete extends SfCommand<DeletePipelineStageResult> {
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<DeletePipelineStageResult>;
15
+ }
@@ -0,0 +1,69 @@
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 { deletePipelineStage } from '../../../../utils/deletePipelineStage.js';
19
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
20
+ const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pipeline.stage.delete');
21
+ const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
22
+ export default class DevopsPipelineStageDelete extends SfCommand {
23
+ static summary = messages.getMessage('summary');
24
+ static description = messages.getMessage('description');
25
+ static examples = messages.getMessages('examples');
26
+ static flags = {
27
+ 'target-org': Flags.requiredOrg(),
28
+ 'api-version': Flags.orgApiVersion(),
29
+ 'pipeline-id': Flags.salesforceId({
30
+ summary: messages.getMessage('flags.pipeline-id.summary'),
31
+ required: true,
32
+ char: undefined,
33
+ }),
34
+ 'stage-id': Flags.salesforceId({
35
+ summary: messages.getMessage('flags.stage-id.summary'),
36
+ required: true,
37
+ char: undefined,
38
+ }),
39
+ };
40
+ async run() {
41
+ const { flags } = await this.parse(DevopsPipelineStageDelete);
42
+ const org = flags['target-org'];
43
+ const connection = org.getConnection(flags['api-version']);
44
+ const pipelineId = flags['pipeline-id'];
45
+ const stageId = flags['stage-id'];
46
+ let result;
47
+ try {
48
+ result = await deletePipelineStage(connection, pipelineId, stageId);
49
+ }
50
+ catch (error) {
51
+ const errMsg = error instanceof Error ? error.message : String(error);
52
+ if (errMsg.includes('sObject type') && errMsg.includes('is not supported')) {
53
+ this.error(commonErrorMessages.getMessage('error.DevopsCenterNotEnabled'));
54
+ }
55
+ if (errMsg.startsWith('Stage not found:') || errMsg.includes('entity is deleted')) {
56
+ this.error(messages.getMessage('error.StageNotFound', [stageId, pipelineId]));
57
+ }
58
+ throw error;
59
+ }
60
+ if (result.success) {
61
+ this.log(`Successfully deleted stage ${stageId} from pipeline ${pipelineId}.`);
62
+ }
63
+ else {
64
+ this.error(`Failed to delete stage: ${result.error ?? ''}`);
65
+ }
66
+ return result;
67
+ }
68
+ }
69
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../../src/commands/devops/pipeline/stage/delete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Org } from '@salesforce/core';
2
+ import { SfCommand } from '@salesforce/sf-plugins-core';
3
+ import { PipelineUpdateResult } from '../../../utils/activatePipeline.js';
4
+ export default class DevopsPipelineUpdate extends SfCommand<PipelineUpdateResult> {
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
+ active: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ };
15
+ private static getPipelineState;
16
+ run(): Promise<PipelineUpdateResult>;
17
+ private applyUpdates;
18
+ }