@packtory/cli 0.0.102 → 0.0.103
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/command-line-interface/config-loader.js +2 -33
- package/command-line-interface/config-loader.js.map +1 -1
- package/command-line-interface/one-time-password-prompt.js +0 -31
- package/command-line-interface/one-time-password-prompt.js.map +1 -1
- package/command-line-interface/preview-io/preview-io-shared.js +2 -31
- package/command-line-interface/preview-io/preview-io-shared.js.map +1 -1
- package/command-line-interface/preview-io/preview-io.js +4 -15
- package/command-line-interface/preview-io/preview-io.js.map +1 -1
- package/command-line-interface/preview-io/preview-spawn.js +1 -26
- package/command-line-interface/preview-io/preview-spawn.js.map +1 -1
- package/command-line-interface/runner/changelog-destinations.js +5 -220
- package/command-line-interface/runner/changelog-destinations.js.map +1 -1
- package/command-line-interface/runner/changelog-handler.js +5 -79
- package/command-line-interface/runner/changelog-handler.js.map +1 -1
- package/command-line-interface/runner/changelog-pr-log-config.js +1 -147
- package/command-line-interface/runner/changelog-pr-log-config.js.map +1 -1
- package/command-line-interface/runner/command-parsing.js +0 -10
- package/command-line-interface/runner/command-parsing.js.map +1 -1
- package/command-line-interface/runner/config-inspect-handler.js +4 -79
- package/command-line-interface/runner/config-inspect-handler.js.map +1 -1
- package/command-line-interface/runner/failure-printing.js +5 -75
- package/command-line-interface/runner/failure-printing.js.map +1 -1
- package/command-line-interface/runner/github-api-request.js +0 -100
- package/command-line-interface/runner/github-api-request.js.map +1 -1
- package/command-line-interface/runner/github-release-client.js +2 -102
- package/command-line-interface/runner/github-release-client.js.map +1 -1
- package/command-line-interface/runner/github-release-notes.js +1 -74
- package/command-line-interface/runner/github-release-notes.js.map +1 -1
- package/command-line-interface/runner/github-repository.js +1 -14
- package/command-line-interface/runner/github-repository.js.map +1 -1
- package/command-line-interface/runner/pack-handler.js +4 -201
- package/command-line-interface/runner/pack-handler.js.map +1 -1
- package/command-line-interface/runner/package-dependencies-handler.js +3 -53
- package/command-line-interface/runner/package-dependencies-handler.js.map +1 -1
- package/command-line-interface/runner/package-tree-handler.js +3 -66
- package/command-line-interface/runner/package-tree-handler.js.map +1 -1
- package/command-line-interface/runner/preview-handler.js +4 -50
- package/command-line-interface/runner/preview-handler.js.map +1 -1
- package/command-line-interface/runner/progress-wiring.js +0 -32
- package/command-line-interface/runner/progress-wiring.js.map +1 -1
- package/command-line-interface/runner/publish-handler.js +2 -45
- package/command-line-interface/runner/publish-handler.js.map +1 -1
- package/command-line-interface/runner/release-diff-handler.js +3 -33
- package/command-line-interface/runner/release-diff-handler.js.map +1 -1
- package/command-line-interface/runner/release-handler.js +5 -246
- package/command-line-interface/runner/release-handler.js.map +1 -1
- package/command-line-interface/runner/release-output-files.js +2 -24
- package/command-line-interface/runner/release-output-files.js.map +1 -1
- package/command-line-interface/runner/release-plan-result-printing.js +2 -25
- package/command-line-interface/runner/release-plan-result-printing.js.map +1 -1
- package/command-line-interface/runner/release-pr-branch-commit.js +2 -108
- package/command-line-interface/runner/release-pr-branch-commit.js.map +1 -1
- package/command-line-interface/runner/release-pr-github-client.js +8 -289
- package/command-line-interface/runner/release-pr-github-client.js.map +1 -1
- package/command-line-interface/runner/release-pr-workflow-run-cancellation.js +3 -66
- package/command-line-interface/runner/release-pr-workflow-run-cancellation.js.map +1 -1
- package/command-line-interface/runner/release-pr-workflow-runs.js +1 -52
- package/command-line-interface/runner/release-pr-workflow-runs.js.map +1 -1
- package/command-line-interface/runner/release-preparation.js +4 -91
- package/command-line-interface/runner/release-preparation.js.map +1 -1
- package/command-line-interface/runner/release-publish-authorization.js +1 -66
- package/command-line-interface/runner/release-publish-authorization.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-ci.js +0 -297
- package/command-line-interface/runner/release-pull-request-ci.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-config.d.ts +0 -38
- package/command-line-interface/runner/release-pull-request-config.d.ts.map +1 -1
- package/command-line-interface/runner/release-pull-request-config.js +5 -51
- package/command-line-interface/runner/release-pull-request-config.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-handler.js +9 -320
- package/command-line-interface/runner/release-pull-request-handler.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-policy.js +0 -46
- package/command-line-interface/runner/release-pull-request-policy.js.map +1 -1
- package/command-line-interface/runner/release-pull-request-settings.js +2 -18
- package/command-line-interface/runner/release-pull-request-settings.js.map +1 -1
- package/command-line-interface/runner/report-persistence.js +2 -25
- package/command-line-interface/runner/report-persistence.js.map +1 -1
- package/command-line-interface/runner/runner-symbols.js +1 -10
- package/command-line-interface/runner/runner-symbols.js.map +1 -1
- package/command-line-interface/runner/runner.js +14 -385
- package/command-line-interface/runner/runner.js.map +1 -1
- package/command-line-interface/runner/terminal-error-chain.js +0 -101
- package/command-line-interface/runner/terminal-error-chain.js.map +1 -1
- package/command-line-interface/spinner/line-spinner-renderer.js +2 -49
- package/command-line-interface/spinner/line-spinner-renderer.js.map +1 -1
- package/command-line-interface/spinner/spinner-boot.js +1 -9
- package/command-line-interface/spinner/spinner-boot.js.map +1 -1
- package/command-line-interface/spinner/spinner-glyphs.js +1 -30
- package/command-line-interface/spinner/spinner-glyphs.js.map +1 -1
- package/command-line-interface/spinner/spinner-render-sequence.js +2 -30
- package/command-line-interface/spinner/spinner-render-sequence.js.map +1 -1
- package/command-line-interface/spinner/spinner-runtime.js +1 -30
- package/command-line-interface/spinner/spinner-runtime.js.map +1 -1
- package/command-line-interface/spinner/spinner-shared-state.js +0 -271
- package/command-line-interface/spinner/spinner-shared-state.js.map +1 -1
- package/command-line-interface/spinner/spinner-snapshots.js +1 -11
- package/command-line-interface/spinner/spinner-snapshots.js.map +1 -1
- package/command-line-interface/spinner/spinner-worker-backend.js +0 -42
- package/command-line-interface/spinner/spinner-worker-backend.js.map +1 -1
- package/command-line-interface/spinner/spinner-worker-loop.js +3 -39
- package/command-line-interface/spinner/spinner-worker-loop.js.map +1 -1
- package/command-line-interface/spinner/terminal-spinner-renderer.js +0 -54
- package/command-line-interface/spinner/terminal-spinner-renderer.js.map +1 -1
- package/common/path-tree.js +2 -100
- package/common/path-tree.js.map +1 -1
- package/package.json +2 -2
- package/packages/command-line-interface/pull-request-label-versioning.js +3 -80
- package/packages/command-line-interface/pull-request-label-versioning.js.map +1 -1
- package/packages/command-line-interface/spinner-boot.entry-point.js +3 -40
- package/packages/command-line-interface/spinner-boot.entry-point.js.map +1 -1
- package/packtory/changelog-source-file-history.js +2 -108
- package/packtory/changelog-source-file-history.js.map +1 -1
- package/packtory/packtory-changelog.js +5 -294
- package/packtory/packtory-changelog.js.map +1 -1
- package/report/html-renderer/artifact-tree-renderer.js +4 -28
- package/report/html-renderer/artifact-tree-renderer.js.map +1 -1
- package/report/html-renderer/diagnostics-renderer.js +2 -38
- package/report/html-renderer/diagnostics-renderer.js.map +1 -1
- package/report/html-renderer/diff-renderer.js +1 -28
- package/report/html-renderer/diff-renderer.js.map +1 -1
- package/report/html-renderer/eliminated-files-renderer.js +2 -15
- package/report/html-renderer/eliminated-files-renderer.js.map +1 -1
- package/report/html-renderer/html-escaping.js +0 -8
- package/report/html-renderer/html-escaping.js.map +1 -1
- package/report/html-renderer/html-primitives.js +1 -23
- package/report/html-renderer/html-primitives.js.map +1 -1
- package/report/html-renderer/html-renderer.js +4 -60
- package/report/html-renderer/html-renderer.js.map +1 -1
- package/report/html-renderer/html-styles.js +0 -176
- package/report/html-renderer/html-styles.js.map +1 -1
- package/report/html-renderer/package-renderer.js +6 -31
- package/report/html-renderer/package-renderer.js.map +1 -1
- package/report/preview/artifact-diff-builder.js +2 -19
- package/report/preview/artifact-diff-builder.js.map +1 -1
- package/report/preview/artifact-tree-builder.js +1 -19
- package/report/preview/artifact-tree-builder.js.map +1 -1
- package/report/preview/bundle-artifact-index.js +1 -15
- package/report/preview/bundle-artifact-index.js.map +1 -1
- package/report/preview/preview-document-state.js +0 -16
- package/report/preview/preview-document-state.js.map +1 -1
- package/report/preview/preview-document.js +6 -84
- package/report/preview/preview-document.js.map +1 -1
- package/report/preview/preview-result-inspectors.js +2 -33
- package/report/preview/preview-result-inspectors.js.map +1 -1
- package/report/preview/preview-summary.js +0 -25
- package/report/preview/preview-summary.js.map +1 -1
- package/report/release-diff/release-diff-document.js +2 -25
- package/report/release-diff/release-diff-document.js.map +1 -1
- package/report/release-diff/release-diff-summary.js +1 -39
- package/report/release-diff/release-diff-summary.js.map +1 -1
- package/report/terminal-renderer/terminal-artifact-renderer.js +2 -30
- package/report/terminal-renderer/terminal-artifact-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-dependencies-renderer.js +1 -77
- package/report/terminal-renderer/terminal-package-dependencies-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-renderer.js +2 -74
- package/report/terminal-renderer/terminal-package-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-package-tree-renderer.js +3 -16
- package/report/terminal-renderer/terminal-package-tree-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-preview-renderer-shared.js +3 -61
- package/report/terminal-renderer/terminal-preview-renderer-shared.js.map +1 -1
- package/report/terminal-renderer/terminal-preview-renderer.js +2 -54
- package/report/terminal-renderer/terminal-preview-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-release-diff-package-renderer.js +4 -145
- package/report/terminal-renderer/terminal-release-diff-package-renderer.js.map +1 -1
- package/report/terminal-renderer/terminal-release-diff-renderer.js +2 -48
- package/report/terminal-renderer/terminal-release-diff-renderer.js.map +1 -1
- package/sbom.cdx.json +10 -10
|
@@ -1,321 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
const defaultGitHubApiBaseUrl = 'https://api.github.com';
|
|
11
|
-
function toError(error) {
|
|
12
|
-
return error instanceof Error ? error : new Error(String(error));
|
|
13
|
-
}
|
|
14
|
-
function formatHandlerError(error) {
|
|
15
|
-
return formatTerminalError(toError(error));
|
|
16
|
-
}
|
|
17
|
-
function formatHandlerTrace(error) {
|
|
18
|
-
return formatTerminalErrorTrace(toError(error));
|
|
19
|
-
}
|
|
20
|
-
function readGitHubToken(dependencies) {
|
|
21
|
-
return dependencies.readEnvironmentVariable('GH_TOKEN') ??
|
|
22
|
-
dependencies.readEnvironmentVariable('GITHUB_TOKEN');
|
|
23
|
-
}
|
|
24
|
-
function parseGitHubRepositoryName(repositoryName) {
|
|
25
|
-
const ownerSeparatorIndex = repositoryName.indexOf('/');
|
|
26
|
-
const owner = repositoryName.slice(0, ownerSeparatorIndex);
|
|
27
|
-
const repositoryPathSegment = repositoryName.slice(ownerSeparatorIndex + 1);
|
|
28
|
-
if (!repositoryName.includes('/') || owner.length === 0 || repositoryPathSegment.length === 0 ||
|
|
29
|
-
repositoryPathSegment.includes('/')) {
|
|
30
|
-
throw new Error('GITHUB_REPOSITORY must use owner/repo format');
|
|
31
|
-
}
|
|
32
|
-
return { owner, repo: repositoryPathSegment };
|
|
33
|
-
}
|
|
34
|
-
async function readGitHubRepository(dependencies) {
|
|
35
|
-
const repositoryName = dependencies.readEnvironmentVariable('GITHUB_REPOSITORY');
|
|
36
|
-
if (repositoryName !== undefined) {
|
|
37
|
-
const { owner, repo: repositoryPathSegment } = parseGitHubRepositoryName(repositoryName);
|
|
38
|
-
return { name: repositoryName, owner, repo: repositoryPathSegment };
|
|
39
|
-
}
|
|
40
|
-
const packageInfo = await dependencies.readPackageInfo();
|
|
41
|
-
const repository = parseGitHubRepositoryParts(packageInfo);
|
|
42
|
-
return { ...repository, name: formatGitHubRepositoryName(packageInfo) };
|
|
43
|
-
}
|
|
44
|
-
async function createGitHubClient(dependencies) {
|
|
45
|
-
const repository = await readGitHubRepository(dependencies);
|
|
46
|
-
return {
|
|
47
|
-
client: dependencies.createReleasePullRequestGitHubClient({
|
|
48
|
-
apiBaseUrl: dependencies.readEnvironmentVariable('GITHUB_API_BASE_URL') ?? defaultGitHubApiBaseUrl,
|
|
49
|
-
owner: repository.owner,
|
|
50
|
-
repo: repository.repo,
|
|
51
|
-
token: readGitHubToken(dependencies)
|
|
52
|
-
}),
|
|
53
|
-
repository: repository.name
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
function isRecord(value) {
|
|
57
|
-
return typeof value === 'object' && value !== null;
|
|
58
|
-
}
|
|
59
|
-
const isGitHubEvent = isRecord;
|
|
60
|
-
function parseReleasePullRequestConfig(dependencies, rawConfig) {
|
|
61
|
-
const releasePullRequestConfigContainer = parseCommandLineInterfacePacktoryConfig(rawConfig);
|
|
62
|
-
const parsedConfig = parseValidConfig(rawConfig);
|
|
63
|
-
if (releasePullRequestConfigContainer === undefined || parsedConfig === undefined) {
|
|
64
|
-
throw new Error('The loaded config is invalid for release PR management');
|
|
65
|
-
}
|
|
66
|
-
const config = resolveReleasePullRequestConfig(releasePullRequestConfigContainer);
|
|
67
|
-
return {
|
|
68
|
-
config,
|
|
69
|
-
policyConfig: {
|
|
70
|
-
allowedFiles: new Set(collectReleaseOutputFiles({ config: parsedConfig, workingDirectory: dependencies.workingDirectory })),
|
|
71
|
-
automationAuthor: config.automationAuthor,
|
|
72
|
-
branch: config.branch,
|
|
73
|
-
commitSubject: config.commitSubject,
|
|
74
|
-
defaultBranch: config.defaultBranch,
|
|
75
|
-
label: config.label,
|
|
76
|
-
title: config.title
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
async function loadReleasePullRequestConfig(dependencies) {
|
|
81
|
-
return parseReleasePullRequestConfig(dependencies, await dependencies.configLoader.load());
|
|
82
|
-
}
|
|
83
|
-
function hasChangedPackages(planned) {
|
|
84
|
-
return planned.packages.some(function (packagePlan) {
|
|
85
|
-
return packagePlan.changed;
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
function toPreparedReleaseFile(workingDirectory, file) {
|
|
89
|
-
return {
|
|
90
|
-
contentBase64: Buffer.from(file.content).toString('base64'),
|
|
91
|
-
path: releaseCommitFilePath(workingDirectory, file.filePath)
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
async function closeReleaseState(client, config) {
|
|
95
|
-
await client.closeOpenReleasePullRequests({ baseBranch: config.defaultBranch, releaseBranch: config.branch });
|
|
96
|
-
await client.deleteBranch(config.branch);
|
|
97
|
-
}
|
|
98
|
-
async function prepareReleasePullRequest(dependencies, client, config) {
|
|
99
|
-
const baseHead = await client.getBranchHeadSha(config.defaultBranch);
|
|
100
|
-
const planned = await loadPlannedRelease(dependencies);
|
|
101
|
-
if (planned === undefined) {
|
|
102
|
-
throw new Error('Release preparation failed');
|
|
103
|
-
}
|
|
104
|
-
if (!hasChangedPackages(planned)) {
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
|
-
const { writtenFiles } = await prepareReleaseChangelogs(dependencies, planned, true);
|
|
108
|
-
return {
|
|
109
|
-
baseHead,
|
|
110
|
-
files: writtenFiles.map(function (file) {
|
|
111
|
-
return toPreparedReleaseFile(dependencies.workingDirectory, file);
|
|
112
|
-
})
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
async function updateReleasePullRequest(dependencies, client, config, releaseCommit) {
|
|
116
|
-
const releaseHead = await client.createCommitOnBranch({
|
|
117
|
-
additions: releaseCommit.files.map(function (file) {
|
|
118
|
-
return { contents: file.contentBase64, path: file.path };
|
|
119
|
-
}),
|
|
120
|
-
branch: config.branch,
|
|
121
|
-
expectedHeadOid: releaseCommit.baseHead,
|
|
122
|
-
message: config.commitSubject
|
|
123
|
-
});
|
|
124
|
-
const pullRequestNumber = await client.createOrUpdateReleasePullRequest({
|
|
125
|
-
baseBranch: config.defaultBranch,
|
|
126
|
-
body: config.body,
|
|
127
|
-
label: config.label,
|
|
128
|
-
releaseBranch: config.branch,
|
|
129
|
-
title: config.title
|
|
130
|
-
});
|
|
131
|
-
const ciSucceeded = await runConfiguredGitHubActionsCi({
|
|
132
|
-
client,
|
|
133
|
-
config,
|
|
134
|
-
headSha: releaseHead,
|
|
135
|
-
sleep: dependencies.sleep
|
|
136
|
-
});
|
|
137
|
-
dependencies.log(`Release PR #${pullRequestNumber} points at ${releaseHead}`);
|
|
138
|
-
return ciSucceeded ? 0 : 1;
|
|
139
|
-
}
|
|
140
|
-
async function finishReleasePullRequestMaintenance(dependencies, client, config, releaseCommit) {
|
|
141
|
-
if (releaseCommit === undefined) {
|
|
142
|
-
await closeReleaseState(client, config);
|
|
143
|
-
dependencies.log('No release content remains');
|
|
144
|
-
return 0;
|
|
145
|
-
}
|
|
146
|
-
return updateReleasePullRequest(dependencies, client, config, releaseCommit);
|
|
147
|
-
}
|
|
148
|
-
async function runMaintain(dependencies) {
|
|
149
|
-
if (!dependencies.flags.noDryRun) {
|
|
150
|
-
dependencies.log('Release PR writes require --no-dry-run');
|
|
151
|
-
return 1;
|
|
152
|
-
}
|
|
153
|
-
const loadedConfig = await loadReleasePullRequestConfig(dependencies);
|
|
154
|
-
if (dependencies.readEnvironmentVariable('GITHUB_EVENT_NAME') === 'workflow_dispatch' &&
|
|
155
|
-
dependencies.readEnvironmentVariable('GITHUB_REF_NAME') === loadedConfig.config.branch) {
|
|
156
|
-
dependencies.log(`Skipping release PR maintenance during dispatched validation for ${loadedConfig.config.branch}`);
|
|
157
|
-
return 0;
|
|
158
|
-
}
|
|
159
|
-
const { client } = await createGitHubClient(dependencies);
|
|
160
|
-
const releaseCommit = await prepareReleasePullRequest(dependencies, client, loadedConfig.config);
|
|
161
|
-
return finishReleasePullRequestMaintenance(dependencies, client, loadedConfig.config, releaseCommit);
|
|
162
|
-
}
|
|
163
|
-
function readRequiredEnvironmentVariable(dependencies, name) {
|
|
164
|
-
const value = dependencies.readEnvironmentVariable(name);
|
|
165
|
-
if (value === undefined || value.length === 0) {
|
|
166
|
-
throw new Error(`${name} must be set`);
|
|
167
|
-
}
|
|
168
|
-
return value;
|
|
169
|
-
}
|
|
170
|
-
function parseJsonString(content) {
|
|
171
|
-
return JSON.parse(content);
|
|
172
|
-
}
|
|
173
|
-
async function readGitHubEvent(dependencies) {
|
|
174
|
-
const eventPath = readRequiredEnvironmentVariable(dependencies, 'GITHUB_EVENT_PATH');
|
|
175
|
-
const parsedEvent = parseJsonString(await dependencies.fileManager.readFile(eventPath));
|
|
176
|
-
if (!isGitHubEvent(parsedEvent)) {
|
|
177
|
-
throw new Error('GitHub event payload must be an object');
|
|
178
|
-
}
|
|
179
|
-
return parsedEvent;
|
|
180
|
-
}
|
|
181
|
-
async function toPolicyInput(client, expectedBaseSha, pullRequestNumber) {
|
|
182
|
-
const pullRequest = await client.getPullRequestHead(pullRequestNumber);
|
|
183
|
-
return {
|
|
184
|
-
author: pullRequest.author,
|
|
185
|
-
changedFiles: pullRequest.changedFiles,
|
|
186
|
-
expectedBaseSha,
|
|
187
|
-
headRef: pullRequest.headRef,
|
|
188
|
-
labels: pullRequest.labels,
|
|
189
|
-
parentShas: pullRequest.parentShas,
|
|
190
|
-
subject: pullRequest.subject,
|
|
191
|
-
title: pullRequest.title
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
async function runPullRequestValidation(client, config, event) {
|
|
195
|
-
const pullRequestNumber = event.pull_request?.number;
|
|
196
|
-
if (pullRequestNumber === undefined) {
|
|
197
|
-
throw new Error('GitHub pull_request event payload is missing pull_request.number');
|
|
198
|
-
}
|
|
199
|
-
const expectedBaseSha = await client.getBranchHeadSha(config.config.defaultBranch);
|
|
200
|
-
const policyInput = await toPolicyInput(client, expectedBaseSha, pullRequestNumber);
|
|
201
|
-
if (policyInput.labels.includes(config.config.label)) {
|
|
202
|
-
validateReleasePullRequestPolicy(policyInput, config.policyConfig);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
async function runMergeGroupValidation(client, config, event) {
|
|
206
|
-
const headSha = event.merge_group?.head_sha;
|
|
207
|
-
const expectedBaseSha = event.merge_group?.base_sha;
|
|
208
|
-
if (headSha === undefined || expectedBaseSha === undefined) {
|
|
209
|
-
throw new Error('GitHub merge_group event payload is missing merge group SHAs');
|
|
210
|
-
}
|
|
211
|
-
const pullRequests = await client.listCommitPullRequests(headSha);
|
|
212
|
-
const policyInputs = await Promise.all(pullRequests.map(async function (pullRequest) {
|
|
213
|
-
return toPolicyInput(client, expectedBaseSha, pullRequest.number);
|
|
214
|
-
}));
|
|
215
|
-
validateReleaseMergeGroupPolicy({ pullRequests: policyInputs }, config.policyConfig);
|
|
216
|
-
}
|
|
217
|
-
async function validateGitHubEvent(client, config, event, eventName) {
|
|
218
|
-
if (eventName === 'pull_request') {
|
|
219
|
-
await runPullRequestValidation(client, config, event);
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
if (eventName === 'merge_group') {
|
|
223
|
-
await runMergeGroupValidation(client, config, event);
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
throw new Error('release-pr validate only supports pull_request and merge_group events');
|
|
227
|
-
}
|
|
228
|
-
async function runValidate(dependencies) {
|
|
229
|
-
const loadedConfig = await loadReleasePullRequestConfig(dependencies);
|
|
230
|
-
const { client } = await createGitHubClient(dependencies);
|
|
231
|
-
const eventName = readRequiredEnvironmentVariable(dependencies, 'GITHUB_EVENT_NAME');
|
|
232
|
-
const event = await readGitHubEvent(dependencies);
|
|
233
|
-
await validateGitHubEvent(client, loadedConfig, event, eventName);
|
|
234
|
-
dependencies.log('Release PR policy passed.');
|
|
235
|
-
return 0;
|
|
236
|
-
}
|
|
237
|
-
function formatAuthorizationOutput(authorization) {
|
|
238
|
-
if (!authorization.shouldPublish) {
|
|
239
|
-
return ['should_publish=false'];
|
|
240
|
-
}
|
|
241
|
-
return [
|
|
242
|
-
'should_publish=true',
|
|
243
|
-
`publish_commit_sha=${authorization.publishCommitSha}`,
|
|
244
|
-
`release_commit_sha=${authorization.releaseCommitSha}`,
|
|
245
|
-
`release_pull_request_number=${authorization.releasePullRequestNumber}`
|
|
246
|
-
];
|
|
247
|
-
}
|
|
248
|
-
async function readExistingOutput(dependencies, githubOutputPath) {
|
|
249
|
-
try {
|
|
250
|
-
return await dependencies.fileManager.readFile(githubOutputPath);
|
|
251
|
-
}
|
|
252
|
-
catch {
|
|
253
|
-
return '';
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
async function writeAuthorizationOutput(dependencies, authorization) {
|
|
257
|
-
const output = `${formatAuthorizationOutput(authorization).join('\n')}\n`;
|
|
258
|
-
const githubOutputPath = dependencies.readEnvironmentVariable('GITHUB_OUTPUT');
|
|
259
|
-
if (githubOutputPath === undefined) {
|
|
260
|
-
dependencies.log(output.trimEnd());
|
|
261
|
-
return;
|
|
262
|
-
}
|
|
263
|
-
await dependencies.fileManager.writeFile(githubOutputPath, `${await readExistingOutput(dependencies, githubOutputPath)}${output}`);
|
|
264
|
-
}
|
|
265
|
-
async function authorizeManualPublish(config, dependencies, github, releasePullRequestNumber) {
|
|
266
|
-
const refName = readRequiredEnvironmentVariable(dependencies, 'GITHUB_REF_NAME');
|
|
267
|
-
if (refName !== config.config.defaultBranch) {
|
|
268
|
-
throw new Error(`Manual release publish retries must run from ${config.config.defaultBranch}`);
|
|
269
|
-
}
|
|
270
|
-
return authorizeReleasePublishFromPullRequest({
|
|
271
|
-
config: config.policyConfig,
|
|
272
|
-
pullRequest: await github.client.getPullRequest(Number(releasePullRequestNumber)),
|
|
273
|
-
repository: github.repository
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
async function authorizePushPublish(config, dependencies, github) {
|
|
277
|
-
const commitSha = readRequiredEnvironmentVariable(dependencies, 'GITHUB_SHA');
|
|
278
|
-
return authorizeReleasePublishFromCommit({
|
|
279
|
-
commitSha,
|
|
280
|
-
config: config.policyConfig,
|
|
281
|
-
pullRequests: await github.client.listCommitPullRequests(commitSha),
|
|
282
|
-
repository: github.repository
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
async function authorizePublish(config, dependencies, github) {
|
|
286
|
-
const { releasePullRequestNumber } = dependencies.flags;
|
|
287
|
-
if (releasePullRequestNumber !== undefined) {
|
|
288
|
-
return authorizeManualPublish(config, dependencies, github, releasePullRequestNumber);
|
|
289
|
-
}
|
|
290
|
-
return authorizePushPublish(config, dependencies, github);
|
|
291
|
-
}
|
|
292
|
-
async function runAuthorizePublish(dependencies) {
|
|
293
|
-
const config = await loadReleasePullRequestConfig(dependencies);
|
|
294
|
-
const github = await createGitHubClient(dependencies);
|
|
295
|
-
await writeAuthorizationOutput(dependencies, await authorizePublish(config, dependencies, github));
|
|
296
|
-
return 0;
|
|
297
|
-
}
|
|
298
|
-
async function runReleasePullRequestCommand(dependencies) {
|
|
299
|
-
if (dependencies.flags.command === 'maintain') {
|
|
300
|
-
return runMaintain({ ...dependencies, flags: dependencies.flags });
|
|
301
|
-
}
|
|
302
|
-
if (dependencies.flags.command === 'validate') {
|
|
303
|
-
return runValidate(dependencies);
|
|
304
|
-
}
|
|
305
|
-
return runAuthorizePublish(dependencies);
|
|
306
|
-
}
|
|
307
|
-
function stopSpinnersAndReturn(dependencies, exitCode) {
|
|
308
|
-
dependencies.spinnerRenderer.stopAll();
|
|
309
|
-
return exitCode;
|
|
310
|
-
}
|
|
311
|
-
export async function runReleasePullRequestHandler(dependencies) {
|
|
312
|
-
try {
|
|
313
|
-
return stopSpinnersAndReturn(dependencies, await runReleasePullRequestCommand(dependencies));
|
|
314
|
-
}
|
|
315
|
-
catch (error) {
|
|
316
|
-
const formatError = dependencies.trace ? formatHandlerTrace : formatHandlerError;
|
|
317
|
-
dependencies.log(formatError(error));
|
|
318
|
-
return stopSpinnersAndReturn(dependencies, 1);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
1
|
+
import "./changelog-destinations.js";
|
|
2
|
+
import "./github-repository.js";
|
|
3
|
+
import "./release-publish-authorization.js";
|
|
4
|
+
import "./release-output-files.js";
|
|
5
|
+
import "./release-pull-request-ci.js";
|
|
6
|
+
import "./release-pull-request-config.js";
|
|
7
|
+
import "./release-preparation.js";
|
|
8
|
+
import "./release-pull-request-policy.js";
|
|
9
|
+
import "./terminal-error-chain.js";
|
|
321
10
|
//# sourceMappingURL=release-pull-request-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-pull-request-handler.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EACH,iCAAiC,EACjC,sCAAsC,EAEzC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EACH,uCAAuC,EACvC,+BAA+B,EAElC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACH,kBAAkB,EAElB,wBAAwB,EAE3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACH,+BAA+B,EAC/B,gCAAgC,EAGnC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AA0F1F,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEzD,SAAS,OAAO,CAAC,KAAc;IAC3B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACtC,OAAO,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACtC,OAAO,wBAAwB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,eAAe,CACpB,YAAoF;IAEpF,OAAO,YAAY,CAAC,uBAAuB,CAAC,UAAU,CAAC;QACnD,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,yBAAyB,CAAC,cAAsB;IACrD,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC3D,MAAM,qBAAqB,GAAG,cAAc,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;IAC5E,IACI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC;QACzF,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EACrC,CAAC;QACC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,oBAAoB,CAC/B,YAAwG;IAExG,MAAM,cAAc,GAAG,YAAY,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IACjF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;QACzF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;IACzD,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC3D,OAAO,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,0BAA0B,CAAC,WAAW,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,YAAmD;IACjF,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAC5D,OAAO;QACH,MAAM,EAAE,YAAY,CAAC,oCAAoC,CAAC;YACtD,UAAU,EAAE,YAAY,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,IAAI,uBAAuB;YAClG,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC;SACvC,CAAC;QACF,UAAU,EAAE,UAAU,CAAC,IAAI;KAC9B,CAAC;AACN,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,MAAM,aAAa,GAA6C,QAAQ,CAAC;AAEzE,SAAS,6BAA6B,CAClC,YAA6E,EAC7E,SAAkB;IAElB,MAAM,iCAAiC,GAAG,uCAAuC,CAAC,SAAS,CAAC,CAAC;IAC7F,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,iCAAiC,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,+BAA+B,CAAC,iCAAiC,CAAC,CAAC;IAClF,OAAO;QACH,MAAM;QACN,YAAY,EAAE;YACV,YAAY,EAAE,IAAI,GAAG,CACjB,yBAAyB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,EAAE,CAAC,CACvG;YACD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;SACtB;KACJ,CAAC;AACN,CAAC;AAED,KAAK,UAAU,4BAA4B,CACvC,YAA8F;IAE9F,OAAO,6BAA6B,CAAC,YAAY,EAAE,MAAM,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAuB;IAC/C,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,WAAW;QAC9C,OAAO,WAAW,CAAC,OAAO,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAC1B,gBAAwB,EACxB,IAAiC;IAEjC,OAAO;QACH,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3D,IAAI,EAAE,qBAAqB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC;KAC/D,CAAC;AACN,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC5B,MAAsC,EACtC,MAAgC;IAEhC,MAAM,MAAM,CAAC,4BAA4B,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9G,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,yBAAyB,CACpC,YAAmD,EACnD,MAAsC,EACtC,MAAgC;IAEhC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,wBAAwB,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrF,OAAO;QACH,QAAQ;QACR,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,IAAI;YAClC,OAAO,qBAAqB,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC;KACL,CAAC;AACN,CAAC;AAED,KAAK,UAAU,wBAAwB,CACnC,YAAmD,EACnD,MAAsC,EACtC,MAAgC,EAChC,aAAoC;IAEpC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC;QAClD,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI;YAC7C,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7D,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE,aAAa,CAAC,QAAQ;QACvC,OAAO,EAAE,MAAM,CAAC,aAAa;KAChC,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC;QACpE,UAAU,EAAE,MAAM,CAAC,aAAa;QAChC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,aAAa,EAAE,MAAM,CAAC,MAAM;QAC5B,KAAK,EAAE,MAAM,CAAC,KAAK;KACtB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,MAAM,4BAA4B,CAAC;QACnD,MAAM;QACN,MAAM;QACN,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,YAAY,CAAC,KAAK;KAC5B,CAAC,CAAC;IACH,YAAY,CAAC,GAAG,CAAC,eAAe,iBAAiB,cAAc,WAAW,EAAE,CAAC,CAAC;IAC9E,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,mCAAmC,CAC9C,YAAmD,EACnD,MAAsC,EACtC,MAAgC,EAChC,aAAgD;IAEhD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACjF,CAAC;AAMD,KAAK,UAAU,WAAW,CAAC,YAA2D;IAClF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,YAAY,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC;IACb,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,4BAA4B,CAAC,YAAY,CAAC,CAAC;IACtE,IACI,YAAY,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,KAAK,mBAAmB;QACjF,YAAY,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,MAAM,EACxF,CAAC;QACC,YAAY,CAAC,GAAG,CACZ,oEAAoE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CACnG,CAAC;QACF,OAAO,CAAC,CAAC;IACb,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACjG,OAAO,mCAAmC,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACzG,CAAC;AAED,SAAS,+BAA+B,CAAC,YAAmD,EAAE,IAAY;IACtG,MAAM,KAAK,GAAG,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,YAAmD;IAC9E,MAAM,SAAS,GAAG,+BAA+B,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACxF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,aAAa,CACxB,MAAsC,EACtC,eAAuB,EACvB,iBAAyB;IAEzB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACvE,OAAO;QACH,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,eAAe;QACf,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,KAAK,EAAE,WAAW,CAAC,KAAK;KAC3B,CAAC;AACN,CAAC;AAED,KAAK,UAAU,wBAAwB,CACnC,MAAsC,EACtC,MAAsC,EACtC,KAAkB;IAElB,MAAM,iBAAiB,GAAG,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;IACrD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACnF,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACpF,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,gCAAgC,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC;AACL,CAAC;AAED,KAAK,UAAU,uBAAuB,CAClC,MAAsC,EACtC,MAAsC,EACtC,KAAkB;IAElB,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC5C,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;IACpD,IAAI,OAAO,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,YAAY,CAAC,GAAG,CAAC,KAAK,WAAW,WAAW;QACxC,OAAO,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC,CAAC,CACL,CAAC;IACF,+BAA+B,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AACzF,CAAC;AAED,KAAK,UAAU,mBAAmB,CAC9B,MAAsC,EACtC,MAAsC,EACtC,KAAkB,EAClB,SAAiB;IAEjB,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;QAC/B,MAAM,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO;IACX,CAAC;IACD,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAC9B,MAAM,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO;IACX,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AAC7F,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,YAAmD;IAC1E,MAAM,YAAY,GAAG,MAAM,4BAA4B,CAAC,YAAY,CAAC,CAAC;IACtE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,+BAA+B,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAClE,YAAY,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,yBAAyB,CAAC,aAA0C;IACzE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAC/B,OAAO,CAAE,sBAAsB,CAAE,CAAC;IACtC,CAAC;IACD,OAAO;QACH,qBAAqB;QACrB,sBAAsB,aAAa,CAAC,gBAAgB,EAAE;QACtD,sBAAsB,aAAa,CAAC,gBAAgB,EAAE;QACtD,+BAA+B,aAAa,CAAC,wBAAwB,EAAE;KAC1E,CAAC;AACN,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC7B,YAAmD,EACnD,gBAAwB;IAExB,IAAI,CAAC;QACD,OAAO,MAAM,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,KAAK,UAAU,wBAAwB,CACnC,YAAmD,EACnD,aAA0C;IAE1C,MAAM,MAAM,GAAG,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1E,MAAM,gBAAgB,GAAG,YAAY,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAC/E,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACjC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACnC,OAAO;IACX,CAAC;IACD,MAAM,YAAY,CAAC,WAAW,CAAC,SAAS,CACpC,gBAAgB,EAChB,GAAG,MAAM,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,MAAM,EAAE,CACzE,CAAC;AACN,CAAC;AAED,KAAK,UAAU,sBAAsB,CACjC,MAAsC,EACtC,YAAmD,EACnD,MAAqB,EACrB,wBAAgC;IAEhC,MAAM,OAAO,GAAG,+BAA+B,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IACjF,IAAI,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,sCAAsC,CAAC;QAC1C,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACjF,UAAU,EAAE,MAAM,CAAC,UAAU;KAChC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,oBAAoB,CAC/B,MAAsC,EACtC,YAAmD,EACnD,MAAqB;IAErB,MAAM,SAAS,GAAG,+BAA+B,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC9E,OAAO,iCAAiC,CAAC;QACrC,SAAS;QACT,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,YAAY,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC;QACnE,UAAU,EAAE,MAAM,CAAC,UAAU;KAChC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC3B,MAAsC,EACtC,YAAmD,EACnD,MAAqB;IAErB,MAAM,EAAE,wBAAwB,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC;IACxD,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,YAAmD;IAClF,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC,YAAY,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,wBAAwB,CAAC,YAAY,EAAE,MAAM,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACnG,OAAO,CAAC,CAAC;AACb,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,YAAmD;IAC3F,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,WAAW,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,qBAAqB,CAAC,YAAmD,EAAE,QAAgB;IAChG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACvC,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAC9C,YAAmD;IAEnD,IAAI,CAAC;QACD,OAAO,qBAAqB,CAAC,YAAY,EAAE,MAAM,4BAA4B,CAAC,YAAY,CAAC,CAAC,CAAC;IACjG,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACjF,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,OAAO,qBAAqB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"release-pull-request-handler.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-handler.ts"],"names":[],"mappings":"AAAA,OAAiC,6BAA6B,CAAC;AAC/D,OAAuE,wBAAwB,CAAC;AAChG,OAIO,oCAAoC,CAAC;AAC5C,OAAiE,2BAA2B,CAAC;AAC7F,OAA6C,8BAA8B,CAAC;AAC5E,OAIO,kCAAkC,CAAC;AAC1C,OAKO,0BAA0B,CAAC;AAElC,OAKO,kCAAkC,CAAC;AAC1C,OAA8D,2BAA2B,CAAC;OA6QtF,CAGU,OAYc"}
|
|
@@ -1,47 +1 @@
|
|
|
1
|
-
function requirePolicy(condition, message) {
|
|
2
|
-
if (!condition) {
|
|
3
|
-
throw new Error(message);
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
function validateReleaseLabelSet(labels, config) {
|
|
7
|
-
requirePolicy(labels.length === 1 && labels[0] === config.label, `Release PRs must only have the ${config.label} label`);
|
|
8
|
-
}
|
|
9
|
-
function validateReleaseChangedFiles(changedFiles, config) {
|
|
10
|
-
requirePolicy(changedFiles.length > 0, 'Release PRs must change release output files');
|
|
11
|
-
for (const changedFile of changedFiles) {
|
|
12
|
-
requirePolicy(config.allowedFiles.has(changedFile), `Unexpected release PR file change: ${changedFile}`);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
function validateReleaseIdentity(input, config) {
|
|
16
|
-
validateReleaseLabelSet(input.labels, config);
|
|
17
|
-
requirePolicy(input.author === config.automationAuthor, `Release PRs must be authored by ${config.automationAuthor}`);
|
|
18
|
-
requirePolicy(input.headRef === config.branch, `Release PRs must use ${config.branch}`);
|
|
19
|
-
requirePolicy(input.title === config.title, `Release PR title must be ${config.title}`);
|
|
20
|
-
requirePolicy(input.subject === config.commitSubject, `Release PR commit subject must be ${config.commitSubject}`);
|
|
21
|
-
}
|
|
22
|
-
export function validateReleasePullRequestPolicy(input, config) {
|
|
23
|
-
validateReleaseIdentity(input, config);
|
|
24
|
-
requirePolicy(input.parentShas.length === 1, 'Release PR head must have exactly one parent');
|
|
25
|
-
requirePolicy(input.parentShas[0] === input.expectedBaseSha, 'Release PR head must be based on expected main');
|
|
26
|
-
validateReleaseChangedFiles(input.changedFiles, config);
|
|
27
|
-
}
|
|
28
|
-
export function validateReleasePullRequestPublishPolicy(input, config, expectedMergeCommitSha) {
|
|
29
|
-
validateReleaseIdentity(input, config);
|
|
30
|
-
requirePolicy(input.baseRef === config.defaultBranch, `Release PR base must be ${config.defaultBranch}`);
|
|
31
|
-
requirePolicy(input.headRepository === input.repository, 'Release PRs must come from the release repository');
|
|
32
|
-
requirePolicy(input.merged, 'Release PR must be merged');
|
|
33
|
-
requirePolicy(input.mergeCommitSha === expectedMergeCommitSha, `Release PR merge commit must be ${expectedMergeCommitSha}`);
|
|
34
|
-
validateReleaseChangedFiles(input.changedFiles, config);
|
|
35
|
-
}
|
|
36
|
-
export function validateReleaseMergeGroupPolicy(input, config) {
|
|
37
|
-
const releasePullRequests = input.pullRequests.filter(function (pullRequest) {
|
|
38
|
-
return pullRequest.labels.includes(config.label);
|
|
39
|
-
});
|
|
40
|
-
if (releasePullRequests.length > 0 && input.pullRequests.length !== 1) {
|
|
41
|
-
throw new Error('Release PRs must not be grouped with other pull requests');
|
|
42
|
-
}
|
|
43
|
-
for (const pullRequest of releasePullRequests) {
|
|
44
|
-
validateReleasePullRequestPolicy(pullRequest, config);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
1
|
//# sourceMappingURL=release-pull-request-policy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-pull-request-policy.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"release-pull-request-policy.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-policy.ts"],"names":[],"mappings":""}
|
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
const githubActionsWorkflowDispatchSchema = z.readonly(z.strictObject({
|
|
4
|
-
trigger: z.literal('workflow-dispatch'),
|
|
5
|
-
workflowFile: nonEmptyStringSchema,
|
|
6
|
-
requiredStatusContexts: z.readonly(z.tuple([nonEmptyStringSchema], nonEmptyStringSchema)),
|
|
7
|
-
deleteActionRequiredPullRequestRuns: z.optional(z.boolean())
|
|
8
|
-
}));
|
|
9
|
-
export const releasePullRequestSettingsSchema = z.readonly(z.strictObject({
|
|
10
|
-
automationAuthor: z.optional(nonEmptyStringSchema),
|
|
11
|
-
body: z.optional(nonEmptyStringSchema),
|
|
12
|
-
branch: z.optional(nonEmptyStringSchema),
|
|
13
|
-
commitSubject: z.optional(nonEmptyStringSchema),
|
|
14
|
-
defaultBranch: z.optional(nonEmptyStringSchema),
|
|
15
|
-
githubActionsCi: z.optional(githubActionsWorkflowDispatchSchema),
|
|
16
|
-
label: z.optional(nonEmptyStringSchema),
|
|
17
|
-
title: z.optional(nonEmptyStringSchema)
|
|
18
|
-
}));
|
|
1
|
+
import 'zod/mini';
|
|
2
|
+
import "packtory/config/base-validations.js";
|
|
19
3
|
//# sourceMappingURL=release-pull-request-settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-pull-request-settings.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-settings.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"release-pull-request-settings.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-settings.ts"],"names":[],"mappings":"AAAA,OAAkB,UAAU,CAAC;AAC7B,OAAqC,qCAAkC,CAAC"}
|
|
@@ -1,26 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
const jsonIndentSpaces = 2;
|
|
4
|
-
export function createEmptyReport() {
|
|
5
|
-
const generatedAt = new Date();
|
|
6
|
-
return {
|
|
7
|
-
schemaVersion: 1,
|
|
8
|
-
generatedAt: generatedAt.toISOString(),
|
|
9
|
-
packages: {},
|
|
10
|
-
aggregate: { crossBundleLinks: [] }
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
export async function writeReports(input) {
|
|
14
|
-
const { dryRun, fileManager, flags, report, result } = input;
|
|
15
|
-
if (report === undefined) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
if (flags.reportJson) {
|
|
19
|
-
await fileManager.writeFile('packtory-report.json', `${JSON.stringify(report, undefined, jsonIndentSpaces)}\n`);
|
|
20
|
-
}
|
|
21
|
-
if (flags.reportHtml) {
|
|
22
|
-
const document = await buildPreviewDocument({ report, result, dryRun, fileManager });
|
|
23
|
-
await fileManager.writeFile('packtory-report.html', renderHtmlReport(document));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
1
|
+
import "../../report/preview/preview-document.js";
|
|
2
|
+
import "../../report/html-renderer/html-renderer.js";
|
|
26
3
|
//# sourceMappingURL=report-persistence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-persistence.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/report-persistence.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"report-persistence.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/report-persistence.ts"],"names":[],"mappings":"AAEA,OAAqC,0CAA0C,CAAC;AAChF,OAAiC,6CAA6C,CAAC"}
|
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
export function getErrorSymbol() {
|
|
3
|
-
return bold(red('✖'));
|
|
4
|
-
}
|
|
5
|
-
export function getSuccessSymbol() {
|
|
6
|
-
return bold(green('✔'));
|
|
7
|
-
}
|
|
8
|
-
export function getWarningSymbol() {
|
|
9
|
-
return yellow('⚠');
|
|
10
|
-
}
|
|
1
|
+
import 'yoctocolors';
|
|
11
2
|
//# sourceMappingURL=runner-symbols.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-symbols.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/runner-symbols.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"runner-symbols.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/runner-symbols.ts"],"names":[],"mappings":"AAAA,OAAyC,aAAa,CAAC"}
|