Skip to content

Commit 993a0a0

Browse files
dmregisterAndarist
andauthored
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 <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]>
1 parent c7c59f0 commit 993a0a0

File tree

5 files changed

+40
-4
lines changed

5 files changed

+40
-4
lines changed

.changeset/long-mayflies-yell.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@changesets/action": minor
3+
---
4+
5+
Added `pullRequestNumber` to the action's outputs

action.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ outputs:
3636
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"}]`
3737
hasChangesets:
3838
description: A boolean about whether there were changesets. Useful if you want to create your own publishing functionality.
39+
pullRequestNumber:
40+
description: The pull request number that was created or updated
3941
branding:
4042
icon: "package"
4143
color: "blue"

src/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,16 @@ const getOptionalInput = (name: string) => core.getInput(name) || undefined;
9797
return;
9898
}
9999
case hasChangesets:
100-
await runVersion({
100+
const { pullRequestNumber } = await runVersion({
101101
script: getOptionalInput("version"),
102102
githubToken,
103103
prTitle: getOptionalInput("title"),
104104
commitMessage: getOptionalInput("commit"),
105105
hasPublishScript,
106106
});
107+
108+
core.setOutput("pullRequestNumber", String(pullRequestNumber));
109+
107110
return;
108111
}
109112
})().catch((err) => {

src/run.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ describe("version", () => {
5757
() => ({ data: { items: [] } })
5858
);
5959

60+
mockedGithubMethods.pulls.create.mockImplementationOnce(
61+
() => ({ data: { number: 123 } })
62+
);
63+
6064
await writeChangesets(
6165
[
6266
{
@@ -92,6 +96,10 @@ describe("version", () => {
9296
() => ({ data: { items: [] } })
9397
);
9498

99+
mockedGithubMethods.pulls.create.mockImplementationOnce(
100+
() => ({ data: { number: 123 } })
101+
);
102+
95103
await writeChangesets(
96104
[
97105
{
@@ -123,6 +131,10 @@ describe("version", () => {
123131
() => ({ data: { items: [] } })
124132
);
125133

134+
mockedGithubMethods.pulls.create.mockImplementationOnce(
135+
() => ({ data: { number: 123 } })
136+
);
137+
126138
await writeChangesets(
127139
[
128140
{

src/run.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,14 +177,18 @@ type VersionOptions = {
177177
hasPublishScript?: boolean;
178178
};
179179

180+
type RunVersionResult = {
181+
pullRequestNumber: number;
182+
};
183+
180184
export async function runVersion({
181185
script,
182186
githubToken,
183187
cwd = process.cwd(),
184188
prTitle = "Version Packages",
185189
commitMessage = "Version Packages",
186190
hasPublishScript = false,
187-
}: VersionOptions) {
191+
}: VersionOptions): Promise<RunVersionResult> {
188192
let repo = `${github.context.repo.owner}/${github.context.repo.repo}`;
189193
let branch = github.context.ref.replace("refs/heads/", "");
190194
let versionBranch = `changeset-release/${branch}`;
@@ -280,20 +284,30 @@ ${
280284
console.log(JSON.stringify(searchResult.data, null, 2));
281285
if (searchResult.data.items.length === 0) {
282286
console.log("creating pull request");
283-
await octokit.pulls.create({
287+
const {
288+
data: { number },
289+
} = await octokit.pulls.create({
284290
base: branch,
285291
head: versionBranch,
286292
title: finalPrTitle,
287293
body: await prBodyPromise,
288294
...github.context.repo,
289295
});
296+
297+
return {
298+
pullRequestNumber: number,
299+
};
290300
} else {
291-
octokit.pulls.update({
301+
await octokit.pulls.update({
292302
pull_number: searchResult.data.items[0].number,
293303
title: finalPrTitle,
294304
body: await prBodyPromise,
295305
...github.context.repo,
296306
});
297307
console.log("pull request found");
308+
309+
return {
310+
pullRequestNumber: searchResult.data.items[0].number,
311+
};
298312
}
299313
}

0 commit comments

Comments
 (0)