@postman-cse/onboarding-bootstrap 0.9.1 → 0.10.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/.github/workflows/contract-smoke.yml +155 -0
- package/.omc/sessions/b36ac16d-ce26-4e94-ae7e-dd817f2430a3.json +8 -0
- package/CLAUDE.md +57 -0
- package/README.md +124 -12
- package/action.yml +17 -18
- package/dist/cli.cjs +231 -489
- package/dist/index.cjs +226 -480
- package/package.json +3 -2
- package/src/cli.ts +5 -11
- package/src/contracts.ts +24 -24
- package/src/index.ts +253 -323
- package/src/lib/postman/postman-assets-client.ts +27 -4
- package/tests/bootstrap-action.test.ts +565 -79
- package/tests/cli.test.ts +12 -6
- package/tests/contract.test.ts +20 -3
- package/tests/postman-assets-client.test.ts +153 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@postman-cse/onboarding-bootstrap",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Public open-alpha Postman bootstrap GitHub Action.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"@actions/io": "^1.1.3"
|
|
28
28
|
},
|
|
29
29
|
"overrides": {
|
|
30
|
-
"undici": "^6.24.0"
|
|
30
|
+
"undici": "^6.24.0",
|
|
31
|
+
"picomatch": ">=4.0.4"
|
|
31
32
|
},
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"esbuild": "^0.27.3",
|
package/src/cli.ts
CHANGED
|
@@ -168,9 +168,7 @@ export function createCliDependencies(
|
|
|
168
168
|
): BootstrapExecutionDependencies {
|
|
169
169
|
const secretMasker = createSecretMasker([
|
|
170
170
|
inputs.postmanApiKey,
|
|
171
|
-
inputs.postmanAccessToken
|
|
172
|
-
inputs.githubToken,
|
|
173
|
-
inputs.ghFallbackToken
|
|
171
|
+
inputs.postmanAccessToken
|
|
174
172
|
]);
|
|
175
173
|
const cliExec = createCliExec(secretMasker);
|
|
176
174
|
|
|
@@ -193,18 +191,17 @@ export function parseCliArgs(argv: string[], env: NodeJS.ProcessEnv = process.en
|
|
|
193
191
|
'baseline-collection-id',
|
|
194
192
|
'smoke-collection-id',
|
|
195
193
|
'contract-collection-id',
|
|
194
|
+
'collection-sync-mode',
|
|
195
|
+
'spec-sync-mode',
|
|
196
|
+
'release-label',
|
|
196
197
|
'domain',
|
|
197
198
|
'domain-code',
|
|
198
199
|
'requester-email',
|
|
199
200
|
'workspace-admin-user-ids',
|
|
200
|
-
'environments-json',
|
|
201
|
-
'system-env-map-json',
|
|
202
201
|
'governance-mapping-json',
|
|
203
202
|
'integration-backend',
|
|
204
|
-
'github-auth-mode',
|
|
205
|
-
'github-token',
|
|
206
|
-
'gh-fallback-token',
|
|
207
203
|
'team-id',
|
|
204
|
+
'workspace-team-id',
|
|
208
205
|
'repo-url'
|
|
209
206
|
];
|
|
210
207
|
|
|
@@ -256,9 +253,6 @@ export async function runCli(
|
|
|
256
253
|
const inputs = resolveInputs(config.inputEnv);
|
|
257
254
|
const dependencies = createCliDependencies(inputs);
|
|
258
255
|
|
|
259
|
-
if (!dependencies.github) {
|
|
260
|
-
dependencies.core.info('GitHub repository variable persistence disabled for this run');
|
|
261
|
-
}
|
|
262
256
|
if (inputs.domain && !dependencies.internalIntegration) {
|
|
263
257
|
dependencies.core.warning(
|
|
264
258
|
'Skipping governance assignment because postman-access-token is not configured'
|
package/src/contracts.ts
CHANGED
|
@@ -43,6 +43,25 @@ export const openAlphaActionContract: BetaActionContract = {
|
|
|
43
43
|
description: 'Existing contract collection ID.',
|
|
44
44
|
required: false
|
|
45
45
|
},
|
|
46
|
+
'collection-sync-mode': {
|
|
47
|
+
description:
|
|
48
|
+
'Collection lifecycle policy: reuse existing collections, refresh them from the latest spec, or version them by release label.',
|
|
49
|
+
required: false,
|
|
50
|
+
default: 'refresh',
|
|
51
|
+
allowedValues: ['reuse', 'refresh', 'version']
|
|
52
|
+
},
|
|
53
|
+
'spec-sync-mode': {
|
|
54
|
+
description:
|
|
55
|
+
'Spec lifecycle policy: update the canonical spec or create/reuse a versioned spec for the resolved release label.',
|
|
56
|
+
required: false,
|
|
57
|
+
default: 'update',
|
|
58
|
+
allowedValues: ['update', 'version']
|
|
59
|
+
},
|
|
60
|
+
'release-label': {
|
|
61
|
+
description:
|
|
62
|
+
'Optional release label. When omitted for versioned sync, the action derives one from GitHub ref metadata.',
|
|
63
|
+
required: false
|
|
64
|
+
},
|
|
46
65
|
'project-name': {
|
|
47
66
|
description: 'Service project name.',
|
|
48
67
|
required: true
|
|
@@ -63,20 +82,14 @@ export const openAlphaActionContract: BetaActionContract = {
|
|
|
63
82
|
description: 'Comma-separated workspace admin user ids.',
|
|
64
83
|
required: false
|
|
65
84
|
},
|
|
85
|
+
'workspace-team-id': {
|
|
86
|
+
description: 'Numeric sub-team ID for org-mode workspace creation.',
|
|
87
|
+
required: false
|
|
88
|
+
},
|
|
66
89
|
'spec-url': {
|
|
67
90
|
description: 'HTTPS URL to the OpenAPI document.',
|
|
68
91
|
required: true
|
|
69
92
|
},
|
|
70
|
-
'environments-json': {
|
|
71
|
-
description: 'JSON array of environment slugs to preserve in bootstrap outputs.',
|
|
72
|
-
required: false,
|
|
73
|
-
default: '["prod"]'
|
|
74
|
-
},
|
|
75
|
-
'system-env-map-json': {
|
|
76
|
-
description: 'JSON map of environment slug to system environment id.',
|
|
77
|
-
required: false,
|
|
78
|
-
default: '{}'
|
|
79
|
-
},
|
|
80
93
|
'governance-mapping-json': {
|
|
81
94
|
description: 'JSON map of business domain to governance group name.',
|
|
82
95
|
required: false,
|
|
@@ -90,19 +103,6 @@ export const openAlphaActionContract: BetaActionContract = {
|
|
|
90
103
|
description: 'Postman access token used for governance and workspace mutations.',
|
|
91
104
|
required: false
|
|
92
105
|
},
|
|
93
|
-
'github-token': {
|
|
94
|
-
description: 'GitHub token for repository variable persistence.',
|
|
95
|
-
required: false
|
|
96
|
-
},
|
|
97
|
-
'gh-fallback-token': {
|
|
98
|
-
description: 'Fallback token for repository variable APIs.',
|
|
99
|
-
required: false
|
|
100
|
-
},
|
|
101
|
-
'github-auth-mode': {
|
|
102
|
-
description: 'GitHub auth mode for repository variable APIs.',
|
|
103
|
-
required: false,
|
|
104
|
-
default: 'github_token_first'
|
|
105
|
-
},
|
|
106
106
|
'integration-backend': {
|
|
107
107
|
description: 'Integration backend for downstream workspace connectivity.',
|
|
108
108
|
required: false,
|
|
@@ -148,8 +148,8 @@ export const openAlphaActionContract: BetaActionContract = {
|
|
|
148
148
|
'OpenAPI operation summary normalization before upload (missing or oversized summaries)',
|
|
149
149
|
'spec linting by UID',
|
|
150
150
|
'baseline, smoke, and contract collection generation',
|
|
151
|
+
'collection refresh and versioning policies',
|
|
151
152
|
'collection tagging',
|
|
152
|
-
'GitHub repository variable persistence for downstream sync steps',
|
|
153
153
|
'workspace, spec, and collection outputs'
|
|
154
154
|
],
|
|
155
155
|
removedBehavior: [
|