Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F96672476
changelog.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Dec 29, 17:13
Size
2 KB
Mime Type
text/x-c
Expires
Tue, Dec 31, 17:13 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
23208794
Attached To
R2664 SHRINE MedCo Fork
changelog.js
View Options
'use strict'
/*
Usage:
node scripts/changelog.js [comittish]
Generates changelog entries in our format as best as its able based on
commits starting at comittish, or if that's not passed, master.
Ordinarily this is run via the gen-changelog shell script, which appends
the result to the changelog.
*/
const
execSync
=
require
(
'child_process'
).
execSync
const
branch
=
process
.
argv
[
2
]
||
'master'
const
log
=
execSync
(
`
git
log
--
pretty
=
'format:%h %H%d %s (%aN)%n%b%n---%n'
$
{
branch
}...
`
).
toString
().
split
(
/\n/
)
const
authormap
=
{
'Rebecca Turner'
:
'iarna'
,
'Forrest L Norvell'
:
'othiym23'
,
'Kyle Mitchell'
:
'kemitchell'
,
'Chris Rebert'
:
'cvrebert'
,
'Kat Marchán'
:
'zkat'
}
main
()
function
print_commit
(
c
)
{
let
m
console
.
log
(
`
*
[
\`
$
{
c
.
shortid
}
\`
](
https
:
//github.com/npm/npm/commit/${c.fullid})`)
if
(
c
.
fixes
)
{
console
.
log
(
`
[
#
$
{
c
.
fixes
}](
https
:
//github.com/npm/npm/issues/${c.fixes})`)
}
else
if
(
c
.
prurl
&&
(
m
=
c
.
prurl
.
match
(
/https:\/\/github.com\/([^/]+\/[^/]+)\/pull\/(\d+)/
)))
{
let
repo
=
m
[
1
]
let
prid
=
m
[
2
]
if
(
repo
!==
'npm/npm'
)
{
console
.
log
(
`
[
$
{
repo
}
#
$
{
prid
}](
$
{
c
.
prurl
})
`
)
}
else
{
console
.
log
(
`
[
#
$
{
prid
}](
$
{
c
.
prurl
})
`
)
}
}
else
if
(
c
.
prurl
)
{
console
.
log
(
`
[
#
](
$
{
c
.
prurl
})
`
)
}
let
msg
=
c
.
message
.
replace
(
/^\s+/mg
,
''
)
.
replace
(
/^[-a-z]+: /
,
''
)
.
replace
(
/^/mg
,
' '
)
.
replace
(
/\n$/
,
''
)
// backtickify package@version
.
replace
(
/^(\s*[^@\s]+@\d+[.]\d+[.]\d+)(\s*\S)/g
,
'$1:$2'
)
.
replace
(
/\b([^@\s]+@\d+[.]\d+[.]\d+)\b/g
,
'`$1`'
)
// linkify commitids
.
replace
(
/\b([a-f0-9]{7,8})\b/g
,
'[`$1`](https://github.com/npm/npm/commit/$1)'
)
.
replace
(
/\b#(\d+)\b/g
,
'[#$1](https://github.com/npm/npm/issues/$1)'
)
console
.
log
(
msg
)
if
(
c
.
credit
)
{
c
.
credit
.
forEach
(
function
(
credit
)
{
console
.
log
(
`
([
@
$
{
credit
}](
https
:
//github.com/${credit}))`)
})
}
else
{
console
.
log
(
`
([
@
$
{
c
.
author
}](
https
:
//github.com/${c.author}))`)
}
}
function
main
()
{
let
commit
log
.
forEach
(
function
(
line
)
{
let
m
/*eslint no-cond-assign:0*/
if
(
/^---$/
.
test
(
line
))
{
print_commit
(
commit
)
}
else
if
(
m
=
line
.
match
(
/^([a-f0-9]{7}) ([a-f0-9]+) (?:[(]([^)]+)[)] )?(.*?) [(](.*?)[)]/
))
{
commit
=
{
shortid
:
m
[
1
],
fullid
:
m
[
2
],
branch
:
m
[
3
],
message
:
m
[
4
],
author
:
authormap
[
m
[
5
]]
||
m
[
5
],
prurl
:
null
,
fixes
:
null
,
credit
:
null
}
}
else
if
(
m
=
line
.
match
(
/^PR-URL: (.*)/
))
{
commit
.
prurl
=
m
[
1
]
}
else
if
(
m
=
line
.
match
(
/^Credit: @(.*)/
))
{
if
(
!
commit
.
credit
)
commit
.
credit
=
[]
commit
.
credit
.
push
(
m
[
1
])
}
else
if
(
m
=
line
.
match
(
/^Fixes: #(.*)/
))
{
commit
.
fixes
=
m
[
1
]
}
else
if
(
m
=
line
.
match
(
/^Reviewed-By: @(.*)/
))
{
commit
.
reviewed
=
m
[
1
]
}
else
if
(
/\S/
.
test
(
line
))
{
commit
.
message
+=
`\
n$
{
line
}
`
}
})
}
Event Timeline
Log In to Comment