mirror of
https://github.com/changesets/action
synced 2026-10-26 16:39:56 +08:00
Avoid hitting a deprecation warning when encountering errors from @octokit/request-error (#461)
* fix: use status when http err * tweak code * add changeset --------- Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
This commit is contained in:
co-authored by
Mateusz Burzyński
parent
c1f57e52f9
commit
e9c36b6964
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@changesets/action": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Avoid hitting a deprecation warning when encountering errors from `@octokit/request-error`
|
||||||
+26
-35
@@ -14,6 +14,7 @@ import {
|
|||||||
getChangedPackages,
|
getChangedPackages,
|
||||||
getChangelogEntry,
|
getChangelogEntry,
|
||||||
getVersionsByDirectory,
|
getVersionsByDirectory,
|
||||||
|
isErrorWithCode,
|
||||||
sortTheThings,
|
sortTheThings,
|
||||||
} from "./utils";
|
} from "./utils";
|
||||||
|
|
||||||
@@ -27,38 +28,32 @@ const createRelease = async (
|
|||||||
octokit: Octokit,
|
octokit: Octokit,
|
||||||
{ pkg, tagName }: { pkg: Package; tagName: string }
|
{ pkg, tagName }: { pkg: Package; tagName: string }
|
||||||
) => {
|
) => {
|
||||||
|
let changelog;
|
||||||
try {
|
try {
|
||||||
let changelogFileName = path.join(pkg.dir, "CHANGELOG.md");
|
changelog = await fs.readFile(path.join(pkg.dir, "CHANGELOG.md"), "utf8");
|
||||||
|
|
||||||
let changelog = await fs.readFile(changelogFileName, "utf8");
|
|
||||||
|
|
||||||
let changelogEntry = getChangelogEntry(changelog, pkg.packageJson.version);
|
|
||||||
if (!changelogEntry) {
|
|
||||||
// we can find a changelog but not the entry for this version
|
|
||||||
// if this is true, something has probably gone wrong
|
|
||||||
throw new Error(
|
|
||||||
`Could not find changelog entry for ${pkg.packageJson.name}@${pkg.packageJson.version}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
await octokit.rest.repos.createRelease({
|
|
||||||
name: tagName,
|
|
||||||
tag_name: tagName,
|
|
||||||
body: changelogEntry.content,
|
|
||||||
prerelease: pkg.packageJson.version.includes("-"),
|
|
||||||
...github.context.repo,
|
|
||||||
});
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// if we can't find a changelog, the user has probably disabled changelogs
|
if (isErrorWithCode(err, "ENOENT")) {
|
||||||
if (
|
// if we can't find a changelog, the user has probably disabled changelogs
|
||||||
err &&
|
return;
|
||||||
typeof err === "object" &&
|
|
||||||
"code" in err &&
|
|
||||||
err.code !== "ENOENT"
|
|
||||||
) {
|
|
||||||
throw err;
|
|
||||||
}
|
}
|
||||||
|
throw err;
|
||||||
}
|
}
|
||||||
|
let changelogEntry = getChangelogEntry(changelog, pkg.packageJson.version);
|
||||||
|
if (!changelogEntry) {
|
||||||
|
// we can find a changelog but not the entry for this version
|
||||||
|
// if this is true, something has probably gone wrong
|
||||||
|
throw new Error(
|
||||||
|
`Could not find changelog entry for ${pkg.packageJson.name}@${pkg.packageJson.version}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
await octokit.rest.repos.createRelease({
|
||||||
|
name: tagName,
|
||||||
|
tag_name: tagName,
|
||||||
|
body: changelogEntry.content,
|
||||||
|
prerelease: pkg.packageJson.version.includes("-"),
|
||||||
|
...github.context.repo,
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
type PublishOptions = {
|
type PublishOptions = {
|
||||||
@@ -169,14 +164,10 @@ 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) {
|
||||||
if (
|
if (isErrorWithCode(err, "MODULE_NOT_FOUND")) {
|
||||||
err &&
|
|
||||||
typeof err === "object" &&
|
|
||||||
"code" in 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}"?`,
|
||||||
|
{ cause: err }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
throw err;
|
throw err;
|
||||||
|
|||||||
@@ -96,3 +96,12 @@ export function sortTheThings(
|
|||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function isErrorWithCode(err: unknown, code: string) {
|
||||||
|
return (
|
||||||
|
typeof err === "object" &&
|
||||||
|
err !== null &&
|
||||||
|
"code" in err &&
|
||||||
|
err.code === code
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user