feat(core): Add SSH key generation (#6006)
* basic prefs and ssh key generation * review change * cleanup save * lint fix
This commit is contained in:
committed by
GitHub
parent
953198e092
commit
71ed1f410c
@@ -0,0 +1,38 @@
|
||||
import { Container } from 'typedi';
|
||||
import type { SuperAgentTest } from 'supertest';
|
||||
import type { User } from '@db/entities/User';
|
||||
import { License } from '@/License';
|
||||
import * as testDb from '../shared/testDb';
|
||||
import * as utils from '../shared/utils';
|
||||
import { VersionControlService } from '../../../src/environments/versionControl/versionControl.service.ee';
|
||||
|
||||
let owner: User;
|
||||
let authOwnerAgent: SuperAgentTest;
|
||||
|
||||
beforeAll(async () => {
|
||||
Container.get(License).isVersionControlLicensed = () => true;
|
||||
const app = await utils.initTestServer({ endpointGroups: ['versionControl'] });
|
||||
owner = await testDb.createOwner();
|
||||
authOwnerAgent = utils.createAuthAgent(app)(owner);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await testDb.terminate();
|
||||
});
|
||||
|
||||
describe('GET /versionControl/preferences', () => {
|
||||
test('should return Version Control preferences', async () => {
|
||||
await Container.get(VersionControlService).generateAndSaveKeyPair();
|
||||
await authOwnerAgent
|
||||
.get('/versionControl/preferences')
|
||||
.expect(200)
|
||||
.expect((res) => {
|
||||
return (
|
||||
'privateKey' in res.body &&
|
||||
'publicKey' in res.body &&
|
||||
res.body.publicKey.includes('ssh-ed25519') &&
|
||||
res.body.privateKey.includes('BEGIN OPENSSH PRIVATE KEY')
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -23,6 +23,7 @@ type EndpointGroup =
|
||||
| 'nodes'
|
||||
| 'ldap'
|
||||
| 'saml'
|
||||
| 'versionControl'
|
||||
| 'eventBus'
|
||||
| 'license'
|
||||
| 'variables';
|
||||
|
||||
@@ -82,6 +82,8 @@ import { SamlService } from '@/sso/saml/saml.service.ee';
|
||||
import { SamlController } from '@/sso/saml/routes/saml.controller.ee';
|
||||
import { EventBusController } from '@/eventbus/eventBus.controller';
|
||||
import { License } from '@/License';
|
||||
import { VersionControlService } from '@/environments/versionControl/versionControl.service.ee';
|
||||
import { VersionControlController } from '@/environments/versionControl/versionControl.controller.ee';
|
||||
|
||||
export const mockInstance = <T>(
|
||||
ctor: new (...args: any[]) => T,
|
||||
@@ -202,6 +204,14 @@ export async function initTestServer({
|
||||
const samlService = Container.get(SamlService);
|
||||
registerController(testServer.app, config, new SamlController(samlService));
|
||||
break;
|
||||
case 'versionControl':
|
||||
const versionControlService = Container.get(VersionControlService);
|
||||
registerController(
|
||||
testServer.app,
|
||||
config,
|
||||
new VersionControlController(versionControlService),
|
||||
);
|
||||
break;
|
||||
case 'nodes':
|
||||
registerController(
|
||||
testServer.app,
|
||||
|
||||
Reference in New Issue
Block a user