UNPKG

git-release-manager

Version:

A tool to generate release notes from git commit history

56 lines 2.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReleaseManager = void 0; const simple_git_1 = __importDefault(require("simple-git")); const fs_1 = require("fs"); const git = (0, simple_git_1.default)(); class ReleaseManager { // createVersion() // createGitHubRelease() // readReleaseNotesFromFile() async createVersion(version, options) { const releaseManager = new ReleaseManager(); // Create release branch if requested if (options.branch) { const branchName = `release/v${version}`; await git.checkoutLocalBranch(branchName); console.log(`Created release branch: ${branchName}`); } // Handle release notes let releaseNotes = ''; if (options.note) { releaseNotes = options.note; } else if (options.noteFile) { releaseNotes = await releaseManager.readReleaseNotesFromFile(options.noteFile); } // Create GitHub release if draft option is specified if (options.draft) { await releaseManager.createGitHubRelease(version, releaseNotes, true); console.log(`Created draft release for version ${version}`); } console.log(`Version ${version} created successfully`); } async createGitHubRelease(version, notes, draft) { // GitHub API implementation would go here // This is a placeholder for actual GitHub release creation console.log(`Would create GitHub release for ${version}`); } async readReleaseNotesFromFile(filePath) { try { return (0, fs_1.readFileSync)(filePath, 'utf8'); } catch (error) { if (error instanceof Error) { throw new Error(`Could not read release notes file: ${error.message}`); } // Handle case where error is not an Error object throw new Error(`Could not read release notes file: ${String(error)}`); } } } exports.ReleaseManager = ReleaseManager; //# sourceMappingURL=ReleaseManager.js.map