Add statistics function with average closed time
Add conditional check if post.md already exists
This commit is contained in:
parent
5845ff60da
commit
9f03a72374
42
main.js
42
main.js
|
@ -41,7 +41,10 @@ for (const arg of process.argv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!args.includes('--no-download')) download()
|
if (!args.includes('--no-download')) download()
|
||||||
else createTable()
|
else {
|
||||||
|
createTable()
|
||||||
|
createStatistics()
|
||||||
|
}
|
||||||
|
|
||||||
function download() {
|
function download() {
|
||||||
api.Projects
|
api.Projects
|
||||||
|
@ -62,6 +65,7 @@ function download() {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(createTable)
|
.then(createTable)
|
||||||
|
.then(createStatistics)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,6 +147,42 @@ function createTable() {
|
||||||
table += ` ${closedAt} |\n`
|
table += ` ${closedAt} |\n`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!fs.existsSync(path.join(__dirname, year, month, 'post.md')))
|
||||||
fs.copyFileSync(path.join(__dirname, 'template.md'), path.join(__dirname, year, month, 'post.md'))
|
fs.copyFileSync(path.join(__dirname, 'template.md'), path.join(__dirname, year, month, 'post.md'))
|
||||||
fs.writeFileSync(path.join(__dirname, year, month, 'table.md'), table, {encoding: 'UTF-8'})
|
fs.writeFileSync(path.join(__dirname, year, month, 'table.md'), table, {encoding: 'UTF-8'})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createStatistics() {
|
||||||
|
let opened = klaw(openedPath)
|
||||||
|
let closed = klaw(closedPath)
|
||||||
|
|
||||||
|
let statistics = '## Statistics\n\n'
|
||||||
|
|
||||||
|
statistics += `In the month of ${month} `
|
||||||
|
statistics += `${opened.length} issues were opened and `
|
||||||
|
statistics += `${closed.length} issues were closed.\n\n`
|
||||||
|
|
||||||
|
let averageClosedDays
|
||||||
|
let averageClosedHours
|
||||||
|
for (const file of closed) {
|
||||||
|
const issue = require(file.path)
|
||||||
|
const openedAt = new Date(issue.created_at)
|
||||||
|
const closedAt = new Date(issue.closed_at)
|
||||||
|
const diffDays = Math.floor((closedAt - openedAt) / (1000 * 60 * 60 * 24))
|
||||||
|
const diffHours = Math.floor((closedAt - openedAt) / (1000 * 60 * 60))
|
||||||
|
|
||||||
|
averageClosedDays = (typeof averageClosedDays === 'undefined')
|
||||||
|
? averageClosedDays = diffDays
|
||||||
|
: averageClosedDays += diffDays
|
||||||
|
averageClosedHours = (typeof averageClosedHours === 'undefined')
|
||||||
|
? averageClosedHours = diffHours
|
||||||
|
: averageClosedHours += diffHours
|
||||||
|
}
|
||||||
|
averageClosedDays = Math.floor(averageClosedDays / closed.length)
|
||||||
|
averageClosedHours = Math.floor(averageClosedHours / closed.length)
|
||||||
|
|
||||||
|
statistics += `The average time to close issues was ${averageClosedDays} days `
|
||||||
|
statistics += `or ${averageClosedHours} hours.\n\n`
|
||||||
|
|
||||||
|
fs.writeFileSync(path.join(__dirname, year, month, 'statistics.md'), statistics, {encoding: 'UTF-8'})
|
||||||
|
}
|
||||||
|
|
Reference in New Issue