@salesforce/plugin-devops-center 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -100
- package/lib/commands/devops/pipeline/activate.js +5 -0
- package/lib/commands/devops/pipeline/activate.js.map +1 -1
- package/lib/commands/devops/pipeline/create.d.ts +2 -1
- package/lib/commands/devops/pipeline/create.js +37 -7
- package/lib/commands/devops/pipeline/create.js.map +1 -1
- package/lib/commands/devops/pipeline/{attach-project.d.ts → project/add.d.ts} +2 -2
- package/lib/commands/devops/pipeline/{attach-project.js → project/add.js} +5 -5
- package/lib/commands/devops/pipeline/project/add.js.map +1 -0
- package/lib/commands/devops/pull-request/create.d.ts +0 -2
- package/lib/commands/devops/pull-request/create.js +8 -40
- package/lib/commands/devops/pull-request/create.js.map +1 -1
- package/lib/commands/devops/stage/{add-branch.d.ts → branch/add.d.ts} +2 -2
- package/lib/commands/devops/stage/{add-branch.js → branch/add.js} +6 -6
- package/lib/commands/devops/stage/branch/add.js.map +1 -0
- package/lib/commands/devops/stage/{add-environment.d.ts → environment/add.d.ts} +2 -2
- package/lib/commands/devops/stage/{add-environment.js → environment/add.js} +11 -6
- package/lib/commands/devops/stage/environment/add.js.map +1 -0
- package/lib/commands/devops/work-item/{status/update.d.ts → update.d.ts} +6 -4
- package/lib/commands/devops/work-item/{status/update.js → update.js} +30 -9
- package/lib/commands/devops/work-item/update.js.map +1 -0
- package/lib/utils/createPipeline.d.ts +14 -1
- package/lib/utils/createPipeline.js +52 -6
- package/lib/utils/createPipeline.js.map +1 -1
- package/lib/utils/createProject.js +1 -0
- package/lib/utils/createProject.js.map +1 -1
- package/lib/utils/createPullRequest.d.ts +7 -19
- package/lib/utils/createPullRequest.js +49 -121
- package/lib/utils/createPullRequest.js.map +1 -1
- package/lib/utils/{updateWorkItemStatus.d.ts → updateWorkItem.d.ts} +12 -14
- package/lib/utils/{updateWorkItemStatus.js → updateWorkItem.js} +28 -26
- package/lib/utils/updateWorkItem.js.map +1 -0
- package/messages/devops.pipeline.create.md +26 -6
- package/messages/devops.pull-request.create.md +6 -30
- package/messages/{devops.stage.add-environment.md → devops.stage.environment.add.md} +4 -0
- package/messages/devops.work-item.update.md +45 -0
- package/npm-shrinkwrap.json +2 -2
- package/oclif.manifest.json +276 -266
- package/package.json +3 -3
- package/schemas/devops-pull__request-create.json +0 -3
- package/schemas/{devops-work__item-status-update.json → devops-work__item-update.json} +8 -2
- package/lib/commands/devops/pipeline/attach-project.js.map +0 -1
- package/lib/commands/devops/stage/add-branch.js.map +0 -1
- package/lib/commands/devops/stage/add-environment.js.map +0 -1
- package/lib/commands/devops/work-item/status/update.js.map +0 -1
- package/lib/utils/updateWorkItemStatus.js.map +0 -1
- package/messages/devops.work-item.status.update.md +0 -29
- /package/messages/{devops.pipeline.attach-project.md → devops.pipeline.project.add.md} +0 -0
- /package/messages/{devops.stage.add-branch.md → devops.stage.branch.add.md} +0 -0
- /package/schemas/{devops-pipeline-attach__project.json → devops-pipeline-project-add.json} +0 -0
- /package/schemas/{devops-stage-add__branch.json → devops-stage-branch-add.json} +0 -0
- /package/schemas/{devops-stage-add__environment.json → devops-stage-environment-add.json} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../../src/commands/devops/pipeline/project/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,6 @@ export default class DevopsPullRequestCreate extends SfCommand<CreatePullRequest
|
|
|
10
10
|
'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
11
|
'work-item-name': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
'work-item-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
-
title: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
-
body: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
13
|
};
|
|
16
14
|
run(): Promise<CreatePullRequestResult>;
|
|
17
15
|
}
|
|
@@ -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 { createPullRequest, fetchWorkItemDetail,
|
|
18
|
+
import { createPullRequest, fetchWorkItemDetail, } from '../../../utils/createPullRequest.js';
|
|
19
19
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
20
20
|
const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.pull-request.create');
|
|
21
21
|
const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
|
|
@@ -36,12 +36,6 @@ export default class DevopsPullRequestCreate extends SfCommand {
|
|
|
36
36
|
char: 'w',
|
|
37
37
|
exactlyOne: ['work-item-name', 'work-item-id'],
|
|
38
38
|
}),
|
|
39
|
-
title: Flags.string({
|
|
40
|
-
summary: messages.getMessage('flags.title.summary'),
|
|
41
|
-
}),
|
|
42
|
-
body: Flags.string({
|
|
43
|
-
summary: messages.getMessage('flags.body.summary'),
|
|
44
|
-
}),
|
|
45
39
|
};
|
|
46
40
|
async run() {
|
|
47
41
|
const { flags } = await this.parse(DevopsPullRequestCreate);
|
|
@@ -62,41 +56,15 @@ export default class DevopsPullRequestCreate extends SfCommand {
|
|
|
62
56
|
if (!detail.branchName) {
|
|
63
57
|
this.error(messages.getMessage('error.NoBranch', [detail.workItemName]));
|
|
64
58
|
}
|
|
65
|
-
|
|
66
|
-
this.error(messages.getMessage('error.NoRepo', [detail.workItemName]));
|
|
67
|
-
}
|
|
68
|
-
if (!detail.targetBranch) {
|
|
69
|
-
this.error(messages.getMessage('error.NoTargetBranch', [detail.workItemName]));
|
|
70
|
-
}
|
|
71
|
-
if (!detail.provider) {
|
|
72
|
-
this.error(messages.getMessage('error.NoProvider', [detail.workItemName]));
|
|
73
|
-
}
|
|
74
|
-
let token;
|
|
75
|
-
if (detail.provider === 'github') {
|
|
76
|
-
token = await resolveGitHubToken();
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
token = process.env.BITBUCKET_TOKEN;
|
|
80
|
-
}
|
|
81
|
-
if (!token) {
|
|
82
|
-
this.error(messages.getMessage('error.NoToken', [detail.provider]));
|
|
83
|
-
}
|
|
84
|
-
const prTitle = flags['title'] ?? detail.subject;
|
|
85
|
-
const result = await createPullRequest({
|
|
86
|
-
owner: detail.repoOwner,
|
|
87
|
-
repo: detail.repoName,
|
|
88
|
-
head: detail.branchName,
|
|
89
|
-
base: detail.targetBranch,
|
|
90
|
-
title: prTitle,
|
|
91
|
-
body: flags['body'],
|
|
92
|
-
provider: detail.provider,
|
|
93
|
-
token,
|
|
94
|
-
});
|
|
59
|
+
const result = await createPullRequest(connection, detail.workItemId);
|
|
95
60
|
if (result.success) {
|
|
96
61
|
this.log(`Successfully created pull request for ${detail.workItemName}.`);
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
62
|
+
if (result.url) {
|
|
63
|
+
this.log(` URL: ${result.url}`);
|
|
64
|
+
}
|
|
65
|
+
if (detail.branchName && detail.targetBranch) {
|
|
66
|
+
this.log(` Source: ${detail.branchName} → ${detail.targetBranch}`);
|
|
67
|
+
}
|
|
100
68
|
}
|
|
101
69
|
return result;
|
|
102
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/devops/pull-request/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,EACL,iBAAiB,EAEjB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/devops/pull-request/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 { AddStageBranchResult } from '
|
|
4
|
-
export default class
|
|
3
|
+
import { AddStageBranchResult } from '../../../../utils/addStageBranch.js';
|
|
4
|
+
export default class DevopsStageBranchAdd extends SfCommand<AddStageBranchResult> {
|
|
5
5
|
static readonly summary: string;
|
|
6
6
|
static readonly description: string;
|
|
7
7
|
static readonly examples: string[];
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Messages } from '@salesforce/core';
|
|
17
17
|
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
18
|
-
import { addStageBranch } from '
|
|
19
|
-
import { fetchPipelineStages } from '
|
|
18
|
+
import { addStageBranch } from '../../../../utils/addStageBranch.js';
|
|
19
|
+
import { fetchPipelineStages } from '../../../../utils/pipelineUtils.js';
|
|
20
20
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
21
|
-
const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.stage.add
|
|
21
|
+
const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.stage.branch.add');
|
|
22
22
|
const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
|
|
23
|
-
export default class
|
|
23
|
+
export default class DevopsStageBranchAdd extends SfCommand {
|
|
24
24
|
static summary = messages.getMessage('summary');
|
|
25
25
|
static description = messages.getMessage('description');
|
|
26
26
|
static examples = messages.getMessages('examples');
|
|
@@ -48,7 +48,7 @@ export default class DevopsStageAddBranch extends SfCommand {
|
|
|
48
48
|
}),
|
|
49
49
|
};
|
|
50
50
|
async run() {
|
|
51
|
-
const { flags } = await this.parse(
|
|
51
|
+
const { flags } = await this.parse(DevopsStageBranchAdd);
|
|
52
52
|
const org = flags['target-org'];
|
|
53
53
|
const connection = org.getConnection(flags['api-version']);
|
|
54
54
|
const pipelineId = flags['pipeline-id'];
|
|
@@ -107,4 +107,4 @@ export default class DevopsStageAddBranch extends SfCommand {
|
|
|
107
107
|
return result;
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
//# sourceMappingURL=add
|
|
110
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../../src/commands/devops/stage/branch/add.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 { AddStageEnvironmentResult } from '
|
|
4
|
-
export default class
|
|
3
|
+
import { AddStageEnvironmentResult } from '../../../../utils/addStageEnvironment.js';
|
|
4
|
+
export default class DevopsStageEnvironmentAdd extends SfCommand<AddStageEnvironmentResult> {
|
|
5
5
|
static readonly summary: string;
|
|
6
6
|
static readonly description: string;
|
|
7
7
|
static readonly examples: string[];
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
import { exec } from 'node:child_process';
|
|
17
17
|
import { Messages } from '@salesforce/core';
|
|
18
18
|
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
19
|
-
import { addStageEnvironment } from '
|
|
20
|
-
import { fetchPipelineStages } from '
|
|
19
|
+
import { addStageEnvironment } from '../../../../utils/addStageEnvironment.js';
|
|
20
|
+
import { fetchPipelineStages } from '../../../../utils/pipelineUtils.js';
|
|
21
21
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
22
|
-
const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.stage.add
|
|
22
|
+
const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.stage.environment.add');
|
|
23
23
|
const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
|
|
24
24
|
function openUrl(url) {
|
|
25
25
|
const platform = process.platform;
|
|
@@ -29,7 +29,7 @@ function openUrl(url) {
|
|
|
29
29
|
function decodeRedirectUrl(url) {
|
|
30
30
|
return url.replace(/&/g, '&');
|
|
31
31
|
}
|
|
32
|
-
export default class
|
|
32
|
+
export default class DevopsStageEnvironmentAdd extends SfCommand {
|
|
33
33
|
static summary = messages.getMessage('summary');
|
|
34
34
|
static description = messages.getMessage('description');
|
|
35
35
|
static examples = messages.getMessages('examples');
|
|
@@ -62,7 +62,7 @@ export default class DevopsStageAddEnvironment extends SfCommand {
|
|
|
62
62
|
}),
|
|
63
63
|
};
|
|
64
64
|
async run() {
|
|
65
|
-
const { flags } = await this.parse(
|
|
65
|
+
const { flags } = await this.parse(DevopsStageEnvironmentAdd);
|
|
66
66
|
const org = flags['target-org'];
|
|
67
67
|
const connection = org.getConnection(flags['api-version']);
|
|
68
68
|
const pipelineId = flags['pipeline-id'];
|
|
@@ -84,6 +84,11 @@ export default class DevopsStageAddEnvironment extends SfCommand {
|
|
|
84
84
|
if (!stages.some((s) => s.Id === stageId)) {
|
|
85
85
|
this.error(messages.getMessage('error.StageNotFound', [stageId, pipelineId]));
|
|
86
86
|
}
|
|
87
|
+
const pipelineQueryResult = await connection.query(`SELECT IsActive FROM DevopsPipeline WHERE Id = '${pipelineId}' LIMIT 1`);
|
|
88
|
+
const pipelineRecord = (pipelineQueryResult.records ?? [])[0];
|
|
89
|
+
if (pipelineRecord?.IsActive) {
|
|
90
|
+
this.error(messages.getMessage('error.PipelineAlreadyActive', [pipelineId]));
|
|
91
|
+
}
|
|
87
92
|
let result;
|
|
88
93
|
try {
|
|
89
94
|
result = await addStageEnvironment({
|
|
@@ -133,4 +138,4 @@ export default class DevopsStageAddEnvironment extends SfCommand {
|
|
|
133
138
|
return result;
|
|
134
139
|
}
|
|
135
140
|
}
|
|
136
|
-
//# sourceMappingURL=add
|
|
141
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../../src/commands/devops/stage/environment/add.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 {
|
|
4
|
-
export default class
|
|
3
|
+
import { UpdateWorkItemResult } from '../../../utils/updateWorkItem.js';
|
|
4
|
+
export default class DevopsWorkItemUpdate extends SfCommand<UpdateWorkItemResult> {
|
|
5
5
|
static readonly summary: string;
|
|
6
6
|
static readonly description: string;
|
|
7
7
|
static readonly examples: string[];
|
|
@@ -10,7 +10,9 @@ export default class DevopsWorkItemStatusUpdate extends SfCommand<UpdateWorkItem
|
|
|
10
10
|
'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
11
|
'work-item-name': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
'work-item-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
-
|
|
13
|
+
subject: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
16
|
};
|
|
15
|
-
run(): Promise<
|
|
17
|
+
run(): Promise<UpdateWorkItemResult>;
|
|
16
18
|
}
|
|
@@ -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 { resolveWorkItemByName, resolveProjectIdForWorkItem,
|
|
18
|
+
import { resolveWorkItemByName, resolveProjectIdForWorkItem, updateWorkItem, ALLOWED_STATUSES, } from '../../../utils/updateWorkItem.js';
|
|
19
19
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
20
|
-
const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.work-item.
|
|
20
|
+
const messages = Messages.loadMessages('@salesforce/plugin-devops-center', 'devops.work-item.update');
|
|
21
21
|
const commonErrorMessages = Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
|
|
22
|
-
export default class
|
|
22
|
+
export default class DevopsWorkItemUpdate extends SfCommand {
|
|
23
23
|
static summary = messages.getMessage('summary');
|
|
24
24
|
static description = messages.getMessage('description');
|
|
25
25
|
static examples = messages.getMessages('examples');
|
|
@@ -36,14 +36,22 @@ export default class DevopsWorkItemStatusUpdate extends SfCommand {
|
|
|
36
36
|
char: 'w',
|
|
37
37
|
exactlyOne: ['work-item-name', 'work-item-id'],
|
|
38
38
|
}),
|
|
39
|
+
subject: Flags.string({
|
|
40
|
+
summary: messages.getMessage('flags.subject.summary'),
|
|
41
|
+
}),
|
|
42
|
+
description: Flags.string({
|
|
43
|
+
summary: messages.getMessage('flags.description.summary'),
|
|
44
|
+
}),
|
|
39
45
|
status: Flags.string({
|
|
40
46
|
summary: messages.getMessage('flags.status.summary'),
|
|
41
|
-
required: true,
|
|
42
47
|
options: [...ALLOWED_STATUSES],
|
|
43
48
|
}),
|
|
44
49
|
};
|
|
45
50
|
async run() {
|
|
46
|
-
const { flags } = await this.parse(
|
|
51
|
+
const { flags } = await this.parse(DevopsWorkItemUpdate);
|
|
52
|
+
if (!flags['subject'] && !flags['description'] && !flags['status']) {
|
|
53
|
+
this.error(messages.getMessage('error.NoFieldsProvided'));
|
|
54
|
+
}
|
|
47
55
|
const org = flags['target-org'];
|
|
48
56
|
const connection = org.getConnection(flags['api-version']);
|
|
49
57
|
let workItemId;
|
|
@@ -68,7 +76,14 @@ export default class DevopsWorkItemStatusUpdate extends SfCommand {
|
|
|
68
76
|
}
|
|
69
77
|
let result;
|
|
70
78
|
try {
|
|
71
|
-
result = await
|
|
79
|
+
result = await updateWorkItem({
|
|
80
|
+
connection,
|
|
81
|
+
workItemId,
|
|
82
|
+
projectId,
|
|
83
|
+
status: flags['status'],
|
|
84
|
+
subject: flags['subject'],
|
|
85
|
+
description: flags['description'],
|
|
86
|
+
});
|
|
72
87
|
}
|
|
73
88
|
catch (error) {
|
|
74
89
|
const errMsg = error instanceof Error ? error.message : String(error);
|
|
@@ -78,11 +93,17 @@ export default class DevopsWorkItemStatusUpdate extends SfCommand {
|
|
|
78
93
|
throw error;
|
|
79
94
|
}
|
|
80
95
|
if (result.success) {
|
|
81
|
-
const identifier = flags['work-item-name'] ??
|
|
82
|
-
this.log(`Successfully updated
|
|
96
|
+
const identifier = flags['work-item-name'] ?? workItemId;
|
|
97
|
+
this.log(`Successfully updated work item ${identifier}.`);
|
|
98
|
+
if (result.subject !== undefined)
|
|
99
|
+
this.log(` Subject: ${result.subject}`);
|
|
100
|
+
if (result.description !== undefined)
|
|
101
|
+
this.log(` Description: ${result.description}`);
|
|
102
|
+
if (result.status !== undefined)
|
|
103
|
+
this.log(` Status: ${result.status}`);
|
|
83
104
|
}
|
|
84
105
|
else {
|
|
85
|
-
this.error(`Failed to update work item
|
|
106
|
+
this.error(`Failed to update work item: ${result.error ?? ''}`);
|
|
86
107
|
}
|
|
87
108
|
return result;
|
|
88
109
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/devops/work-item/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,8 @@ export type CreatePipelineParams = {
|
|
|
12
12
|
repoType: string;
|
|
13
13
|
createRepo?: boolean;
|
|
14
14
|
repoOwner?: string;
|
|
15
|
-
|
|
15
|
+
bitbucketWorkspace?: string;
|
|
16
|
+
bitbucketProjectKey?: string;
|
|
16
17
|
};
|
|
17
18
|
export type CreatePipelineResult = {
|
|
18
19
|
success: boolean;
|
|
@@ -27,6 +28,18 @@ export type CreatePipelineResult = {
|
|
|
27
28
|
* Detects repo type from a URL. Returns 'github' or 'bitbucket', or undefined.
|
|
28
29
|
*/
|
|
29
30
|
export declare function detectRepoType(repoUrl: string): string | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Validates that a GitHub owner (org or user) exists.
|
|
33
|
+
* Primary: uses `gh api` which handles keyring-based auth automatically.
|
|
34
|
+
* Fallback: direct GitHub API call with token (for environments without gh CLI).
|
|
35
|
+
* Skips validation silently when neither mechanism can authenticate, so we
|
|
36
|
+
* don't block the command when the check itself is unavailable.
|
|
37
|
+
*/
|
|
38
|
+
export declare function validateGitHubOwner(owner: string, token?: string, fetchFn?: typeof fetch): Promise<void>;
|
|
39
|
+
export declare class GitHubOwnerNotFoundError extends Error {
|
|
40
|
+
readonly owner: string;
|
|
41
|
+
constructor(owner: string);
|
|
42
|
+
}
|
|
30
43
|
/**
|
|
31
44
|
* Creates a new DevOps Center pipeline via the Connect API.
|
|
32
45
|
* POST /services/data/v{version}/connect/devops/pipelines
|
|
@@ -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 { execSync } from 'node:child_process';
|
|
16
17
|
const DEFAULT_STAGES = [{ name: 'Integration' }, { name: 'UAT' }, { name: 'Staging' }, { name: 'Production' }];
|
|
17
18
|
/**
|
|
18
19
|
* Detects repo type from a URL. Returns 'github' or 'bitbucket', or undefined.
|
|
@@ -25,12 +26,55 @@ export function detectRepoType(repoUrl) {
|
|
|
25
26
|
return 'bitbucket';
|
|
26
27
|
return undefined;
|
|
27
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Validates that a GitHub owner (org or user) exists.
|
|
31
|
+
* Primary: uses `gh api` which handles keyring-based auth automatically.
|
|
32
|
+
* Fallback: direct GitHub API call with token (for environments without gh CLI).
|
|
33
|
+
* Skips validation silently when neither mechanism can authenticate, so we
|
|
34
|
+
* don't block the command when the check itself is unavailable.
|
|
35
|
+
*/
|
|
36
|
+
export async function validateGitHubOwner(owner, token, fetchFn = fetch) {
|
|
37
|
+
try {
|
|
38
|
+
execSync(`gh api users/${encodeURIComponent(owner)}`, {
|
|
39
|
+
encoding: 'utf-8',
|
|
40
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
41
|
+
});
|
|
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 new GitHubOwnerNotFoundError(owner);
|
|
49
|
+
}
|
|
50
|
+
// gh not available or not authenticated — fall through to token-based check
|
|
51
|
+
}
|
|
52
|
+
if (!token)
|
|
53
|
+
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)
|
|
62
|
+
throw new GitHubOwnerNotFoundError(owner);
|
|
63
|
+
// 403 or other non-404: skip validation
|
|
64
|
+
}
|
|
65
|
+
export class GitHubOwnerNotFoundError extends Error {
|
|
66
|
+
owner;
|
|
67
|
+
constructor(owner) {
|
|
68
|
+
super(`GitHub owner "${owner}" does not exist`);
|
|
69
|
+
this.owner = owner;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
28
72
|
/**
|
|
29
73
|
* Creates a new DevOps Center pipeline via the Connect API.
|
|
30
74
|
* POST /services/data/v{version}/connect/devops/pipelines
|
|
31
75
|
*/
|
|
32
76
|
export async function createPipeline(params) {
|
|
33
|
-
const { connection, name, description, repo, repoType, createRepo, repoOwner,
|
|
77
|
+
const { connection, name, description, repo, repoType, createRepo, repoOwner, bitbucketWorkspace, bitbucketProjectKey, } = params;
|
|
34
78
|
const path = `/services/data/v${connection.getApiVersion()}/connect/devops/pipelines`;
|
|
35
79
|
const payload = {
|
|
36
80
|
name,
|
|
@@ -40,14 +84,16 @@ export async function createPipeline(params) {
|
|
|
40
84
|
if (createRepo) {
|
|
41
85
|
payload.createVcsRepo = true;
|
|
42
86
|
payload.vcsRepoName = repo;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
providerInfo.bitbucketProject = bitbucketProject;
|
|
87
|
+
if (repoType === 'bitbucket') {
|
|
88
|
+
const providerInfo = { bitbucketWorkspace: bitbucketWorkspace };
|
|
89
|
+
if (bitbucketProjectKey) {
|
|
90
|
+
providerInfo.bitbucketProjectKey = bitbucketProjectKey;
|
|
48
91
|
}
|
|
49
92
|
payload.repoProviderInfo = JSON.stringify(providerInfo);
|
|
50
93
|
}
|
|
94
|
+
else {
|
|
95
|
+
payload.vcsRepoOwner = repoOwner;
|
|
96
|
+
}
|
|
51
97
|
}
|
|
52
98
|
else {
|
|
53
99
|
payload.vcsRepoUrl = repo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPipeline.js","sourceRoot":"","sources":["../../src/utils/createPipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"createPipeline.js","sourceRoot":"","sources":["../../src/utils/createPipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createProject.js","sourceRoot":"","sources":["../../src/utils/createProject.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA2B;IAC7D,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAEjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;QAC9D,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,WAAW,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"createProject.js","sourceRoot":"","sources":["../../src/utils/createProject.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA2B;IAC7D,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAEjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;QAC9D,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,WAAW,IAAI,IAAI;QAChC,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,MAAM,CAAC,EAAE;YACpB,IAAI;YACJ,WAAW,EAAE,WAAW,IAAI,SAAS;SACtC,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5G,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,aAAa,IAAI,eAAe;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -6,32 +6,18 @@ export type WorkItemDetail = {
|
|
|
6
6
|
branchName?: string;
|
|
7
7
|
targetBranch?: string;
|
|
8
8
|
projectId: string;
|
|
9
|
-
repoOwner?: string;
|
|
10
|
-
repoName?: string;
|
|
11
9
|
provider?: string;
|
|
12
10
|
};
|
|
13
|
-
export type CreatePullRequestParams = {
|
|
14
|
-
owner: string;
|
|
15
|
-
repo: string;
|
|
16
|
-
head: string;
|
|
17
|
-
base: string;
|
|
18
|
-
title: string;
|
|
19
|
-
body?: string;
|
|
20
|
-
provider: string;
|
|
21
|
-
token: string;
|
|
22
|
-
};
|
|
23
11
|
export type CreatePullRequestResult = {
|
|
24
12
|
success: boolean;
|
|
25
13
|
workItemName?: string;
|
|
26
|
-
title?: string;
|
|
27
14
|
url?: string;
|
|
28
15
|
sourceBranch?: string;
|
|
29
16
|
targetBranch?: string;
|
|
30
17
|
error?: string;
|
|
31
18
|
};
|
|
32
19
|
/**
|
|
33
|
-
* Queries a work item (by Name or Id) and resolves
|
|
34
|
-
* to create a pull request: branch, repo, owner, provider, and target branch.
|
|
20
|
+
* Queries a work item (by Name or Id) and resolves info needed to create a pull request.
|
|
35
21
|
*/
|
|
36
22
|
export declare function fetchWorkItemDetail(connection: Connection, filter: {
|
|
37
23
|
name: string;
|
|
@@ -39,11 +25,13 @@ export declare function fetchWorkItemDetail(connection: Connection, filter: {
|
|
|
39
25
|
id: string;
|
|
40
26
|
}): Promise<WorkItemDetail>;
|
|
41
27
|
/**
|
|
42
|
-
* Creates a pull request
|
|
28
|
+
* Creates a pull request via the Salesforce Connect API.
|
|
29
|
+
* POST /connect/devops/workItems/{workItemId}/review
|
|
30
|
+
* Salesforce handles VCS authentication and workspace resolution.
|
|
43
31
|
*/
|
|
44
|
-
export declare function createPullRequest(
|
|
32
|
+
export declare function createPullRequest(connection: Connection, workItemId: string): Promise<CreatePullRequestResult>;
|
|
45
33
|
/**
|
|
46
|
-
* Attempts to resolve a
|
|
47
|
-
*
|
|
34
|
+
* Attempts to resolve a GitHub authentication token from the environment or the gh CLI.
|
|
35
|
+
* Used by pipeline create for pre-flight owner validation.
|
|
48
36
|
*/
|
|
49
37
|
export declare function resolveGitHubToken(): Promise<string | undefined>;
|