forked from cssinjs/jss
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate-github-release.js
More file actions
61 lines (53 loc) · 1.38 KB
/
create-github-release.js
File metadata and controls
61 lines (53 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
const fs = require('fs')
const path = require('path')
const axios = require('axios')
const log = require('npmlog/log')
const {input} = require('@lerna/prompt')
const lerna = require('../lerna')
const {CHANGELOG_FILENAME} = require('./constants')
function getChangelog() {
const content = fs.readFileSync(path.join(process.cwd(), CHANGELOG_FILENAME), 'utf-8')
const lines = content.split('\n')
let hasStarted = false
let hasFinished = false
return lines
.filter(line => {
if (hasFinished) {
return false
}
if (hasStarted) {
hasFinished = line.startsWith('## ')
return !hasFinished
}
hasStarted = line.startsWith(`## ${lerna.version}`)
return false
})
.join('\n')
}
input('Github Username:')
.then(username =>
input('Github password:').then(password => ({
username,
password
}))
)
.then(auth =>
axios.request({
method: 'POST',
url: `/repos/cssinjs/jss/releases`,
baseURL: `https://api.github.com`,
data: {
tag_name: `v${lerna.version}`,
name: `v${lerna.version}`,
body: getChangelog(),
prerelease: lerna.version.includes('alpha')
},
auth
})
)
.then(() => {
log.info('jss', 'Successfully created github release')
})
.catch(err => {
log.error('jss', `Error while creating github release: ${err.message}`)
})