@packtory/cli 0.0.43 → 0.0.45

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 (28) hide show
  1. package/command-line-interface/runner/changelog-destinations.js +42 -0
  2. package/command-line-interface/runner/changelog-destinations.js.map +1 -1
  3. package/command-line-interface/runner/release-git-client.js +15 -0
  4. package/command-line-interface/runner/release-git-client.js.map +1 -1
  5. package/command-line-interface/runner/release-output-files.js +14 -0
  6. package/command-line-interface/runner/release-output-files.js.map +1 -0
  7. package/command-line-interface/runner/release-pr-github-client.js +257 -0
  8. package/command-line-interface/runner/release-pr-github-client.js.map +1 -0
  9. package/command-line-interface/runner/release-publish-authorization.js +67 -0
  10. package/command-line-interface/runner/release-publish-authorization.js.map +1 -0
  11. package/command-line-interface/runner/release-pull-request-ci.js +105 -0
  12. package/command-line-interface/runner/release-pull-request-ci.js.map +1 -0
  13. package/command-line-interface/runner/release-pull-request-config.js +45 -0
  14. package/command-line-interface/runner/release-pull-request-config.js.map +1 -0
  15. package/command-line-interface/runner/release-pull-request-handler.js +313 -0
  16. package/command-line-interface/runner/release-pull-request-handler.js.map +1 -0
  17. package/command-line-interface/runner/release-pull-request-policy.js +47 -0
  18. package/command-line-interface/runner/release-pull-request-policy.js.map +1 -0
  19. package/command-line-interface/runner/release-pull-request-settings.js +19 -0
  20. package/command-line-interface/runner/release-pull-request-settings.js.map +1 -0
  21. package/command-line-interface/runner/runner.js +102 -3
  22. package/command-line-interface/runner/runner.js.map +1 -1
  23. package/package.json +6 -3
  24. package/packages/command-line-interface/command-line-interface.entry-point.d.ts.map +1 -1
  25. package/packages/command-line-interface/command-line-interface.entry-point.js +8 -0
  26. package/packages/command-line-interface/command-line-interface.entry-point.js.map +1 -1
  27. package/readme.md +16 -0
  28. package/sbom.cdx.json +62 -11
@@ -63,6 +63,14 @@ function collectRepositoryDestinations(deps, outputs, changelog) {
63
63
  return [{ filePath: resolveRepositoryPath(deps, output.path), generatedMarkdown: changelog.groupedMarkdown }];
64
64
  });
65
65
  }
66
+ function collectRepositoryOutputFilePaths(deps, outputs) {
67
+ return outputs.flatMap((output) => {
68
+ if (output.kind !== 'repository-file') {
69
+ return [];
70
+ }
71
+ return [{ filePath: resolveRepositoryPath(deps, output.path), packageName: undefined }];
72
+ });
73
+ }
66
74
  function collectPackageDestinationsWithSharedPath(deps, config, output, changelog) {
67
75
  const packageConfigsByName = mapPackageConfigByName(config);
68
76
  return Array.from(changelog.packageMarkdownByName, ([packageName, generatedMarkdown]) => {
@@ -73,11 +81,24 @@ function collectPackageDestinationsWithSharedPath(deps, config, output, changelo
73
81
  return { filePath: resolvePackageFilePath(deps, config, packageConfig, output.path), generatedMarkdown };
74
82
  });
75
83
  }
84
+ function collectPackageOutputFilePathsWithSharedPath(deps, config, output) {
85
+ return config.packages.map((packageConfig) => {
86
+ return {
87
+ filePath: resolvePackageFilePath(deps, config, packageConfig, output.path),
88
+ packageName: packageConfig.name
89
+ };
90
+ });
91
+ }
76
92
  function collectPackageDestinationsWithExplicitPaths(deps, output, changelog) {
77
93
  return Array.from(changelog.packageMarkdownByName, ([packageName, generatedMarkdown]) => {
78
94
  return { filePath: resolveExplicitPackageFilePath(deps, output, packageName), generatedMarkdown };
79
95
  });
80
96
  }
97
+ function collectPackageOutputFilePathsWithExplicitPaths(deps, output) {
98
+ return Object.entries(output.paths).map(([packageName, outputPath]) => {
99
+ return { filePath: resolveRepositoryPath(deps, outputPath), packageName };
100
+ });
101
+ }
81
102
  function collectPackageDestinations(deps, config, outputs, changelog) {
82
103
  return outputs.flatMap((output) => {
83
104
  if (output.kind !== 'package-file') {
@@ -89,6 +110,27 @@ function collectPackageDestinations(deps, config, outputs, changelog) {
89
110
  return collectPackageDestinationsWithExplicitPaths(deps, output, changelog);
90
111
  });
91
112
  }
113
+ function collectPackageOutputFilePaths(deps, config, outputs) {
114
+ return outputs.flatMap((output) => {
115
+ if (output.kind !== 'package-file') {
116
+ return [];
117
+ }
118
+ if (hasSharedPackagePath(output)) {
119
+ return collectPackageOutputFilePathsWithSharedPath(deps, config, output);
120
+ }
121
+ return collectPackageOutputFilePathsWithExplicitPaths(deps, output);
122
+ });
123
+ }
124
+ export function collectChangelogOutputFilePaths(deps, config) {
125
+ const outputs = config.changelog?.outputs;
126
+ if (outputs === undefined) {
127
+ return [];
128
+ }
129
+ return [
130
+ ...collectRepositoryOutputFilePaths(deps, outputs),
131
+ ...collectPackageOutputFilePaths(deps, config, outputs)
132
+ ];
133
+ }
92
134
  function isMissingFileError(error) {
93
135
  return Reflect.get(new Object(error), 'code') === 'ENOENT';
94
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"changelog-destinations.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/changelog-destinations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changelog-destinations.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/changelog-destinations.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,9 @@ export function createReleaseGitClient(deps) {
27
27
  }
28
28
  return head;
29
29
  },
30
+ async deleteRemoteBranch(branch) {
31
+ await readGitOutputResult(deps, ['push', 'origin', '--delete', branch]);
32
+ },
30
33
  async ensureClean() {
31
34
  const status = await runGit(deps, ['status', '--porcelain=v1']);
32
35
  if (status.length > 0) {
@@ -45,6 +48,18 @@ export function createReleaseGitClient(deps) {
45
48
  }
46
49
  throw new Error(`Tag "${tagName}" already exists at ${existingTag.value}, expected ${targetHead}`);
47
50
  },
51
+ async pushHeadToBranch(branch) {
52
+ await readGitOutputResult(deps, ['fetch', 'origin', `refs/heads/${branch}:refs/remotes/origin/${branch}`]);
53
+ const remoteBranch = await readGitOutputResult(deps, [
54
+ 'rev-parse',
55
+ '--verify',
56
+ `refs/remotes/origin/${branch}`
57
+ ]);
58
+ const lease = remoteBranch.kind === 'found'
59
+ ? `--force-with-lease=refs/heads/${branch}:${remoteBranch.value}`
60
+ : `--force-with-lease=refs/heads/${branch}:`;
61
+ await runGit(deps, ['push', lease, 'origin', `HEAD:refs/heads/${branch}`]);
62
+ },
48
63
  async pushFollowTags() {
49
64
  await runGit(deps, ['push', '--follow-tags']);
50
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"release-git-client.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-git-client.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAqBjC,KAAK,UAAU,MAAM,CAAC,IAAkC,EAAE,IAAuB;IAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACvF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAC9B,IAAkC,EAClC,IAAuB;IAEvB,IAAI,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAkC;IACrE,OAAO;QACH,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO;YAC3B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACvF,CAAC;YACD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;YAChD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,WAAW;YACb,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,WAAW;YACb,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAClF,CAAC;QACL,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU;YACxC,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,OAAO,KAAK,CAAC,CAAC,CAAC;YAC1G,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;gBACtE,OAAO;YACX,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9C,IAAI,WAAW,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,QAAQ,OAAO,uBAAuB,WAAW,CAAC,KAAK,cAAc,UAAU,EAAE,CAAC,CAAC;QACvG,CAAC;QAED,KAAK,CAAC,cAAc;YAChB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;QAClD,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"release-git-client.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-git-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import path from 'node:path';
2
+ import { collectChangelogOutputFilePaths } from "./changelog-destinations.js";
3
+ function normalizeRepositoryPath(filePath) {
4
+ return filePath.split(path.sep).join('/');
5
+ }
6
+ function toRepositoryRelativePath(workingDirectory, filePath) {
7
+ return normalizeRepositoryPath(path.relative(workingDirectory, filePath));
8
+ }
9
+ export function collectReleaseOutputFiles(input) {
10
+ return collectChangelogOutputFilePaths({ workingDirectory: input.workingDirectory }, input.config).map((output) => {
11
+ return toRepositoryRelativePath(input.workingDirectory, output.filePath);
12
+ });
13
+ }
14
+ //# sourceMappingURL=release-output-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-output-files.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-output-files.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,+BAA+B,EAAwB,MAAM,6BAA6B,CAAC;AAEpG,SAAS,uBAAuB,CAAC,QAAgB;IAC7C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,wBAAwB,CAAC,gBAAwB,EAAE,QAAgB;IACxE,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAGzC;IACG,OAAO,+BAA+B,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC9G,OAAO,wBAAwB,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,257 @@
1
+ import { isDefined } from 'remeda';
2
+ import { Octokit } from '@octokit/core';
3
+ import { paginateRest } from '@octokit/plugin-paginate-rest';
4
+ import { restEndpointMethods } from '@octokit/plugin-rest-endpoint-methods';
5
+ import { createGitHubJsonRequestHeaders } from "./github-api-request.js";
6
+ function labelNames(labels) {
7
+ return labels
8
+ .map((label) => {
9
+ return label.name ?? undefined;
10
+ })
11
+ .filter(isDefined);
12
+ }
13
+ function commitSubject(commit) {
14
+ const firstLineBreak = commit.commit.message.indexOf('\n');
15
+ if (firstLineBreak === -1) {
16
+ return commit.commit.message;
17
+ }
18
+ return commit.commit.message.slice(0, firstLineBreak);
19
+ }
20
+ function runDatabaseId(run) {
21
+ return run.database_id ?? run.databaseId;
22
+ }
23
+ function pullRequestIsMerged(pullRequest) {
24
+ return pullRequest.merged_at !== undefined && pullRequest.merged_at !== null;
25
+ }
26
+ function readReflectedProperty(value, property) {
27
+ return Reflect.get(new Object(value), property);
28
+ }
29
+ function createRequestError(error) {
30
+ const status = String(readReflectedProperty(error, 'status'));
31
+ const requestUrl = String(readReflectedProperty(readReflectedProperty(error, 'request'), 'url'));
32
+ const parsedUrl = new URL(requestUrl);
33
+ return new Error(`GitHub API request failed (${status}) for ${parsedUrl.pathname}${parsedUrl.search}`, {
34
+ cause: error
35
+ });
36
+ }
37
+ async function resolveGitHubResponse(request) {
38
+ try {
39
+ return await request;
40
+ }
41
+ catch (error) {
42
+ throw createRequestError(error);
43
+ }
44
+ }
45
+ export function createReleasePullRequestGitHubClient(context) {
46
+ const GitHubRestClient = Octokit.plugin(restEndpointMethods, paginateRest);
47
+ const requestContext = {
48
+ headers: createGitHubJsonRequestHeaders(context.token, 'packtory-release-pr'),
49
+ owner: context.owner,
50
+ repo: context.repo
51
+ };
52
+ const octokit = new GitHubRestClient({
53
+ request: {
54
+ fetch: context.fetch,
55
+ headers: requestContext.headers
56
+ }
57
+ });
58
+ async function readPullRequestFiles(pullRequestNumber) {
59
+ const files = await resolveGitHubResponse(octokit.paginate(octokit.rest.pulls.listFiles, {
60
+ ...requestContext,
61
+ pull_number: pullRequestNumber,
62
+ per_page: 100
63
+ }));
64
+ return files.map((file) => {
65
+ return file.filename;
66
+ });
67
+ }
68
+ async function readCommit(commitSha) {
69
+ const response = await resolveGitHubResponse(octokit.rest.repos.getCommit({
70
+ ...requestContext,
71
+ ref: commitSha
72
+ }));
73
+ return response.data;
74
+ }
75
+ async function toPullRequestDetails(pullRequest) {
76
+ const commit = await readCommit(pullRequest.head.sha);
77
+ return {
78
+ author: pullRequest.user?.login ?? '',
79
+ baseRef: pullRequest.base.ref,
80
+ changedFiles: await readPullRequestFiles(pullRequest.number),
81
+ headRef: pullRequest.head.ref,
82
+ headRepository: pullRequest.head.repo?.full_name ?? '',
83
+ labels: labelNames(pullRequest.labels),
84
+ mergeCommitSha: pullRequest.merge_commit_sha ?? undefined,
85
+ merged: pullRequestIsMerged(pullRequest),
86
+ number: pullRequest.number,
87
+ subject: commitSubject(commit),
88
+ title: pullRequest.title
89
+ };
90
+ }
91
+ async function createReleasePullRequest(input) {
92
+ const response = await resolveGitHubResponse(octokit.rest.pulls.create({
93
+ ...requestContext,
94
+ base: input.baseBranch,
95
+ body: input.body,
96
+ head: input.releaseBranch,
97
+ title: input.title
98
+ }));
99
+ return response.data.number;
100
+ }
101
+ async function updateReleasePullRequest(input, pullRequestNumber) {
102
+ const response = await resolveGitHubResponse(octokit.rest.pulls.update({
103
+ ...requestContext,
104
+ body: input.body,
105
+ pull_number: pullRequestNumber,
106
+ title: input.title
107
+ }));
108
+ return response.data.number;
109
+ }
110
+ return {
111
+ async closeOpenReleasePullRequests(input) {
112
+ const pullRequests = await resolveGitHubResponse(octokit.rest.pulls.list({
113
+ ...requestContext,
114
+ base: input.baseBranch,
115
+ head: `${context.owner}:${input.releaseBranch}`,
116
+ state: 'open'
117
+ }));
118
+ for (const pullRequest of pullRequests.data) {
119
+ await resolveGitHubResponse(octokit.rest.pulls.update({
120
+ ...requestContext,
121
+ pull_number: pullRequest.number,
122
+ state: 'closed'
123
+ }));
124
+ }
125
+ },
126
+ async createOrUpdateReleasePullRequest(input) {
127
+ const existingPullRequests = await resolveGitHubResponse(octokit.rest.pulls.list({
128
+ ...requestContext,
129
+ base: input.baseBranch,
130
+ head: `${context.owner}:${input.releaseBranch}`,
131
+ state: 'open'
132
+ }));
133
+ const existingPullRequest = existingPullRequests.data[0];
134
+ const pullRequestNumber = existingPullRequest === undefined
135
+ ? await createReleasePullRequest(input)
136
+ : await updateReleasePullRequest(input, existingPullRequest.number);
137
+ await resolveGitHubResponse(octokit.rest.issues.setLabels({
138
+ ...requestContext,
139
+ issue_number: pullRequestNumber,
140
+ labels: [input.label]
141
+ }));
142
+ return pullRequestNumber;
143
+ },
144
+ async createStatus(input) {
145
+ await resolveGitHubResponse(octokit.rest.repos.createCommitStatus({
146
+ ...requestContext,
147
+ context: input.context,
148
+ description: input.description,
149
+ sha: input.commitSha,
150
+ state: input.state,
151
+ target_url: input.targetUrl ?? null
152
+ }));
153
+ },
154
+ async deleteActionRequiredPullRequestRuns(input) {
155
+ const response = await resolveGitHubResponse(octokit.rest.actions.listWorkflowRunsForRepo({
156
+ ...requestContext,
157
+ branch: input.branch,
158
+ event: 'pull_request',
159
+ per_page: 100
160
+ }));
161
+ const blockedRuns = response.data.workflow_runs.filter((run) => {
162
+ return run.head_sha === input.headSha && run.conclusion === 'action_required';
163
+ });
164
+ const blockedRunIds = blockedRuns
165
+ .map((run) => {
166
+ return runDatabaseId(run);
167
+ })
168
+ .filter(isDefined);
169
+ for (const databaseId of blockedRunIds) {
170
+ await resolveGitHubResponse(octokit.rest.actions.deleteWorkflowRun({ ...requestContext, run_id: databaseId }));
171
+ }
172
+ },
173
+ async dispatchWorkflow(input) {
174
+ await resolveGitHubResponse(octokit.rest.actions.createWorkflowDispatch({
175
+ ...requestContext,
176
+ ref: input.ref,
177
+ workflow_id: input.workflowFile
178
+ }));
179
+ },
180
+ async findDispatchedWorkflowRunId(input) {
181
+ const response = await resolveGitHubResponse(octokit.rest.actions.listWorkflowRuns({
182
+ ...requestContext,
183
+ branch: input.branch,
184
+ event: 'workflow_dispatch',
185
+ workflow_id: input.workflowFile,
186
+ per_page: 100
187
+ }));
188
+ const run = response.data.workflow_runs.find((workflowRun) => {
189
+ return workflowRun.head_sha === input.headSha;
190
+ });
191
+ return run === undefined ? undefined : runDatabaseId(run);
192
+ },
193
+ async getBranchHeadSha(branch) {
194
+ const response = await resolveGitHubResponse(octokit.rest.repos.getBranch({
195
+ ...requestContext,
196
+ branch
197
+ }));
198
+ return response.data.commit.sha;
199
+ },
200
+ async getPullRequest(pullRequestNumber) {
201
+ const response = await resolveGitHubResponse(octokit.rest.pulls.get({
202
+ ...requestContext,
203
+ pull_number: pullRequestNumber
204
+ }));
205
+ return toPullRequestDetails(response.data);
206
+ },
207
+ async getPullRequestHead(pullRequestNumber) {
208
+ const response = await resolveGitHubResponse(octokit.rest.pulls.get({
209
+ ...requestContext,
210
+ pull_number: pullRequestNumber
211
+ }));
212
+ const pullRequest = response.data;
213
+ const commit = await readCommit(pullRequest.head.sha);
214
+ return {
215
+ author: pullRequest.user.login,
216
+ changedFiles: await readPullRequestFiles(pullRequest.number),
217
+ headRef: pullRequest.head.ref,
218
+ labels: labelNames(pullRequest.labels),
219
+ parentShas: commit.parents.map((parent) => {
220
+ return parent.sha;
221
+ }),
222
+ subject: commitSubject(commit),
223
+ title: pullRequest.title
224
+ };
225
+ },
226
+ async listCommitPullRequests(commitSha) {
227
+ const pullRequests = await resolveGitHubResponse(octokit.paginate(octokit.rest.repos.listPullRequestsAssociatedWithCommit, {
228
+ ...requestContext,
229
+ commit_sha: commitSha,
230
+ per_page: 100
231
+ }));
232
+ return Promise.all(pullRequests.map(toPullRequestDetails));
233
+ },
234
+ async readWorkflowRunResult(runId) {
235
+ const [runResponse, jobResponse] = await Promise.all([
236
+ resolveGitHubResponse(octokit.rest.actions.getWorkflowRun({ ...requestContext, run_id: runId })),
237
+ resolveGitHubResponse(octokit.rest.actions.listJobsForWorkflowRun({
238
+ ...requestContext,
239
+ run_id: runId,
240
+ per_page: 100
241
+ }))
242
+ ]);
243
+ return {
244
+ conclusion: runResponse.data.conclusion ?? undefined,
245
+ databaseId: runId,
246
+ jobs: jobResponse.data.jobs.map((job) => {
247
+ return {
248
+ conclusion: job.conclusion ?? undefined,
249
+ name: job.name,
250
+ url: job.html_url ?? undefined
251
+ };
252
+ })
253
+ };
254
+ }
255
+ };
256
+ }
257
+ //# sourceMappingURL=release-pr-github-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-pr-github-client.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pr-github-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { validateReleasePullRequestPublishPolicy } from "./release-pull-request-policy.js";
2
+ function selectSingleReleasePullRequest(pullRequests, commitSha) {
3
+ const pullRequest = pullRequests.at(0);
4
+ const secondPullRequest = pullRequests.at(1);
5
+ if (secondPullRequest !== undefined) {
6
+ throw new Error(`Commit ${commitSha} is associated with multiple release PRs`);
7
+ }
8
+ return pullRequest;
9
+ }
10
+ function toPublishInput(pullRequest, repository) {
11
+ return {
12
+ author: pullRequest.author,
13
+ baseRef: pullRequest.baseRef,
14
+ changedFiles: pullRequest.changedFiles,
15
+ headRef: pullRequest.headRef,
16
+ headRepository: pullRequest.headRepository,
17
+ labels: pullRequest.labels,
18
+ mergeCommitSha: pullRequest.mergeCommitSha,
19
+ merged: pullRequest.merged,
20
+ repository,
21
+ subject: pullRequest.subject,
22
+ title: pullRequest.title
23
+ };
24
+ }
25
+ function isAuthorizedPullRequest(input) {
26
+ let authorized = true;
27
+ try {
28
+ validateReleasePullRequestPublishPolicy(toPublishInput(input.pullRequest, input.repository), input.config, input.expectedMergeCommitSha);
29
+ }
30
+ catch {
31
+ authorized = false;
32
+ }
33
+ return authorized;
34
+ }
35
+ export function authorizeReleasePublishFromCommit(input) {
36
+ const releasePullRequests = input.pullRequests.filter((pullRequest) => {
37
+ return isAuthorizedPullRequest({
38
+ config: input.config,
39
+ expectedMergeCommitSha: input.commitSha,
40
+ pullRequest,
41
+ repository: input.repository
42
+ });
43
+ });
44
+ const releasePullRequest = selectSingleReleasePullRequest(releasePullRequests, input.commitSha);
45
+ if (releasePullRequest === undefined) {
46
+ return { shouldPublish: false };
47
+ }
48
+ return {
49
+ publishCommitSha: input.commitSha,
50
+ releaseCommitSha: input.commitSha,
51
+ releasePullRequestNumber: releasePullRequest.number,
52
+ shouldPublish: true
53
+ };
54
+ }
55
+ export function authorizeReleasePublishFromPullRequest(input) {
56
+ if (input.pullRequest.mergeCommitSha === undefined) {
57
+ throw new Error(`Pull request #${input.pullRequest.number} is not a merged release PR`);
58
+ }
59
+ validateReleasePullRequestPublishPolicy(toPublishInput(input.pullRequest, input.repository), input.config, input.pullRequest.mergeCommitSha);
60
+ return {
61
+ publishCommitSha: input.pullRequest.mergeCommitSha,
62
+ releaseCommitSha: input.pullRequest.mergeCommitSha,
63
+ releasePullRequestNumber: input.pullRequest.number,
64
+ shouldPublish: true
65
+ };
66
+ }
67
+ //# sourceMappingURL=release-publish-authorization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-publish-authorization.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-publish-authorization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ const workflowRunLookupAttempts = 30;
2
+ const workflowRunCompletionAttempts = 120;
3
+ const workflowPollIntervalMilliseconds = 10_000;
4
+ function createRetryAttempts(count) {
5
+ return Array.from({ length: count }, (_value, index) => {
6
+ return index;
7
+ });
8
+ }
9
+ function isLastAttempt(attempt, count) {
10
+ return attempt === count - 1;
11
+ }
12
+ async function waitForDispatchedWorkflowRun(input) {
13
+ for (const attempt of createRetryAttempts(workflowRunLookupAttempts)) {
14
+ const runId = await input.client.findDispatchedWorkflowRunId({
15
+ branch: input.config.branch,
16
+ headSha: input.headSha,
17
+ workflowFile: input.ciConfig.workflowFile
18
+ });
19
+ if (runId !== undefined) {
20
+ return runId;
21
+ }
22
+ if (!isLastAttempt(attempt, workflowRunLookupAttempts)) {
23
+ await input.sleep(workflowPollIntervalMilliseconds);
24
+ }
25
+ }
26
+ throw new Error(`Release workflow run was not created for ${input.headSha}`);
27
+ }
28
+ async function waitForWorkflowCompletion(input) {
29
+ for (const attempt of createRetryAttempts(workflowRunCompletionAttempts)) {
30
+ const result = await input.client.readWorkflowRunResult(input.runId);
31
+ if (result.conclusion !== undefined) {
32
+ return result;
33
+ }
34
+ if (!isLastAttempt(attempt, workflowRunCompletionAttempts)) {
35
+ await input.sleep(workflowPollIntervalMilliseconds);
36
+ }
37
+ }
38
+ throw new Error(`Release workflow run ${input.runId} did not complete`);
39
+ }
40
+ function formatWorkflowStatusFailure(context, conclusion) {
41
+ if (conclusion === undefined) {
42
+ return `Missing dispatched release CI job: ${context}.`;
43
+ }
44
+ return `Dispatched release CI job ${conclusion}.`;
45
+ }
46
+ async function mirrorWorkflowStatus(input) {
47
+ const job = input.runResult.jobs.find((candidate) => {
48
+ return candidate.name === input.context;
49
+ });
50
+ if (job?.conclusion === 'success') {
51
+ await input.client.createStatus({
52
+ commitSha: input.headSha,
53
+ context: input.context,
54
+ description: 'Dispatched release CI job success.',
55
+ state: 'success',
56
+ targetUrl: job.url
57
+ });
58
+ return true;
59
+ }
60
+ await input.client.createStatus({
61
+ commitSha: input.headSha,
62
+ context: input.context,
63
+ description: formatWorkflowStatusFailure(input.context, job?.conclusion),
64
+ state: 'failure',
65
+ targetUrl: job?.url
66
+ });
67
+ return false;
68
+ }
69
+ async function mirrorWorkflowStatuses(input) {
70
+ const statuses = await Promise.all(input.ciConfig.requiredStatusContexts.map(async (context) => {
71
+ return mirrorWorkflowStatus({ ...input, context });
72
+ }));
73
+ return statuses.every(Boolean);
74
+ }
75
+ async function createPendingWorkflowStatuses(input) {
76
+ for (const context of input.ciConfig.requiredStatusContexts) {
77
+ await input.client.createStatus({
78
+ commitSha: input.headSha,
79
+ context,
80
+ description: 'Waiting for dispatched release CI.',
81
+ state: 'pending',
82
+ targetUrl: undefined
83
+ });
84
+ }
85
+ }
86
+ export async function runConfiguredGitHubActionsCi(input) {
87
+ const { githubActionsCi } = input.config;
88
+ if (githubActionsCi === undefined) {
89
+ return true;
90
+ }
91
+ await createPendingWorkflowStatuses({ ...input, ciConfig: githubActionsCi });
92
+ await input.client.dispatchWorkflow({ ref: input.config.branch, workflowFile: githubActionsCi.workflowFile });
93
+ const runId = await waitForDispatchedWorkflowRun({ ...input, ciConfig: githubActionsCi });
94
+ const runResult = await waitForWorkflowCompletion({ client: input.client, runId, sleep: input.sleep });
95
+ if (githubActionsCi.deleteActionRequiredPullRequestRuns) {
96
+ await input.client.deleteActionRequiredPullRequestRuns({ branch: input.config.branch, headSha: input.headSha });
97
+ }
98
+ return mirrorWorkflowStatuses({
99
+ ciConfig: githubActionsCi,
100
+ client: input.client,
101
+ headSha: input.headSha,
102
+ runResult
103
+ });
104
+ }
105
+ //# sourceMappingURL=release-pull-request-ci.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-pull-request-ci.js","sourceRoot":"","sources":["../../../../../source/command-line-interface/runner/release-pull-request-ci.ts"],"names":[],"mappings":"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"}