Files
certd/scripts/set-release-stable-fetch.js
xiaojunnuo fb21ec04a6 chore(scripts): 为release接口url添加v前缀
修正获取指定版本发布信息的接口地址,补上版本号前的v前缀,确保接口调用正确
2026-08-29 15:24:12 +08:00

68 lines
1.8 KiB
JavaScript

const token = process.env.ATOMGIT_TOKEN;
const version = process.env.VERSION;
if (!token || !version) {
console.error("错误: 请设置 ATOMGIT_TOKEN 和 VERSION");
process.exit(1);
}
const apiBase = "https://api.atomgit.com/api/v5/repos/certd/certd";
async function request(method, url, options = {}) {
const requestUrl = new URL(url);
for (const [key, value] of Object.entries(options.params || {})) {
requestUrl.searchParams.set(key, value);
}
const response = await fetch(requestUrl, {
method,
headers: options.headers,
body: options.data ? JSON.stringify(options.data) : undefined,
});
const data = await response.json();
if (!response.ok) {
const error = new Error("HTTP " + response.status);
error.response = { data };
throw error;
}
return data;
}
async function main() {
try {
const releaseUrl = apiBase + "/releases/v" + encodeURIComponent(version);
const release = await request("GET", releaseUrl, {
params: { access_token: token },
});
console.log("Current release: " + release.tag_name + ", status: " + release.release_status);
if (release.release_status === "latest") {
console.log("Already stable, skipping");
return;
}
const updatedRelease = await request("PATCH", releaseUrl, {
headers: { "Content-Type": "application/json" },
params: { access_token: token },
data: {
name: release.name,
body: release.body,
release_status: "latest",
},
});
console.log("Done! " + version + " is now stable: status=" + updatedRelease.release_status);
} catch (error) {
if (error?.response?.data) {
console.error("请求失败:", JSON.stringify(error.response.data, null, 2));
} else {
console.error("请求失败:", error.message || error);
}
process.exit(1);
}
}
main();