UNPKG

@gitlab/semantic-release-merge-request-analyzer

Version:

Semantic release plugin to determine version based on GitLab merge request labels

59 lines (51 loc) 1.83 kB
import verifyConditionsImpl from "./src/verify-conditions.js"; import analyzeCommitsImpl from "./src/analyze-commits.js"; import generateNotesImpl from "./src/generate-notes.js"; // Keep track of whether verification was successful let verified = false; /** * Verify that the environment variables required for GitLab API access are present. * * @param {Object} pluginConfig The plugin configuration. * @param {Object} context The semantic-release context. * @returns {Promise<void>} A Promise that resolves if the verification is successful. */ export async function verifyConditions(pluginConfig, context) { await verifyConditionsImpl(pluginConfig, context); verified = true; } /** * Analyzes commits to determine the release type. * * @param {Object} pluginConfig The plugin configuration. * @param {Object} context The semantic-release context. * @returns {Promise<string|null>} The release type or null if no release should be created. */ export async function analyzeCommits(pluginConfig, context) { // If verifyConditions wasn't called, run verification now if (!verified) { await verifyConditionsImpl(pluginConfig, context); verified = true; } return analyzeCommitsImpl(pluginConfig, context); } /** * Generates release notes based on merge requests. * * @param {Object} pluginConfig The plugin configuration. * @param {Object} context The semantic-release context. * @returns {Promise<string>} The generated release notes. */ export async function generateNotes(pluginConfig, context) { // If verifyConditions wasn't called, run verification now if (!verified) { await verifyConditionsImpl(pluginConfig, context); verified = true; } return generateNotesImpl(pluginConfig, context); } export default { verifyConditions, analyzeCommits, generateNotes, };