Skip to content

Commit 159ccc6

Browse files
test removing axios
Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
1 parent 8b872b8 commit 159ccc6

5 files changed

Lines changed: 28 additions & 53 deletions

File tree

code/extensions/che-api/package-lock.json

Lines changed: 0 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

code/extensions/che-api/package.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,22 @@
3131
},
3232
"dependencies": {
3333
"@devfile/api": "^2.3.0-1738854228",
34-
"axios": "^1.13.5",
34+
"@eclipse-che/workspace-telemetry-client": "^0.0.1-1685523760",
3535
"@kubernetes/client-node": "^1.4.0",
3636
"fs-extra": "^11.2.0",
3737
"inversify": "^6.0.2",
3838
"js-yaml": "^4.1.0",
3939
"reflect-metadata": "^0.2.2",
40-
"vscode-nls": "^5.0.0",
41-
"@eclipse-che/workspace-telemetry-client": "^0.0.1-1685523760"
40+
"vscode-nls": "^5.0.0"
4241
},
4342
"devDependencies": {
4443
"@types/fs-extra": "^9.0.13",
4544
"@types/jest": "^29.5.0",
4645
"@types/js-yaml": "^4.0.5",
4746
"@types/node": "22.x",
4847
"jest": "29.7.0",
49-
"typescript": "^5.9.2",
5048
"ts-jest": "29.4.5",
49+
"typescript": "^5.9.2",
5150
"webpack-node-externals": "^3.0.0"
5251
},
5352
"overrides": {

code/extensions/che-api/src/extension.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import { GithubService } from './api/github-service';
3030
import { GithubServiceImpl } from './impl/github-service-impl';
3131
import { TelemetryService } from './api/telemetry-service';
3232
import { K8sTelemetryServiceImpl } from './impl/k8s-telemetry-service-impl';
33-
import * as axios from 'axios';
3433
import { Logger } from './logger';
3534

3635

@@ -43,7 +42,6 @@ export async function activate(_extensionContext: vscode.ExtensionContext): Prom
4342
container.bind(K8SServiceImpl).toSelf().inSingletonScope();
4443
container.bind(K8SService).to(K8SServiceImpl).inSingletonScope();
4544
container.bind(K8sDevWorkspaceEnvVariables).toSelf().inSingletonScope();
46-
container.bind(Symbol.for('AxiosInstance')).toConstantValue(axios);
4745
container.bind(GithubServiceImpl).toSelf().inSingletonScope();
4846
container.bind(GithubService).to(GithubServiceImpl).inSingletonScope();
4947
container.bind(TelemetryService).to(K8sTelemetryServiceImpl).inSingletonScope();

code/extensions/che-api/src/impl/github-service-impl.ts

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
/* eslint-disable header/header */
1212

1313
import * as k8s from '@kubernetes/client-node';
14-
import { AxiosInstance } from 'axios';
1514
import * as fs from 'fs-extra';
1615
import { inject, injectable } from 'inversify';
1716
import * as path from 'path';
@@ -39,8 +38,7 @@ export class GithubServiceImpl implements GithubService {
3938

4039
constructor(
4140
@inject(Logger) private logger: Logger,
42-
@inject(K8SServiceImpl) private readonly k8sService: K8SServiceImpl,
43-
@inject(Symbol.for('AxiosInstance')) private readonly axiosInstance: AxiosInstance
41+
@inject(K8SServiceImpl) private readonly k8sService: K8SServiceImpl
4442
) {
4543
this.initializeToken();
4644
}
@@ -58,18 +56,31 @@ export class GithubServiceImpl implements GithubService {
5856

5957
async getUser(): Promise<GithubUser> {
6058
this.checkToken();
61-
const result = await this.axiosInstance.get<GithubUser>('https://api.github.com/user', {
62-
headers: { Authorization: `Bearer ${this.token}` },
63-
});
64-
return result.data;
59+
const result = await this.fetchGithubUser(this.token!);
60+
return result.user;
6561
}
6662

6763
async getTokenScopes(token: string): Promise<string[]> {
6864
this.checkToken();
69-
const result = await this.axiosInstance.get<GithubUser>('https://api.github.com/user', {
65+
const result = await this.fetchGithubUser(token);
66+
return result.scopes;
67+
}
68+
69+
private async fetchGithubUser(token: string): Promise<{ user: GithubUser; scopes: string[] }> {
70+
const response = await fetch('https://api.github.com/user', {
7071
headers: { Authorization: `Bearer ${token}` },
7172
});
72-
return result.headers['x-oauth-scopes'].split(', ');
73+
if (!response.ok) {
74+
const message = await response.text();
75+
throw new Error(`GitHub user request failed: ${response.status} ${response.statusText} - ${message}`);
76+
}
77+
const user = await response.json() as GithubUser;
78+
const scopesHeader = response.headers.get('x-oauth-scopes') ?? '';
79+
const scopes = scopesHeader
80+
.split(', ')
81+
.map(scope => scope.trim())
82+
.filter(scope => scope.length > 0);
83+
return { user, scopes };
7384
}
7485

7586
async persistDeviceAuthToken(token: string): Promise<void> {

code/extensions/che-api/src/impl/k8s-workspace-service-impl.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
import * as k8s from '@kubernetes/client-node';
1414
import { inject, injectable } from 'inversify';
15-
import { AxiosInstance } from "axios";
1615
import { K8SServiceImpl } from './k8s-service-impl';
1716
import { K8sDevWorkspaceEnvVariables } from './k8s-devworkspace-env-variables';
1817
import { WorkspaceService } from '../api/workspace-service';
@@ -25,9 +24,6 @@ export class K8sWorkspaceServiceImpl implements WorkspaceService {
2524
@inject(K8sDevWorkspaceEnvVariables)
2625
private env!: K8sDevWorkspaceEnvVariables;
2726

28-
@inject(Symbol.for('AxiosInstance'))
29-
private axiosInstance!: AxiosInstance;
30-
3127
public async getNamespace(): Promise<string> {
3228
return this.env.getWorkspaceNamespace();
3329
}
@@ -54,7 +50,11 @@ export class K8sWorkspaceServiceImpl implements WorkspaceService {
5450
}
5551

5652
const requestUrl = `http://127.0.0.1:${process.env.MACHINE_EXEC_PORT}/activity/tick`;
57-
await this.axiosInstance.post(requestUrl);
53+
const response = await fetch(requestUrl, { method: 'POST' });
54+
if (!response.ok) {
55+
const message = await response.text();
56+
throw new Error(`Activity tick request failed: ${response.status} ${response.statusText} - ${message}`);
57+
}
5858
}
5959

6060
// stopping the workspace is changing the started state to false

0 commit comments

Comments
 (0)