mirror of
https://github.com/certd/certd.git
synced 2026-10-25 18:13:00 +08:00
68 lines
1.8 KiB
JavaScript
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();
|