Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps-dev): Bump eslint-plugin-sonarjs from 1.0.4 to 2.0.2 #282

Merged
merged 1 commit into from
Sep 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,11 @@
"header/header": [2, "block", [{ "pattern": "SPDX-License-Identifier: Apache-2\\.0" }]],
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
"unicorn/prefer-node-protocol": "error"
"unicorn/prefer-node-protocol": "error",
// redundant with @typescript-eslint/no-unused-vars
"sonarjs/no-ignored-exceptions": "off",
"sonarjs/todo-tag": "off",
// redundant with @typescript-eslint/no-misused-promises
"sonarjs/no-misused-promises" : "off"
}
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
"eslint-plugin-no-null": "^1.0.2",
"eslint-plugin-redundant-undefined": "^1.0.0",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-sonarjs": "^1.0.4",
"eslint-plugin-sonarjs": "^2.0.2",
"eslint-plugin-unicorn": "^55.0.0",
"mkdirp": "^3.0.1",
"prettier": "^3.3.3",
Expand Down
5,773 changes: 4,029 additions & 1,744 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/authentication-service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*
* SPDX-License-Identifier: Apache-2.0
***********************************************************************/
/* eslint-disable sonarjs/no-nested-functions */

import type { ExtensionContext } from '@podman-desktop/api';
import { authentication } from '@podman-desktop/api';
Expand Down
27 changes: 14 additions & 13 deletions src/authentication-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -265,20 +265,18 @@ export class RedHatAuthenticationService {
removed = this._tokens.map(convertToSession);
this.clearSessions().catch(console.error);
}
} else {
if (this._tokens.length) {
// Log out all, remove all local data
removed = this._tokens.map(convertToSession);
Logger.info('No stored keychain data, clearing local data');
} else if (this._tokens.length) {
// Log out all, remove all local data
removed = this._tokens.map(convertToSession);
Logger.info('No stored keychain data, clearing local data');

this._tokens = [];
this._tokens = [];

this._refreshTimeouts.forEach(timeout => {
clearTimeout(timeout);
});
this._refreshTimeouts.forEach(timeout => {
clearTimeout(timeout);
});

this._refreshTimeouts.clear();
}
this._refreshTimeouts.clear();
}

if (added.length || removed.length) {
Expand Down Expand Up @@ -331,6 +329,7 @@ export class RedHatAuthenticationService {
return Promise.all(this._tokens.map(token => this.convertToSession(token)));
}

// eslint-disable-next-line sonarjs/no-alphabetical-sort
const orderedScopes = [...scopes].sort().join(' ');
const matchingTokens = this._tokens.filter(token => token.scope === orderedScopes);
return Promise.all(matchingTokens.map(token => this.convertToSession(token)));
Expand All @@ -356,7 +355,7 @@ export class RedHatAuthenticationService {
throw err;
}

const host = redirectReq.req.headers.host || '';
const host = redirectReq.req.headers.host ?? '';
const updatedPortStr = (/^[^:]+:(\d+)$/.exec(Array.isArray(host) ? host[0] : host) || [])[1];
const updatedPort = updatedPortStr ? parseInt(updatedPortStr, 10) : port;

Expand Down Expand Up @@ -487,10 +486,12 @@ export class RedHatAuthenticationService {
idToken: tokenSet.id_token,
accessToken: tokenSet.access_token,
refreshToken: tokenSet.refresh_token!,
sessionId: existingId || tokenSet.session_state!,
sessionId: existingId ?? tokenSet.session_state!,
scope: scope,
account: {
id: claims.sub,
// not sure if claim can't be an empty string in some specific use cases
// eslint-disable-next-line sonarjs/prefer-nullish-coalescing
label: claims.preferred_username || claims.email || 'email not found',
},
};
Expand Down
1 change: 1 addition & 0 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,7 @@ export async function activate(context: extensionApi.ExtensionContext): Promise<
onDidChangeSessions: onDidChangeSessions.event,
createSession: async function (scopes: string[]): Promise<extensionApi.AuthenticationSession> {
const service = await getAuthenticationService();
// eslint-disable-next-line sonarjs/no-alphabetical-sort
const session = await service.createSession([...scopes].sort().join(' '));
onDidChangeSessions.fire({ added: [session] });
return session;
Expand Down
2 changes: 1 addition & 1 deletion src/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ type LogLevel = 'Trace' | 'Info' | 'Error';
class Log {
private data2String(data: any): string {
if (data instanceof Error) {
return data.stack || data.message;
return data.stack ?? data.message;
}
if (data.success === false && data.message) {
return data.message;
Expand Down
10 changes: 5 additions & 5 deletions src/podman-cli.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ test('runRpmInstallSubscription manager returns 0 when successful', async () =>
vi.mocked(podmanProcess.exec).mockResolvedValue(runResult);
const result = await runRpmInstallSubscriptionManager('machine1');
expect(result).toBe(runResult);
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.RPM_INSTALL_SM('machine1'));
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.rpmInstallSm('machine1'));
});

test('runRpmInstallSubscription manager returns none 0 error code when failed and send telemetry', async () => {
Expand Down Expand Up @@ -115,7 +115,7 @@ test('runSubscriptionManagerRegister returns 0 when successful', async () => {
expect(result).toBe(runResult);
expect(podmanProcess.exec).toBeCalledWith(
getPodmanCli(),
PODMAN_COMMANDS.SM_ACTIVATE_SUBS('machine1', 'activation-key-name', 'orgId'),
PODMAN_COMMANDS.smActivateSubs('machine1', 'activation-key-name', 'orgId'),
);
});

Expand Down Expand Up @@ -145,7 +145,7 @@ test('runCreateFactsFile returns 0 when successful', async () => {
expect(result).toBe(runResult);
expect(podmanProcess.exec).toBeCalledWith(
getPodmanCli(),
PODMAN_COMMANDS.CREATE_FACTS_FILE('machine1', '{"field":"value"}'),
PODMAN_COMMANDS.createFactFile('machine1', '{"field":"value"}'),
);
});

Expand Down Expand Up @@ -173,7 +173,7 @@ test('runStopPodmanMachine returns 0 when successful', async () => {
vi.mocked(podmanProcess.exec).mockResolvedValue(runResult);
const result = await runStopPodmanMachine('machine1');
expect(result).toBe(runResult);
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.MACHINE_STOP('machine1'));
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.machineStop('machine1'));
});

test('runStopPodmanMachine manager returns none 0 error code when failed and send telemetry', async () => {
Expand All @@ -200,7 +200,7 @@ test('runStartPodmanMachine returns 0 when successful', async () => {
vi.mocked(podmanProcess.exec).mockResolvedValue(runResult);
const result = await runStartPodmanMachine('machine1');
expect(result).toBe(runResult);
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.MACHINE_START('machine1'));
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.machineStart('machine1'));
});

test('runStartPodmanMachine manager returns none 0 error code when failed and send telemetry', async () => {
Expand Down
32 changes: 16 additions & 16 deletions src/podman-cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,20 @@ import { isMac, isWindows } from './util';
const macosExtraPath = '/usr/local/bin:/opt/homebrew/bin:/opt/local/bin:/opt/podman/bin';

export const PODMAN_COMMANDS = {
SM_VERSION: (machineName: string): string[] => `machine ssh ${machineName} sudo subscription-manager`.split(' '),
RPM_INSTALL_SM: (machineName: string): string[] =>
smVersion: (machineName: string): string[] => `machine ssh ${machineName} sudo subscription-manager`.split(' '),
rpmInstallSm: (machineName: string): string[] =>
`machine ssh ${machineName} sudo rpm-ostree install -y subscription-manager`.split(' '),
SM_ACTIVATION_STATUS: (machineName: string): string[] =>
smActgivationStatus: (machineName: string): string[] =>
`machine ssh ${machineName} sudo subscription-manager status`.split(' '),
SM_ACTIVATE_SUBS: (machineName: string, activationKeyName: string, orgId: string): string[] =>
smActivateSubs: (machineName: string, activationKeyName: string, orgId: string): string[] =>
`machine ssh ${machineName} sudo subscription-manager register --force --activationkey ${activationKeyName} --org ${orgId}`.split(
' ',
),
SM_DEACTIVATE_SUBS: (machineName: string): string[] =>
smDeactivateSubs: (machineName: string): string[] =>
`machine ssh ${machineName} sudo subscription-manager unregister`.split(' '),
MACHINE_STOP: (machineName: string): string[] => `machine stop ${machineName}`.split(' '),
MACHINE_START: (machineName: string): string[] => `machine start ${machineName}`.split(' '),
CREATE_FACTS_FILE: (machineName: string, oneLineJson: string): string[] => [
machineStop: (machineName: string): string[] => `machine stop ${machineName}`.split(' '),
machineStart: (machineName: string): string[] => `machine start ${machineName}`.split(' '),
createFactFile: (machineName: string, oneLineJson: string): string[] => [
'machine',
'ssh',
machineName,
Expand Down Expand Up @@ -123,22 +123,22 @@ function errTelemetryHandler(commandName: string, telemetryEventName: string, er
}

export async function runSubscriptionManager(machineName: string): Promise<number> {
return runCommand('Subscription manager execution', PODMAN_COMMANDS.SM_VERSION(machineName), errToExitCodeHandler);
return runCommand('Subscription manager execution', PODMAN_COMMANDS.smVersion(machineName), errToExitCodeHandler);
}

export async function runRpmInstallSubscriptionManager(machineName: string): Promise<RunResult> {
return runCommandAndSendTelemetry(
'Subscription manager installation',
'subscriptionManagerInstallationError',
PODMAN_COMMANDS.RPM_INSTALL_SM(machineName),
PODMAN_COMMANDS.rpmInstallSm(machineName),
errTelemetryHandler,
);
}

export async function runSubscriptionManagerActivationStatus(machineName: string): Promise<number> {
return runCommand(
'Subscription manager subscription activation check',
PODMAN_COMMANDS.SM_ACTIVATION_STATUS(machineName),
PODMAN_COMMANDS.smActgivationStatus(machineName),
errToExitCodeHandler,
);
}
Expand All @@ -151,7 +151,7 @@ export async function runSubscriptionManagerRegister(
return runCommandAndSendTelemetry(
'Subscription manager registration',
'subscriptionManagerRegisterError',
PODMAN_COMMANDS.SM_ACTIVATE_SUBS(machineName, activationKeyName, orgId),
PODMAN_COMMANDS.smActivateSubs(machineName, activationKeyName, orgId),
errTelemetryHandler,
);
}
Expand All @@ -160,7 +160,7 @@ export async function runSubscriptionManagerUnregister(machineName: string): Pro
return runCommandAndSendTelemetry(
'Subscription manager unregister',
'subscriptionManagerUnregisterError',
PODMAN_COMMANDS.SM_DEACTIVATE_SUBS(machineName),
PODMAN_COMMANDS.smDeactivateSubs(machineName),
errTelemetryHandler,
);
}
Expand All @@ -169,7 +169,7 @@ export async function runCreateFactsFile(machineName: string, jsonText: string):
return runCommandAndSendTelemetry(
'Writing /etc/rhsm/facts/podman-desktop-redhat-account-ext.facts',
'subscriptionManagerCreateFactsFileError',
PODMAN_COMMANDS.CREATE_FACTS_FILE(machineName, jsonText.replace('\n', '\\n')),
PODMAN_COMMANDS.createFactFile(machineName, jsonText.replace('\n', '\\n')),
errTelemetryHandler,
);
}
Expand All @@ -178,7 +178,7 @@ export async function runStopPodmanMachine(machineName: string): Promise<RunResu
return runCommandAndSendTelemetry(
'Podman machine stop',
'stopPodmanMachineError',
PODMAN_COMMANDS.MACHINE_STOP(machineName),
PODMAN_COMMANDS.machineStop(machineName),
errTelemetryHandler,
);
}
Expand All @@ -187,7 +187,7 @@ export async function runStartPodmanMachine(machineName): Promise<RunResult> {
return runCommandAndSendTelemetry(
'Podman machine start',
'startPodmanMachineError',
PODMAN_COMMANDS.MACHINE_START(machineName),
PODMAN_COMMANDS.machineStart(machineName),
errTelemetryHandler,
);
}
Expand Down
1 change: 1 addition & 0 deletions tests/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"compilerOptions": {
"strictNullChecks": true,
"lib": [ "ES2017", "webworker" ],
"module": "esnext",
"target": "esnext",
Expand Down
1 change: 1 addition & 0 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"compilerOptions": {
"strict": true,
"strictNullChecks": true,
"lib": [ "ES2017", "webworker" ],
"module": "esnext",
"target": "esnext",
Expand Down
Loading