fix: git private key alt paste mode
This commit is contained in:
		| @@ -27,16 +27,19 @@ props: | ||||
|     type: String | ||||
|     title: Certificate | ||||
|     hint: (Optional) - Public PEM-encoded X.509 signing certificate. If the provider has multiple certificates that are valid, join them together using the | pipe symbol. | ||||
|     multiline: true | ||||
|     order: 4 | ||||
|   privateCert: | ||||
|     type: String | ||||
|     title: Private Certificate | ||||
|     hint: (Optional) - PEM formatted key used to sign the certificate. | ||||
|     multiline: true | ||||
|     order: 5 | ||||
|   decryptionPvk: | ||||
|     type: String | ||||
|     title: Decryption Private Key | ||||
|     hint: (Optional) - Private key that will be used to attempt to decrypt any encrypted assertions that are received. | ||||
|     multiline: true | ||||
|     order: 6 | ||||
|   signatureAlgorithm: | ||||
|     type: String | ||||
|   | ||||
| @@ -29,51 +29,68 @@ props: | ||||
|   branch: | ||||
|     type: String | ||||
|     default: 'master' | ||||
|     hint: The branch to use during pull / push | ||||
|     order: 3 | ||||
|   sshPrivateKeyMode: | ||||
|     type: String | ||||
|     title: SSH Private Key Mode | ||||
|     hint: SSH Authentication Only - The mode to use to load the private key. Fill in the corresponding field below. | ||||
|     order: 11 | ||||
|     default: 'path' | ||||
|     enum: | ||||
|         - 'path' | ||||
|         - 'contents' | ||||
|   sshPrivateKeyPath: | ||||
|     type: String | ||||
|     title: A - SSH Private Key Path | ||||
|     hint: SSH Authentication Only - Absolute path to the key. The key must NOT be passphrase-protected. Mode must be set to path to use this option. | ||||
|     order: 12 | ||||
|   sshPrivateKeyContent: | ||||
|     type: String | ||||
|     title: B - SSH Private Key Contents | ||||
|     hint: SSH Authentication Only - Paste the contents of the private key. The key must NOT be passphrase-protected. Mode must be set to contents to use this option. | ||||
|     multiline: true | ||||
|     order: 13 | ||||
|   verifySSL: | ||||
|     type: Boolean | ||||
|     default: true | ||||
|     title: Verify SSL Certificate | ||||
|     hint: Some hosts requires SSL certificate checking to be disabled. Leave enabled for proper security. | ||||
|     order: 31 | ||||
|   sshPrivateKeyPath: | ||||
|     type: String | ||||
|     title: SSH Private Key Path | ||||
|     hint: SSH Authentication Only - Absolute path to the key. The key must NOT be passphrase-protected. | ||||
|     order: 10 | ||||
|     order: 14 | ||||
|   basicUsername: | ||||
|     type: String | ||||
|     title: Username | ||||
|     hint: Basic Authentication Only | ||||
|     order: 11 | ||||
|     order: 20 | ||||
|   basicPassword: | ||||
|     type: String | ||||
|     title: Password / PAT | ||||
|     hint: Basic Authentication Only | ||||
|     order: 12 | ||||
|     order: 21 | ||||
|   defaultEmail: | ||||
|     type: String | ||||
|     title: Default Author Email | ||||
|     default: 'name@company.com' | ||||
|     hint: 'Used as fallback in case the author of the change is not present.' | ||||
|     order: 22 | ||||
|   defaultName: | ||||
|     type: String | ||||
|     title: Default Author Name | ||||
|     default: 'John Smith' | ||||
|     hint: 'Used as fallback in case the author of the change is not present.' | ||||
|     order: 23 | ||||
|   localRepoPath: | ||||
|     type: String | ||||
|     title: Local Repository Path | ||||
|     default: './data/repo' | ||||
|     hint: 'Path where the local git repository will be created.' | ||||
|     order: 30 | ||||
|   defaultEmail: | ||||
|     type: String | ||||
|     title: Default Author Email | ||||
|     default: 'name@company.com' | ||||
|     hint: 'Used as fallback in case the author of the change is not present.' | ||||
|     order: 20 | ||||
|   defaultName: | ||||
|     type: String | ||||
|     title: Default Author Name | ||||
|     default: 'John Smith' | ||||
|     hint: 'Used as fallback in case the author of the change is not present.' | ||||
|     order: 21 | ||||
|   gitBinaryPath: | ||||
|     type: String | ||||
|     title: Git Binary Path | ||||
|     default: '' | ||||
|     hint: Optional - Absolute path to the Git binary, when not available in PATH. Leave empty to use the default PATH location (recommended). | ||||
|     order: 50 | ||||
| actions: | ||||
|   - handler: syncUntracked | ||||
|     label: Add Untracked Changes | ||||
|   | ||||
| @@ -104,6 +104,18 @@ module.exports = { | ||||
|     switch (this.config.authType) { | ||||
|       case 'ssh': | ||||
|         WIKI.logger.info('(STORAGE/GIT) Setting SSH Command config...') | ||||
|         if (this.config.sshPrivateKeyMode === 'contents') { | ||||
|           try { | ||||
|             this.config.sshPrivateKeyPath = path.join(WIKI.ROOTPATH, 'data/secure/git-ssh.pem') | ||||
|             await fs.outputFile(this.config.sshPrivateKeyPath, this.config.sshPrivateKeyContent, { | ||||
|               encoding: 'utf8', | ||||
|               mode: 0o600 | ||||
|             }) | ||||
|           } catch (err) { | ||||
|             console.error(err) | ||||
|             throw err | ||||
|           } | ||||
|         } | ||||
|         await this.git.addConfig('core.sshCommand', `ssh -i "${this.config.sshPrivateKeyPath}" -o StrictHostKeyChecking=no`) | ||||
|         WIKI.logger.info('(STORAGE/GIT) Adding origin remote via SSH...') | ||||
|         await this.git.addRemote('origin', this.config.repoUrl) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user