Skip to content

Commit 8c85a3a

Browse files
committed
use changelog-parser
1 parent d309550 commit 8c85a3a

File tree

3 files changed

+28
-37
lines changed

3 files changed

+28
-37
lines changed

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# gh-release changelog
22

3-
## Unreleased
4-
* improve version detection for `CHANGELOG.md` in `get-defaults`
3+
## 1.1.1 - 2015-03-02
4+
* use `changelog-parser` for more reliable changelog parsing
55

66
## 1.1.0 - 2015-03-01
77
* target node `0.12` and `iojs` on travis

lib/get-defaults.js

Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,37 @@
1-
var fs = require('fs')
21
var path = require('path')
2+
var changelogParser = require('changelog-parser')
33
var exec = require('shelljs').exec
4-
var semver = /\[?v?([\w\d\.-]+\.[\w\d\.-]+[a-zA-Z0-9])\]?/
54

65
module.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-
}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "gh-release",
33
"description": "Create a release for a node package on github.",
4-
"version": "1.1.0",
4+
"version": "1.1.1",
55
"author": "Nate Goldman <[email protected]>",
66
"bin": {
77
"gh-release": "./bin/cli.js"
@@ -15,6 +15,7 @@
1515
"Paul C Pederson <[email protected]>"
1616
],
1717
"dependencies": {
18+
"changelog-parser": "^1.0.1",
1819
"ghauth": "^2.0.0",
1920
"github": "^0.2.3",
2021
"inquirer": "^0.8.0",

0 commit comments

Comments
 (0)