feat(post): custom release note generation

This commit is contained in:
Stephan Bönnemann 2015-04-24 15:52:54 +02:00
parent 3369f31a8d
commit 323b5d5bf8
3 changed files with 22 additions and 9 deletions

View File

@ -68,7 +68,7 @@ if (~argv._.indexOf('pre')) {
} }
if (~argv._.indexOf('post')) { if (~argv._.indexOf('post')) {
require('../src/post')(argv, efh(function () { require('../src/post')(argv, plugins, efh(function () {
// see src/restart.js // see src/restart.js
if (npmArgv['semantic-release-rerun']) { if (npmArgv['semantic-release-rerun']) {
console.log('Everything is alright :) npm will now print an error message that you can safely ignore.') console.log('Everything is alright :) npm will now print an error message that you can safely ignore.')

17
lib/release-notes.js Normal file
View File

@ -0,0 +1,17 @@
'use strict'
var readFile = require('fs').readFileSync
var changelog = require('conventional-changelog')
var parseUrl = require('github-url-from-git')
module.exports = function (cb) {
var pkg = JSON.parse(readFile('./package.json'))
var repository = pkg.repository ? parseUrl(pkg.repository.url) : null
changelog({
version: pkg.version,
repository: repository,
file: false
}, cb)
}

View File

@ -3,20 +3,20 @@
var readFile = require('fs').readFileSync var readFile = require('fs').readFileSync
var url = require('url') var url = require('url')
var changelog = require('conventional-changelog')
var gitHead = require('git-head') var gitHead = require('git-head')
var GitHubApi = require('github') var GitHubApi = require('github')
var parseSlug = require('parse-github-repo-url') var parseSlug = require('parse-github-repo-url')
var parseUrl = require('github-url-from-git')
var efh = require('../lib/error').efh var efh = require('../lib/error').efh
module.exports = function (options, cb) { module.exports = function (options, plugins, cb) {
var pkg = JSON.parse(readFile('./package.json')) var pkg = JSON.parse(readFile('./package.json'))
var repository = pkg.repository ? pkg.repository.url : null var repository = pkg.repository ? pkg.repository.url : null
if (!repository) return cb(new Error('Package must have a repository')) if (!repository) return cb(new Error('Package must have a repository'))
var notesGenerator = require(plugins.notes || '../lib/release-notes')
var config = options['github-url'] ? url.parse(options['github-url']) : {} var config = options['github-url'] ? url.parse(options['github-url']) : {}
var github = new GitHubApi({ var github = new GitHubApi({
@ -26,11 +26,7 @@ module.exports = function (options, cb) {
host: config.hostname host: config.hostname
}) })
changelog({ notesGenerator(efh(cb)(function (log) {
version: pkg.version,
repository: parseUrl(repository),
file: false
}, efh(cb)(function (log) {
gitHead(efh(cb)(function (hash) { gitHead(efh(cb)(function (hash) {
var ghRepo = parseSlug(repository) var ghRepo = parseSlug(repository)
var release = { var release = {