Forráskód Böngészése

feat: Use current user as commit author

NGPixel 8 éve
szülő
commit
8f3a6ed9f3
2 módosított fájl, 13 hozzáadás és 2 törlés
  1. 9 1
      server/helpers/security.js
  2. 4 1
      server/libs/git.js

+ 9 - 1
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
+    }
   }
 }

+ 4 - 1
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 }
       })
     })