Exposed getFinalChangelog helper

no issue

- this is needed so I can generate the release changelog for the Slack
  notifications in action-ghost-release
This commit is contained in:
Daniel Lockyer 2021-10-01 16:53:40 +01:00
parent d1c58466b5
commit e1887f2df4
2 changed files with 30 additions and 28 deletions

View File

@ -7,32 +7,6 @@ const request = require('request');
const localUtils = require('./utils');
function getFinalChangelog(options) {
let filterEmojiCommits = true;
let changelog = fs.readFileSync(options.changelogPath).toString('utf8').split(os.EOL);
let finalChangelog = [];
if (Object.prototype.hasOwnProperty.call(options, 'filterEmojiCommits')) {
filterEmojiCommits = options.filterEmojiCommits;
}
// @NOTE: optional array of string lines, which we pre-pend
if (Object.prototype.hasOwnProperty.call(options, 'content') && _.isArray(options.content)) {
finalChangelog = finalChangelog.concat(options.content);
}
if (filterEmojiCommits) {
changelog = localUtils.filterEmojiCommits(changelog);
localUtils.sortByEmoji(changelog);
}
if (_.isEmpty(changelog)) {
changelog = ['No user-visible changes in this release.'];
}
finalChangelog = finalChangelog.concat(changelog);
return finalChangelog;
}
module.exports.create = (options = {}) => {
let draft = true;
let prerelease = false;
@ -59,11 +33,11 @@ module.exports.create = (options = {}) => {
// CASE: changelogPath can be array of paths with content
if (_.isArray(options.changelogPath)) {
options.changelogPath.forEach((opts) => {
body = body.concat(getFinalChangelog(opts));
body = body.concat(localUtils.getFinalChangelog(opts));
});
} else {
// CASE: changelogPath can be a single path(For backward compatibility)
body = body.concat(getFinalChangelog(options));
body = body.concat(localUtils.getFinalChangelog(options));
}
// CASE: clean before upload

View File

@ -1,4 +1,6 @@
const emojiRegex = require('emoji-regex');
const fs = require('fs');
const os = require('os');
const _ = require('lodash');
const {IncorrectUsageError} = require('@tryghost/errors');
@ -63,3 +65,29 @@ module.exports.checkMissingOptions = (options = {}, ...requiredFields) => {
});
}
};
module.exports.getFinalChangelog = function getFinalChangelog(options) {
let filterEmojiCommits = true;
let changelog = fs.readFileSync(options.changelogPath).toString('utf8').split(os.EOL);
let finalChangelog = [];
if (Object.prototype.hasOwnProperty.call(options, 'filterEmojiCommits')) {
filterEmojiCommits = options.filterEmojiCommits;
}
// @NOTE: optional array of string lines, which we pre-pend
if (Object.prototype.hasOwnProperty.call(options, 'content') && _.isArray(options.content)) {
finalChangelog = finalChangelog.concat(options.content);
}
if (filterEmojiCommits) {
changelog = module.exports.filterEmojiCommits(changelog);
module.exports.sortByEmoji(changelog);
}
if (_.isEmpty(changelog)) {
changelog = ['No user-visible changes in this release.'];
}
finalChangelog = finalChangelog.concat(changelog);
return finalChangelog;
};