Compare commits

...
6 Commits
Author SHA1 Message Date
github-actions[bot] 2a025e8ab1 v1.3.0 2022-05-10 09:12:12 +00:00
github-actions[bot]andgithub-actions[bot] 3914e56b03 Version Packages (#169)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-05-10 11:11:10 +02:00
Nicola MolinariandMateusz Burzyński 521c27bf86 Automatically adjust GitHub PR message if it exceeds a size limit of 60k characters by omitting some of the changelog information (#157)
* fix: body max length

* docs: improve logs

* docs: changeset

* refactor: changeset message to omit some info if message exceeds size limit

* refactor: minor adjustments based on feedback

* Apply nits from code review

* Fixed tests

Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
2022-05-10 11:06:04 +02:00
Mateusz Burzyński 2ccdaef0d0 Change trigger's event type to pull_request in the CI action (#181) 2022-05-10 10:39:50 +02:00
Royston Shufflebotham 26d7bf0c4b Remove suggestions of using fetch-depth: 0 (#177)
Changesets automatically deepens a shallow clone as necessary,
so we don't need to recommend a complete deep clone in order
for changsets to work.

Fixes: #97
2022-04-29 12:53:40 +02:00
David RegisterandMateusz Burzyński 993a0a090d Added pullRequestNumber to the action's outputs (#167)
* feat: set pullRequesstNumber as action output

* chore: add changeset

* fix: feedback from pr review

* Update .changeset/long-mayflies-yell.md

Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>

Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
2022-04-07 19:10:26 +02:00
10 changed files with 1242 additions and 72 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
name: Node CI name: Node CI
on: [push] on: [pull_request]
jobs: jobs:
build: build:
+10
View File
@@ -1,5 +1,15 @@
# @changesets/action # @changesets/action
## 1.3.0
### Minor Changes
- [#167](https://github.com/changesets/action/pull/167) [`993a0a0`](https://github.com/changesets/action/commit/993a0a090df78cee07481d3886dcd8b29deb9567) Thanks [@dmregister](https://github.com/dmregister)! - Added `pullRequestNumber` to the action's outputs
### Patch Changes
- [#157](https://github.com/changesets/action/pull/157) [`521c27b`](https://github.com/changesets/action/commit/521c27bf86ec53547d6a350d208fbbbc9d576fbc) Thanks [@emmenko](https://github.com/emmenko)! - Automatically adjust GitHub PR message if it exceeds a size limit of 60k characters by omitting some of the changelog information.
## 1.2.2 ## 1.2.2
### Patch Changes ### Patch Changes
-11
View File
@@ -41,9 +41,6 @@ jobs:
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v2 uses: actions/checkout@v2
with:
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
fetch-depth: 0
- name: Setup Node.js 12.x - name: Setup Node.js 12.x
uses: actions/setup-node@v2 uses: actions/setup-node@v2
@@ -80,9 +77,6 @@ jobs:
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v2 uses: actions/checkout@v2
with:
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
fetch-depth: 0
- name: Setup Node.js 12.x - name: Setup Node.js 12.x
uses: actions/setup-node@v2 uses: actions/setup-node@v2
@@ -149,9 +143,6 @@ jobs:
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v2 uses: actions/checkout@v2
with:
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
fetch-depth: 0
- name: Setup Node.js 12.x - name: Setup Node.js 12.x
uses: actions/setup-node@v2 uses: actions/setup-node@v2
@@ -196,8 +187,6 @@ jobs:
steps: steps:
- name: Checkout Repo - name: Checkout Repo
uses: actions/checkout@v2 uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Setup Node.js 12.x - name: Setup Node.js 12.x
uses: actions/setup-node@v2 uses: actions/setup-node@v2
+2
View File
@@ -36,6 +36,8 @@ outputs:
A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]`
hasChangesets: hasChangesets:
description: A boolean about whether there were changesets. Useful if you want to create your own publishing functionality. description: A boolean about whether there were changesets. Useful if you want to create your own publishing functionality.
pullRequestNumber:
description: The pull request number that was created or updated
branding: branding:
icon: "package" icon: "package"
color: "blue" color: "blue"
+921
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@changesets/action", "name": "@changesets/action",
"version": "1.2.2", "version": "1.3.0",
"main": "dist/index.js", "main": "dist/index.js",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
+44 -1
View File
@@ -6,6 +6,7 @@ Array [
"base": "some-branch", "base": "some-branch",
"body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated. "body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated.
# Releases # Releases
## simple-project-pkg-a@1.1.0 ## simple-project-pkg-a@1.1.0
@@ -18,7 +19,7 @@ Array [
- Updated dependencies - Updated dependencies
- simple-project-pkg-b@1.1.0 - simple-project-pkg-b@1.1.0
## simple-project-pkg-b@1.1.0 ## simple-project-pkg-b@1.1.0
### Minor Changes ### Minor Changes
@@ -32,12 +33,53 @@ Array [
] ]
`; `;
exports[`version does not include any release information if a message with simplified release info exceeds size limit 1`] = `
Array [
Object {
"base": "some-branch",
"body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated.
# Releases
> All release information have been omitted from this message, as the content exceeds the size limit.",
"head": "changeset-release/some-branch",
"owner": "changesets",
"repo": "action",
"title": "Version Packages",
},
]
`;
exports[`version does not include changelog entries if full message exceeds size limit 1`] = `
Array [
Object {
"base": "some-branch",
"body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated.
# Releases
> The changelog information of each package has been omitted from this message, as the content exceeds the size limit.
## simple-project-pkg-a@1.1.0
",
"head": "changeset-release/some-branch",
"owner": "changesets",
"repo": "action",
"title": "Version Packages",
},
]
`;
exports[`version doesn't include ignored package that got a dependency update in the PR body 1`] = ` exports[`version doesn't include ignored package that got a dependency update in the PR body 1`] = `
Array [ Array [
Object { Object {
"base": "some-branch", "base": "some-branch",
"body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated. "body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated.
# Releases # Releases
## ignored-package-pkg-b@1.1.0 ## ignored-package-pkg-b@1.1.0
@@ -59,6 +101,7 @@ Array [
"base": "some-branch", "base": "some-branch",
"body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated. "body": "This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to some-branch, this PR will be updated.
# Releases # Releases
## simple-project-pkg-a@1.1.0 ## simple-project-pkg-a@1.1.0
+4 -1
View File
@@ -97,13 +97,16 @@ const getOptionalInput = (name: string) => core.getInput(name) || undefined;
return; return;
} }
case hasChangesets: case hasChangesets:
await runVersion({ const { pullRequestNumber } = await runVersion({
script: getOptionalInput("version"), script: getOptionalInput("version"),
githubToken, githubToken,
prTitle: getOptionalInput("title"), prTitle: getOptionalInput("title"),
commitMessage: getOptionalInput("commit"), commitMessage: getOptionalInput("commit"),
hasPublishScript, hasPublishScript,
}); });
core.setOutput("pullRequestNumber", String(pullRequestNumber));
return; return;
} }
})().catch((err) => { })().catch((err) => {
+130
View File
@@ -57,6 +57,10 @@ describe("version", () => {
() => ({ data: { items: [] } }) () => ({ data: { items: [] } })
); );
mockedGithubMethods.pulls.create.mockImplementationOnce(() => ({
data: { number: 123 },
}));
await writeChangesets( await writeChangesets(
[ [
{ {
@@ -92,6 +96,10 @@ describe("version", () => {
() => ({ data: { items: [] } }) () => ({ data: { items: [] } })
); );
mockedGithubMethods.pulls.create.mockImplementationOnce(() => ({
data: { number: 123 },
}));
await writeChangesets( await writeChangesets(
[ [
{ {
@@ -123,6 +131,10 @@ describe("version", () => {
() => ({ data: { items: [] } }) () => ({ data: { items: [] } })
); );
mockedGithubMethods.pulls.create.mockImplementationOnce(() => ({
data: { number: 123 },
}));
await writeChangesets( await writeChangesets(
[ [
{ {
@@ -145,4 +157,122 @@ describe("version", () => {
expect(mockedGithubMethods.pulls.create.mock.calls[0]).toMatchSnapshot(); expect(mockedGithubMethods.pulls.create.mock.calls[0]).toMatchSnapshot();
}); });
it("does not include changelog entries if full message exceeds size limit", async () => {
let cwd = f.copy("simple-project");
linkNodeModules(cwd);
mockedGithubMethods.search.issuesAndPullRequests.mockImplementationOnce(
() => ({ data: { items: [] } })
);
mockedGithubMethods.pulls.create.mockImplementationOnce(() => ({
data: { number: 123 },
}));
await writeChangesets(
[
{
releases: [
{
name: "simple-project-pkg-a",
type: "minor",
},
],
summary: `# Non manus superum
## Nec cornibus aequa numinis multo onerosior adde
Lorem markdownum undas consumpserat malas, nec est lupus; memorant gentisque ab
limine auctore. Eatque et promptu deficit, quam videtur aequa est **faciat**,
locus. Potentia deus habebat pia quam qui coniuge frater, tibi habent fertque
viribus. E et cognoscere arcus, lacus aut sic pro crimina fuit tum **auxilium**
dictis, qua, in.
In modo. Nomen illa membra.
> Corpora gratissima parens montibus tum coeperat qua remulus caelum Helenamque?
> Non poenae modulatur Amathunta in concita superi, procerum pariter rapto cornu
> munera. Perrhaebum parvo manus contingere, morari, spes per totiens ut
> dividite proculcat facit, visa.
Adspicit sequitur diffamatamque superi Phoebo qua quin lammina utque: per? Exit
decus aut hac inpia, seducta mirantia extremo. Vidi pedes vetus. Saturnius
fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis.
`,
},
],
cwd
);
await runVersion({
githubToken: "@@GITHUB_TOKEN",
cwd,
prBodyMaxCharacters: 1000,
});
expect(mockedGithubMethods.pulls.create.mock.calls[0]).toMatchSnapshot();
expect(mockedGithubMethods.pulls.create.mock.calls[0][0].body).toMatch(
/The changelog information of each package has been omitted from this message/
);
});
it("does not include any release information if a message with simplified release info exceeds size limit", async () => {
let cwd = f.copy("simple-project");
linkNodeModules(cwd);
mockedGithubMethods.search.issuesAndPullRequests.mockImplementationOnce(
() => ({ data: { items: [] } })
);
mockedGithubMethods.pulls.create.mockImplementationOnce(() => ({
data: { number: 123 },
}));
await writeChangesets(
[
{
releases: [
{
name: "simple-project-pkg-a",
type: "minor",
},
],
summary: `# Non manus superum
## Nec cornibus aequa numinis multo onerosior adde
Lorem markdownum undas consumpserat malas, nec est lupus; memorant gentisque ab
limine auctore. Eatque et promptu deficit, quam videtur aequa est **faciat**,
locus. Potentia deus habebat pia quam qui coniuge frater, tibi habent fertque
viribus. E et cognoscere arcus, lacus aut sic pro crimina fuit tum **auxilium**
dictis, qua, in.
In modo. Nomen illa membra.
> Corpora gratissima parens montibus tum coeperat qua remulus caelum Helenamque?
> Non poenae modulatur Amathunta in concita superi, procerum pariter rapto cornu
> munera. Perrhaebum parvo manus contingere, morari, spes per totiens ut
> dividite proculcat facit, visa.
Adspicit sequitur diffamatamque superi Phoebo qua quin lammina utque: per? Exit
decus aut hac inpia, seducta mirantia extremo. Vidi pedes vetus. Saturnius
fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis.
`,
},
],
cwd
);
await runVersion({
githubToken: "@@GITHUB_TOKEN",
cwd,
prBodyMaxCharacters: 500,
});
expect(mockedGithubMethods.pulls.create.mock.calls[0]).toMatchSnapshot();
expect(mockedGithubMethods.pulls.create.mock.calls[0][0].body).toMatch(
/All release information have been omitted from this message, as the content exceeds the size limit/
);
});
}); });
+129 -57
View File
@@ -4,6 +4,7 @@ import fs from "fs-extra";
import { getPackages, Package } from "@manypkg/get-packages"; import { getPackages, Package } from "@manypkg/get-packages";
import path from "path"; import path from "path";
import * as semver from "semver"; import * as semver from "semver";
import { PreState } from "@changesets/types";
import { import {
getChangelogEntry, getChangelogEntry,
execWithOutput, execWithOutput,
@@ -15,6 +16,12 @@ import * as gitUtils from "./gitUtils";
import readChangesetState from "./readChangesetState"; import readChangesetState from "./readChangesetState";
import resolveFrom from "resolve-from"; import resolveFrom from "resolve-from";
// GitHub Issues/PRs messages have a max size limit on the
// message body payload.
// `body is too long (maximum is 65536 characters)`.
// To avoid that, we ensure to cap the message to 60k chars.
const MAX_CHARACTERS_PER_MESSAGE = 60000;
const createRelease = async ( const createRelease = async (
octokit: ReturnType<typeof github.getOctokit>, octokit: ReturnType<typeof github.getOctokit>,
{ pkg, tagName }: { pkg: Package; tagName: string } { pkg, tagName }: { pkg: Package; tagName: string }
@@ -40,7 +47,7 @@ const createRelease = async (
prerelease: pkg.packageJson.version.includes("-"), prerelease: pkg.packageJson.version.includes("-"),
...github.context.repo, ...github.context.repo,
}); });
} catch (err) { } catch (err: any) {
// if we can't find a changelog, the user has probably disabled changelogs // if we can't find a changelog, the user has probably disabled changelogs
if (err.code !== "ENOENT") { if (err.code !== "ENOENT") {
throw err; throw err;
@@ -158,7 +165,7 @@ export async function runPublish({
const requireChangesetsCliPkgJson = (cwd: string) => { const requireChangesetsCliPkgJson = (cwd: string) => {
try { try {
return require(resolveFrom(cwd, "@changesets/cli/package.json")); return require(resolveFrom(cwd, "@changesets/cli/package.json"));
} catch (err) { } catch (err: any) {
if (err && err.code === "MODULE_NOT_FOUND") { if (err && err.code === "MODULE_NOT_FOUND") {
throw new Error( throw new Error(
`Have you forgotten to install \`@changesets/cli\` in "${cwd}"?` `Have you forgotten to install \`@changesets/cli\` in "${cwd}"?`
@@ -168,6 +175,75 @@ const requireChangesetsCliPkgJson = (cwd: string) => {
} }
}; };
type GetMessageOptions = {
hasPublishScript: boolean;
branch: string;
changedPackagesInfo: {
highestLevel: number;
private: boolean;
content: string;
header: string;
}[];
prBodyMaxCharacters: number;
preState?: PreState;
};
export async function getVersionPrBody({
hasPublishScript,
preState,
changedPackagesInfo,
prBodyMaxCharacters,
branch,
}: GetMessageOptions) {
let messageHeader = `This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and ${
hasPublishScript
? `the packages will be published to npm automatically`
: `publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing)`
}. If you're not ready to do a release yet, that's fine, whenever you add more changesets to ${branch}, this PR will be updated.
`;
let messagePrestate = !!preState
? `⚠️⚠️⚠️⚠️⚠️⚠️
\`${branch}\` is currently in **pre mode** so this branch has prereleases rather than normal releases. If you want to exit prereleases, run \`changeset pre exit\` on \`${branch}\`.
⚠️⚠️⚠️⚠️⚠️⚠️
`
: "";
let messageReleasesHeading = `# Releases`;
let fullMessage = [
messageHeader,
messagePrestate,
messageReleasesHeading,
...changedPackagesInfo.map((info) => `${info.header}\n\n${info.content}`),
].join("\n");
// Check that the message does not exceed the size limit.
// If not, omit the changelog entries of each package.
if (fullMessage.length > prBodyMaxCharacters) {
fullMessage = [
messageHeader,
messagePrestate,
messageReleasesHeading,
`\n> The changelog information of each package has been omitted from this message, as the content exceeds the size limit.\n`,
...changedPackagesInfo.map((info) => `${info.header}\n\n`),
].join("\n");
}
// Check (again) that the message is within the size limit.
// If not, omit all release content this time.
if (fullMessage.length > prBodyMaxCharacters) {
fullMessage = [
messageHeader,
messagePrestate,
messageReleasesHeading,
`\n> All release information have been omitted from this message, as the content exceeds the size limit.`,
].join("\n");
}
return fullMessage;
}
type VersionOptions = { type VersionOptions = {
script?: string; script?: string;
githubToken: string; githubToken: string;
@@ -175,6 +251,11 @@ type VersionOptions = {
prTitle?: string; prTitle?: string;
commitMessage?: string; commitMessage?: string;
hasPublishScript?: boolean; hasPublishScript?: boolean;
prBodyMaxCharacters?: number;
};
type RunVersionResult = {
pullRequestNumber: number;
}; };
export async function runVersion({ export async function runVersion({
@@ -184,7 +265,8 @@ export async function runVersion({
prTitle = "Version Packages", prTitle = "Version Packages",
commitMessage = "Version Packages", commitMessage = "Version Packages",
hasPublishScript = false, hasPublishScript = false,
}: VersionOptions) { prBodyMaxCharacters = MAX_CHARACTERS_PER_MESSAGE,
}: VersionOptions): Promise<RunVersionResult> {
let repo = `${github.context.repo.owner}/${github.context.repo.repo}`; let repo = `${github.context.repo.owner}/${github.context.repo.repo}`;
let branch = github.context.ref.replace("refs/heads/", ""); let branch = github.context.ref.replace("refs/heads/", "");
let versionBranch = `changeset-release/${branch}`; let versionBranch = `changeset-release/${branch}`;
@@ -214,55 +296,22 @@ export async function runVersion({
q: searchQuery, q: searchQuery,
}); });
let changedPackages = await getChangedPackages(cwd, versionsByDirectory); let changedPackages = await getChangedPackages(cwd, versionsByDirectory);
let changedPackagesInfoPromises = Promise.all(
changedPackages.map(async (pkg) => {
let changelogContents = await fs.readFile(
path.join(pkg.dir, "CHANGELOG.md"),
"utf8"
);
let prBodyPromise = (async () => { let entry = getChangelogEntry(changelogContents, pkg.packageJson.version);
return ( return {
`This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and ${ highestLevel: entry.highestLevel,
hasPublishScript private: !!pkg.packageJson.private,
? `the packages will be published to npm automatically` content: entry.content,
: `publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing)` header: `## ${pkg.packageJson.name}@${pkg.packageJson.version}`,
}. If you're not ready to do a release yet, that's fine, whenever you add more changesets to ${branch}, this PR will be updated. };
${ })
!!preState );
? `
⚠️⚠️⚠️⚠️⚠️⚠️
\`${branch}\` is currently in **pre mode** so this branch has prereleases rather than normal releases. If you want to exit prereleases, run \`changeset pre exit\` on \`${branch}\`.
⚠️⚠️⚠️⚠️⚠️⚠️
`
: ""
}
# Releases
` +
(
await Promise.all(
changedPackages.map(async (pkg) => {
let changelogContents = await fs.readFile(
path.join(pkg.dir, "CHANGELOG.md"),
"utf8"
);
let entry = getChangelogEntry(
changelogContents,
pkg.packageJson.version
);
return {
highestLevel: entry.highestLevel,
private: !!pkg.packageJson.private,
content:
`## ${pkg.packageJson.name}@${pkg.packageJson.version}\n\n` +
entry.content,
};
})
)
)
.filter((x) => x)
.sort(sortTheThings)
.map((x) => x.content)
.join("\n ")
);
})();
const finalPrTitle = `${prTitle}${!!preState ? ` (${preState.tag})` : ""}`; const finalPrTitle = `${prTitle}${!!preState ? ` (${preState.tag})` : ""}`;
@@ -278,22 +327,45 @@ ${
let searchResult = await searchResultPromise; let searchResult = await searchResultPromise;
console.log(JSON.stringify(searchResult.data, null, 2)); console.log(JSON.stringify(searchResult.data, null, 2));
const changedPackagesInfo = (await changedPackagesInfoPromises)
.filter((x) => x)
.sort(sortTheThings);
let prBody = await getVersionPrBody({
hasPublishScript,
preState,
branch,
changedPackagesInfo,
prBodyMaxCharacters,
});
if (searchResult.data.items.length === 0) { if (searchResult.data.items.length === 0) {
console.log("creating pull request"); console.log("creating pull request");
await octokit.pulls.create({ const { data: newPullRequest } = await octokit.pulls.create({
base: branch, base: branch,
head: versionBranch, head: versionBranch,
title: finalPrTitle, title: finalPrTitle,
body: await prBodyPromise, body: prBody,
...github.context.repo, ...github.context.repo,
}); });
return {
pullRequestNumber: newPullRequest.number,
};
} else { } else {
octokit.pulls.update({ const [pullRequest] = searchResult.data.items;
pull_number: searchResult.data.items[0].number,
console.log(`updating found pull request #${pullRequest.number}`);
await octokit.pulls.update({
pull_number: pullRequest.number,
title: finalPrTitle, title: finalPrTitle,
body: await prBodyPromise, body: prBody,
...github.context.repo, ...github.context.repo,
}); });
console.log("pull request found");
return {
pullRequestNumber: pullRequest.number,
};
} }
} }