- Remove the `getLastRelease` plugin type - Retrieve the last release based on Git tags - Create the next release Git tag before calling the `publish` plugins BREAKING CHANGE: Remove the `getLastRelease` plugin type The `getLastRelease` plugins will not be called anymore. BREAKING CHANGE: Git repository authentication is now mandatory The Git authentication is now mandatory and must be set via `GH_TOKEN`, `GITHUB_TOKEN`, `GL_TOKEN`, `GITLAB_TOKEN` or `GIT_CREDENTIALS` as described in [CI configuration](https://github.com/semantic-release/semantic-release/blob/caribou/docs/usage/ci-configuration.md#authentication).
33 lines
1.3 KiB
JavaScript
33 lines
1.3 KiB
JavaScript
const gitLogParser = require('git-log-parser');
|
|
const getStream = require('get-stream');
|
|
const debug = require('debug')('semantic-release:get-commits');
|
|
|
|
/**
|
|
* Retrieve the list of commits on the current branch since the commit sha associated with the last release, or all the commits of the current branch if there is no last released version.
|
|
*
|
|
* @param {String} gitHead The commit sha associated with the last release.
|
|
* @param {String} branch The branch to release from.
|
|
* @param {Object} logger Global logger.
|
|
*
|
|
* @return {Promise<Array<Object>>} The list of commits on the branch `branch` since the last release.
|
|
*/
|
|
module.exports = async (gitHead, branch, logger) => {
|
|
if (gitHead) {
|
|
debug('Use gitHead: %s', gitHead);
|
|
} else {
|
|
logger.log('No previous release found, retrieving all commits');
|
|
}
|
|
|
|
Object.assign(gitLogParser.fields, {hash: 'H', message: 'B', gitTags: 'd', committerDate: {key: 'ci', type: Date}});
|
|
const commits = (await getStream.array(gitLogParser.parse({_: `${gitHead ? gitHead + '..' : ''}HEAD`}))).map(
|
|
commit => {
|
|
commit.message = commit.message.trim();
|
|
commit.gitTags = commit.gitTags.trim();
|
|
return commit;
|
|
}
|
|
);
|
|
logger.log('Found %s commits since last release', commits.length);
|
|
debug('Parsed commits: %o', commits);
|
|
return commits;
|
|
};
|