diff --git a/client/components/admin/admin-utilities-importv1.vue b/client/components/admin/admin-utilities-importv1.vue index 16c582c6..590816cf 100644 --- a/client/components/admin/admin-utilities-importv1.vue +++ b/client/components/admin/admin-utilities-importv1.vue @@ -44,7 +44,7 @@ hide-details color='primary' ) - v-col(cols='8') + v-col(:cols='gitAuthMode === `ssh` ? 6 : 8') v-text-field( outlined label='Repository URL' @@ -52,6 +52,14 @@ hide-details v-model='gitRepoUrl' ) + v-col(v-if='gitAuthMode === `ssh`', cols='2') + v-text-field( + label='Port' + placeholder='e.g. 22' + v-model='gitRepoPort' + outlined + hide-details + ) v-col(cols='4') v-text-field( label='Branch' @@ -296,6 +304,7 @@ export default { ], gitVerifySSL: true, gitRepoUrl: '', + gitRepoPort: 22, gitRepoBranch: 'master', gitPrivKey: '', gitUsername: '', @@ -387,6 +396,7 @@ export default { { key: 'authType', value: { value: this.gitAuthMode } }, { key: 'repoUrl', value: { value: this.gitRepoUrl } }, { key: 'branch', value: { value: this.gitRepoBranch } }, + { key: 'sshPort', value: { value: this.gitRepoPort } }, { key: 'sshPrivateKeyMode', value: { value: 'contents' } }, { key: 'sshPrivateKeyPath', value: { value: '' } }, { key: 'sshPrivateKeyContent', value: { value: this.gitPrivKey } }, diff --git a/server/modules/storage/git/storage.js b/server/modules/storage/git/storage.js index 0e2c1bee..efc77e42 100644 --- a/server/modules/storage/git/storage.js +++ b/server/modules/storage/git/storage.js @@ -77,7 +77,7 @@ module.exports = { throw err } } - if (this.config.sshPort <= 0) { + if (!this.config.sshPort || !_.isSafeInteger(this.config.sshPort) || this.config.sshPort <= 0) { this.config.sshPort = 22 } await this.git.addConfig('core.sshCommand', `ssh -i "${this.config.sshPrivateKeyPath}" -o StrictHostKeyChecking=no -p ${this.config.sshPort}`)