Browse Source

feat: Use current user as commit author

pull/89/head
NGPixel 7 years ago
parent
commit
8f3a6ed9f3
2 changed files with 13 additions and 2 deletions
  1. 10
      server/helpers/security.js
  2. 5
      server/libs/git.js

10
server/helpers/security.js

@ -1,7 +1,15 @@
'use strict'
/* global appdata, appconfig */
const _ = require('lodash')
module.exports = {
sanitizeCommitUser (user) {
let wlist = new RegExp('(?!([^a-zA-Z0-9-_.\',& ]|' + appdata.regex.cjk.source + '))', 'g')
return {
name: _.chain(user.name).replace(wlist, '').trim().value(),
email: appconfig.git.showUserEmail ? user.email : appconfig.git.serverEmail
}
}
}

5
server/libs/git.js

@ -7,6 +7,8 @@ const fs = Promise.promisifyAll(require('fs'))
const _ = require('lodash')
const URL = require('url')
const securityHelper = require('../helpers/security')
/**
* Git Model
*/
@ -207,7 +209,8 @@ module.exports = {
commitMsg = (isTracked) ? 'Updated ' + gitFilePath : 'Added ' + gitFilePath
return self._git.add(gitFilePath)
}).then(() => {
return self._git.exec('commit', ['-m', commitMsg, '--author="' + author.name + ' <' + author.email + '>"']).catch((err) => {
let commitUsr = securityHelper.sanitizeCommitUser(author)
return self._git.exec('commit', ['-m', commitMsg, '--author="' + commitUsr.name + ' <' + commitUsr.email + '>"']).catch((err) => {
if (_.includes(err.stdout, 'nothing to commit')) { return true }
})
})

Loading…
Cancel
Save