@@ -646,6 +646,17 @@ jobs:
646646 }
647647 }
648648
649+ function assertPublishedReleaseMetadata(candidate) {
650+ if (candidate.draft !== false ||
651+ candidate.prerelease !== false ||
652+ candidate.tag_name !== version ||
653+ candidate.target_commitish !== releaseSha ||
654+ candidate.name !== version ||
655+ candidate.body !== notes) {
656+ throw new Error(`Published release ${version} metadata or target does not match.`);
657+ }
658+ }
659+
649660 async function waitForPublishedRelease(releaseId) {
650661 for (let attempt = 0; attempt < 30; attempt += 1) {
651662 const current = await github.rest.repos.getRelease({
@@ -740,9 +751,7 @@ jobs:
740751 }
741752
742753 if (!release.draft) {
743- if (release.name !== version || release.body !== notes || release.prerelease) {
744- throw new Error(`Published release ${version} metadata does not match.`);
745- }
754+ assertPublishedReleaseMetadata(release);
746755 await verifyRemoteAssets(release.id);
747756 if (await resolveTagCommit(version) !== releaseSha) {
748757 throw new Error(`Published release tag ${version} changed during verification.`);
@@ -804,6 +813,7 @@ jobs:
804813 make_latest: 'true',
805814 });
806815 release = await waitForPublishedRelease(release.id);
816+ assertPublishedReleaseMetadata(release);
807817 if (await resolveTagCommit(version) !== releaseSha) {
808818 throw new Error(`Release tag ${version} changed during publication.`);
809819 }
0 commit comments