1- var fs = require ( 'fs' )
21var path = require ( 'path' )
2+ var changelogParser = require ( 'changelog-parser' )
33var exec = require ( 'shelljs' ) . exec
4- var semver = / \[ ? v ? ( [ \w \d \. - ] + \. [ \w \d \. - ] + [ a - z A - Z 0 - 9 ] ) \] ? /
54
65module . exports = function getDefaults ( callback ) {
76 var pkg = require ( path . resolve ( process . cwd ( ) , 'package.json' ) )
87 var commit = getTargetCommitish ( )
98 var repoPath = pkg . repository . url . split ( 'github.com/' ) [ 1 ] . split ( '/' )
109 var owner = repoPath [ 0 ]
1110 var repo = repoPath [ 1 ] . split ( '.git' ) [ 0 ]
12- var log = getChangelog ( )
13-
14- if ( log . version !== pkg . version ) {
15- var err = 'CHANGELOG.md out of sync with package.json '
16- err += '(' + log . version + ' !== ' + pkg . version + ')'
17- return callback ( new Error ( err ) )
18- }
19-
20- var version = pkg . version ? 'v' + pkg . version : null
11+ var logPath = path . resolve ( process . cwd ( ) , 'CHANGELOG.md' )
2112
22- callback ( null , {
23- tag_name : version ,
24- target_commitish : commit ,
25- name : version ,
26- body : log . body ,
27- owner : owner ,
28- repo : repo ,
29- draft : false ,
30- prerelease : false
13+ changelogParser ( logPath , function ( err , result ) {
14+ if ( err ) return callback ( err )
15+ var log = result . versions [ 0 ]
16+
17+ if ( log . version !== pkg . version ) {
18+ var errStr = 'CHANGELOG.md out of sync with package.json '
19+ errStr += '(' + log . version + ' !== ' + pkg . version + ')'
20+ return callback ( new Error ( errStr ) )
21+ }
22+
23+ var version = pkg . version ? 'v' + pkg . version : null
24+
25+ callback ( null , {
26+ tag_name : version ,
27+ target_commitish : commit ,
28+ name : version ,
29+ body : log . body ,
30+ owner : owner ,
31+ repo : repo ,
32+ draft : false ,
33+ prerelease : false
34+ } )
3135 } )
3236}
3337
@@ -36,17 +40,3 @@ function getTargetCommitish () {
3640 if ( commit . indexOf ( 'fatal' ) === - 1 ) return commit
3741 return 'master'
3842}
39-
40- function getChangelog ( ) {
41- var log = { }
42- var logPath = path . resolve ( process . cwd ( ) , 'CHANGELOG.md' )
43-
44- log . src = fs . readFileSync ( logPath , { encoding : 'utf-8' } )
45- log . version = log . src . split ( '## ' ) [ 1 ] . split ( '\n' ) [ 0 ] . split ( ' ' ) [ 0 ]
46- log . body = log . src . split ( '## ' ) [ 1 ] . split ( '\n' ) . slice ( 1 ) . join ( '\n' )
47-
48- var isSemver = semver . exec ( log . version )
49- if ( isSemver ) log . version = isSemver [ 1 ]
50-
51- return log
52- }
0 commit comments