mirror of
https://github.com/whyour/qinglong.git
synced 2025-05-24 07:16:08 +08:00
修复删除私钥
This commit is contained in:
parent
a3114e40d1
commit
deb124ae23
|
@ -14,7 +14,10 @@ export default class SshKeyService {
|
|||
|
||||
private generatePrivateKeyFile(alias: string, key: string): void {
|
||||
try {
|
||||
fs.writeFileSync(`${this.sshPath}/${alias}`, key, { encoding: 'utf8' });
|
||||
fs.writeFileSync(`${this.sshPath}/${alias}`, key, {
|
||||
encoding: 'utf8',
|
||||
mode: '400',
|
||||
});
|
||||
} catch (error) {
|
||||
this.logger.error('生成私钥文件失败', error);
|
||||
}
|
||||
|
@ -37,7 +40,6 @@ export default class SshKeyService {
|
|||
for (const config of configs) {
|
||||
fs.appendFileSync(this.sshConfigFilePath, config, {
|
||||
encoding: 'utf8',
|
||||
mode: '400',
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
|
@ -47,10 +49,13 @@ export default class SshKeyService {
|
|||
|
||||
private removeSshConfig(config: string) {
|
||||
try {
|
||||
fs.readFileSync(this.sshConfigFilePath, { encoding: 'utf8' }).replace(
|
||||
config,
|
||||
'',
|
||||
);
|
||||
const data = fs
|
||||
.readFileSync(this.sshConfigFilePath, { encoding: 'utf8' })
|
||||
.replace(config, '')
|
||||
.replace(/\n\n+/, '\n\n');
|
||||
fs.writeFileSync(this.sshConfigFilePath, data, {
|
||||
encoding: 'utf8',
|
||||
});
|
||||
} catch (error) {
|
||||
this.logger.error(`删除ssh配置文件${config}失败`, error);
|
||||
}
|
||||
|
|
|
@ -96,7 +96,7 @@ export default class SubscriptionService {
|
|||
|
||||
private formatCommand(doc: Subscription, url?: string) {
|
||||
let command = 'ql ';
|
||||
let _url = url || doc.url;
|
||||
let _url = url || this.formatUrl(doc).url;
|
||||
const { type, whitelist, blacklist, dependences, branch } = doc;
|
||||
if (type === 'file') {
|
||||
command += `raw "${_url}"`;
|
||||
|
@ -108,12 +108,25 @@ export default class SubscriptionService {
|
|||
return command;
|
||||
}
|
||||
|
||||
private handleTask(doc: Subscription, needCreate = true, needAddKey = true) {
|
||||
private formatUrl(doc: Subscription) {
|
||||
let url = doc.url;
|
||||
let host = '';
|
||||
if (doc.type === 'private-repo') {
|
||||
if (doc.pull_type === 'ssh-key') {
|
||||
const host = doc.url!.replace(/.*\@([^\:]+)\:.*/, '$1');
|
||||
host = doc.url!.replace(/.*\@([^\:]+)\:.*/, '$1');
|
||||
url = doc.url!.replace(host, doc.alias);
|
||||
} else {
|
||||
host = doc.url!.replace(/.*\:\/\/([^\/]+)\/.*/, '$1');
|
||||
const { username, password } = doc.pull_option as any;
|
||||
url = doc.url!.replace(host, `${username}:${password}@${host}`);
|
||||
}
|
||||
}
|
||||
return { url, host };
|
||||
}
|
||||
|
||||
private handleTask(doc: Subscription, needCreate = true, needAddKey = true) {
|
||||
const { url, host } = this.formatUrl(doc);
|
||||
if (doc.type === 'private-repo' && doc.pull_type === 'ssh-key') {
|
||||
if (needAddKey) {
|
||||
this.sshKeyService.addSSHKey(
|
||||
(doc.pull_option as any).private_key,
|
||||
|
@ -123,11 +136,6 @@ export default class SubscriptionService {
|
|||
} else {
|
||||
this.sshKeyService.removeSSHKey(doc.alias, host);
|
||||
}
|
||||
} else {
|
||||
const host = doc.url!.replace(/.*\:\/\/([^\/]+)\/.*/, '$1');
|
||||
const { username, password } = doc.pull_option as any;
|
||||
url = doc.url!.replace(host, `${username}:${password}@${host}`);
|
||||
}
|
||||
}
|
||||
|
||||
doc.command = this.formatCommand(doc, url as string);
|
||||
|
|
Loading…
Reference in New Issue
Block a user