taf/scripts/createForgejoRelease.mjs
2025-11-17 21:31:17 -07:00

48 lines
920 B
JavaScript

import { createReadStream } from "fs";
import axios from "axios";
const {
TAG,
FORGEJO_API_URL: API,
FORGEJO_REPOSITORY: REPO,
FORGEJO_TOKEN: TOKEN,
} = process.env;
async function main() {
// Initial Release Data
const release = await axios.post(
`${API}/repos/${REPO}/releases`,
{
name: TAG,
tag_name: TAG,
draft: true,
hide_archive_links: true,
},
{
headers: { Authorization: `token ${TOKEN}` },
}
);
// Upload the release archive
const archive = createReadStream(`release.zip`);
await axios.post(
`${API}/repos/${REPO}/releases/${release.data.id}/assets`,
archive,
{
headers: { Authorization: `token ${TOKEN}` },
}
);
// Upload the manifest file
const manifest = createReadStream(`system.json`);
await axios.post(
`${API}/repos/${REPO}/releases/${release.data.id}/assets`,
manifest,
{
headers: { Authorization: `token ${TOKEN}`, },
}
);
};
main();