in ui/changes/src/common.js [532:604]
export async function renderRiskChart(chartEl, bugSummaries) {
bugSummaries = bugSummaries.filter(
(bugSummary) => bugSummary.risk_band !== null
);
if (bugSummaries.length == 0) {
return;
}
let minDate = getPlainDate(
bugSummaries.reduce((minSummary, summary) =>
Temporal.PlainDate.compare(
getPlainDate(summary.date),
getPlainDate(minSummary.date)
) < 0
? summary
: minSummary
).date
);
// Enforce up to 2 months history, earlier patches are in the model's training set.
let twoMonthsAgo = Temporal.Now.plainDateISO().subtract({ months: 2 });
if (Temporal.PlainDate.compare(twoMonthsAgo, minDate) > 0) {
minDate = twoMonthsAgo;
}
let summaryData = await getSummaryData(
bugSummaries,
getOption("grouping"),
minDate,
(counterObj, summary) => {
if (summary.risk_band == "l") {
counterObj.low += 1;
} else if (summary.risk_band == "a") {
counterObj.medium += 1;
} else {
counterObj.high += 1;
}
}
);
let categories = [];
let high = [];
let medium = [];
let low = [];
for (let date in summaryData) {
categories.push(date);
low.push(summaryData[date].low);
medium.push(summaryData[date].medium);
high.push(summaryData[date].high);
}
renderChart(
chartEl,
[
{
name: "Higher",
data: high,
},
{
name: "Average",
data: medium,
},
{
name: "Lower",
data: low,
},
],
categories,
"Evolution of lower/average/higher risk changes",
"# of patches"
);
}