@mitre-attack/attack-data-model
Version:
A TypeScript API for the MITRE ATT&CK data model
29 lines (27 loc) • 877 B
JavaScript
// src/data-sources/fetch-attack-versions.ts
function normalizeVersion(version) {
return version.replace(/^v/, "");
}
async function fetchAttackVersions() {
const url = "https://api.github.com/repos/mitre-attack/attack-stix-data/releases";
const response = await fetch(url, {
headers: {
Accept: "application/vnd.github+json",
"X-GitHub-Api-Version": "2022-11-28"
}
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const releases = await response.json();
const versions = releases.map((release) => normalizeVersion(release.tag_name)).sort((a, b) => {
const [aMajor, aMinor] = a.split(".").map(Number);
const [bMajor, bMinor] = b.split(".").map(Number);
if (bMajor !== aMajor) return bMajor - aMajor;
return bMinor - aMinor;
});
return versions;
}
export {
fetchAttackVersions
};