in src/server/queryUtils.ts [481:528]
export async function fetchReleaseData(): Promise<ReleaseData> {
let response = await promiseRequest({
uri: `${FX_VERSIONS_URI}?${Date.now()}`,
method: "GET",
});
const rv: ReleaseData = {
nightly: { version: response.FIREFOX_NIGHTLY.split(".")[0] },
beta: { version: response.FIREFOX_DEVEDITION.split(".")[0] },
release: { version: response.LATEST_FIREFOX_VERSION.split(".")[0] },
} as any;
rv.nightly.statusFlag = `cf_status_firefox${rv.nightly.version}`;
rv.beta.statusFlag = `cf_status_firefox${rv.beta.version}`;
rv.release.statusFlag = `cf_status_firefox${rv.release.version}`;
for (const key of ["beta", "release"]) {
try {
response = await promiseRequest({
uri: BUILDHUB_URI,
method: "POST",
body: JSON.stringify({
post_filter: {
bool: {
must: [
{ term: { "target.version": `${rv[key].version}.0a1` } },
{ term: { "target.channel": "nightly" } },
{ term: { "source.product": "firefox" } },
],
},
},
size: 1,
sort: [{ "download.date": "asc" }],
}),
});
if (response.hits.hits.length !== 1) {
throw new Error(
`Failed to determine build date for v${rv[key].version}`
);
}
} catch (error) {
console.log(error);
return rv;
}
rv[key].date = response.hits.hits[0]._source.download.date.slice(0, 10);
}
return rv;
}