mirror of
https://github.com/changesets/action
synced 2026-10-26 16:39:56 +08:00
Fix PRs sometimes not getting reopened with commitMode: github-api (#488)
* Fix PRs sometimes not getting reopened There was a race-condition that means sometimes existing PRs would not be found, and new PRs would be opened. This has now been fixed by fetching existing PRs before making any changes. fixes #487 * Apply suggestions from code review --------- Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
This commit is contained in:
co-authored by
Mateusz Burzyński
parent
0564b8428f
commit
022692ba02
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
"@changesets/action": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix PRs sometimes not getting reopened with `commitMode: github-api`
|
||||||
|
|
||||||
|
There was a race-condition that means sometimes existing PRs would not be found,
|
||||||
|
and new PRs would be opened. This has now been fixed by fetching existing PRs
|
||||||
|
before making any changes.
|
||||||
|
|
||||||
+11
-4
@@ -314,15 +314,22 @@ export async function runVersion({
|
|||||||
!!preState ? ` (${preState.tag})` : ""
|
!!preState ? ` (${preState.tag})` : ""
|
||||||
}`;
|
}`;
|
||||||
|
|
||||||
await git.pushChanges({ branch: versionBranch, message: finalCommitMessage });
|
/**
|
||||||
|
* Fetch any existing pull requests that are open against the branch,
|
||||||
let existingPullRequests = await octokit.rest.pulls.list({
|
* before we push any changes that may inadvertently close the existing PRs.
|
||||||
|
*
|
||||||
|
* (`@changesets/ghcommit` has to reset the branch to the same commit as the base,
|
||||||
|
* which GitHub will then react to by closing the PRs)
|
||||||
|
*/
|
||||||
|
const existingPullRequests = await octokit.rest.pulls.list({
|
||||||
...github.context.repo,
|
...github.context.repo,
|
||||||
state: "open",
|
state: "open",
|
||||||
head: `${github.context.repo.owner}:${versionBranch}`,
|
head: `${github.context.repo.owner}:${versionBranch}`,
|
||||||
base: branch,
|
base: branch,
|
||||||
});
|
});
|
||||||
core.info(JSON.stringify(existingPullRequests.data, null, 2));
|
core.info(`Existing pull requests: ${JSON.stringify(existingPullRequests.data, null, 2)}`);
|
||||||
|
|
||||||
|
await git.pushChanges({ branch: versionBranch, message: finalCommitMessage });
|
||||||
|
|
||||||
const changedPackagesInfo = (await changedPackagesInfoPromises)
|
const changedPackagesInfo = (await changedPackagesInfoPromises)
|
||||||
.filter((x) => x)
|
.filter((x) => x)
|
||||||
|
|||||||
Reference in New Issue
Block a user