esp-idf/.gitlab/dangerjs/mrAreaLabels.js

28 lines
1.0 KiB
JavaScript
Raw Normal View History

const { recordRuleExitStatus } = require("./configParameters.js");
2023-03-20 09:01:14 -04:00
/**
* Check if MR has area labels (light blue labels)
*
* @dangerjs WARN
*/
module.exports = async function () {
const ruleName = "Merge request area labels";
2023-03-20 09:01:14 -04:00
const projectId = 103; // ESP-IDF
const areaLabelColor = /^#d2ebfa$/i; // match color code (case-insensitive)
2023-03-20 09:01:14 -04:00
const projectLabels = await danger.gitlab.api.Labels.all(projectId); // Get all project labels
const areaLabels = projectLabels
.filter((label) => areaLabelColor.test(label.color))
2023-03-20 09:01:14 -04:00
.map((label) => label.name); // Filter only area labels
const mrLabels = danger.gitlab.mr.labels; // Get MR labels
if (!mrLabels.some((label) => areaLabels.includes(label))) {
recordRuleExitStatus(ruleName, "Failed");
return warn(
2023-03-20 09:01:14 -04:00
`Please add some [area labels](${process.env.DANGER_GITLAB_HOST}/espressif/esp-idf/-/labels) to this MR.`
);
}
// At this point, the rule has passed
recordRuleExitStatus(ruleName, "Passed");
2023-03-20 09:01:14 -04:00
};