Skip to content

Commit 11e792c

Browse files
committed
[gitlab] bump gitlab API library
1 parent 6c669f7 commit 11e792c

File tree

4 files changed

+91
-66
lines changed

4 files changed

+91
-66
lines changed

components/server/ee/src/gitlab/gitlab-app-support.ts

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,7 @@ import { inject, injectable } from "inversify";
99
import { TokenProvider } from "../../../src/user/token-provider";
1010
import { UserDB } from "@gitpod/gitpod-db/lib";
1111
import { Gitlab } from "@gitbeaker/node";
12-
import { ProjectSchemaDefault, NamespaceInfoSchemaDefault } from "@gitbeaker/core/dist/types/services/Projects";
13-
14-
// Add missing fields to Gitbeaker's ProjectSchema type
15-
type ProjectSchema = ProjectSchemaDefault & {
16-
last_activity_at: string;
17-
namespace: NamespaceInfoSchemaDefault & {
18-
avatar_url: string | null;
19-
parent_id: number | null;
20-
};
21-
owner?: {
22-
id: number;
23-
name: string;
24-
avatar_url: string | null;
25-
};
26-
};
12+
import { GitLab } from "../../../src/gitlab/api";
2713

2814
@injectable()
2915
export class GitLabAppSupport {
@@ -51,9 +37,13 @@ export class GitLabAppSupport {
5137
// we are listing only those projects with access level of maintainers.
5238
// also cf. https://docs.gitlab.com/ee/api/members.html#valid-access-levels
5339
//
54-
const projectsWithAccess = await api.Projects.all({ min_access_level: "40", perPage: 100 });
40+
const projectsWithAccess = await api.Projects.all({
41+
min_access_level: "40",
42+
perPage: 100,
43+
pagination: "keyset",
44+
});
5545
for (const project of projectsWithAccess) {
56-
const aProject = project as ProjectSchema;
46+
const aProject = project as GitLab.Project;
5747
const path = aProject.path as string;
5848
const fullPath = aProject.path_with_namespace as string;
5949
const cloneUrl = aProject.http_url_to_repo as string;
@@ -77,7 +67,7 @@ export class GitLabAppSupport {
7767
return result;
7868
}
7969

80-
protected async getAccountAvatarUrl(project: ProjectSchema, providerHost: string): Promise<string> {
70+
protected async getAccountAvatarUrl(project: GitLab.Project, providerHost: string): Promise<string> {
8171
let owner = project.owner;
8272
if (!owner && project.namespace && !project.namespace.parent_id) {
8373
// Fall back to "root namespace" / "top-level group"

components/server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"/dist"
2828
],
2929
"dependencies": {
30-
"@gitbeaker/node": "^25.6.0",
30+
"@gitbeaker/node": "^35.7.0",
3131
"@gitpod/content-service": "0.1.5",
3232
"@gitpod/gitpod-db": "0.1.5",
3333
"@gitpod/gitpod-messagebus": "0.1.5",

components/server/src/gitlab/api.ts

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ import {
2020
Issues,
2121
RepositoryFiles,
2222
} from "@gitbeaker/core";
23-
import { ProjectSchemaDefault } from "@gitbeaker/core/dist/types/services/Projects";
24-
import { UserSchemaDefault } from "@gitbeaker/core/dist/types/services/Users";
23+
import { ProjectExtendedSchema } from "@gitbeaker/core/dist/types/resources/Projects";
24+
import { NamespaceSchema } from "@gitbeaker/core/dist/types/resources/Namespaces";
25+
import { UserExtendedSchema, UserSchema } from "@gitbeaker/core/dist/types/resources/Users";
2526
import { log } from "@gitpod/gitpod-protocol/lib/util/logging";
2627
import { GitLabScope } from "./scopes";
2728
import { AuthProviderParams } from "../auth/auth-provider";
@@ -87,7 +88,9 @@ export class GitLabApi {
8788
path: string,
8889
): Promise<string | undefined> {
8990
const projectId = `${org}/${name}`;
90-
const result = await this.run<string>(user, (api) => api.RepositoryFiles.showRaw(projectId, path, commitish));
91+
const result = await this.run<string>(user, (api) =>
92+
api.RepositoryFiles.showRaw(projectId, path, { ref: commitish }),
93+
);
9194
if (GitLab.ApiError.is(result)) {
9295
return undefined; // e.g. 404 error, because the file isn't found
9396
}
@@ -132,14 +135,17 @@ export namespace GitLab {
132135
/**
133136
* https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/projects.md#get-single-project
134137
*/
135-
export interface Project extends ProjectSchemaDefault {
138+
export interface Project extends ProjectExtendedSchema {
136139
visibility: "public" | "private" | "internal";
137140
archived: boolean;
138141
path: string; // "diaspora-project-site"
139142
path_with_namespace: string; // "diaspora/diaspora-project-site"
140143
creator_id: number;
141-
owner: User;
142-
permissions: Permissions;
144+
namespace: Pick<
145+
NamespaceSchema,
146+
"id" | "name" | "path" | "kind" | "full_path" | "avatar_url" | "web_url" | "avatar_url" | "parent_id"
147+
>;
148+
owner: Pick<UserSchema, "id" | "name" | "created_at" | "avatar_url">;
143149
merge_requests_enabled: boolean;
144150
issues_enabled: boolean;
145151
open_issues_count: number;
@@ -219,11 +225,11 @@ export namespace GitLab {
219225
merge_requests_count: number;
220226
}
221227
// https://docs.gitlab.com/ee/api/users.html#list-current-user-for-normal-users
222-
export interface User extends UserSchemaDefault {
228+
export interface User extends UserExtendedSchema {
223229
email: string;
224230
state: "active" | string;
225-
confirmed_at: string | undefined;
226-
private_profile: boolean;
231+
// confirmed_at: string | undefined;
232+
// private_profile: boolean;
227233
}
228234
export interface Permissions {
229235
project_access?: {

yarn.lock

Lines changed: 67 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1353,33 +1353,36 @@
13531353
resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz"
13541354
integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
13551355

1356-
"@gitbeaker/core@^25.6.0":
1357-
version "25.6.0"
1358-
resolved "https://registry.npmjs.org/@gitbeaker/core/-/core-25.6.0.tgz"
1359-
integrity sha512-+CohJNsbZiPl7jPgw7PHt5t0JIIV9NngObOskY1Ww8jef7SqaKpz0NsbSDawuWFBdmXApMpK81AEfASKtVI+cw==
1356+
"@gitbeaker/core@^35.7.0":
1357+
version "35.7.0"
1358+
resolved "https://registry.yarnpkg.com/@gitbeaker/core/-/core-35.7.0.tgz#426e426dff597c1d094bf1fe66fb1109980e816d"
1359+
integrity sha512-1N9QcHElYa1NuLhX9mJJ6tnL7wbCsK8Naj2kLXwNC4qyEcDhMiJDnI3YoqNIXSzPTufoNUAbgIsc/h/JmO17/A==
13601360
dependencies:
1361-
"@gitbeaker/requester-utils" "^25.6.0"
1362-
form-data "^3.0.0"
1361+
"@gitbeaker/requester-utils" "^35.7.0"
1362+
form-data "^4.0.0"
13631363
li "^1.3.0"
1364+
mime "^3.0.0"
1365+
query-string "^7.0.0"
13641366
xcase "^2.0.1"
13651367

1366-
"@gitbeaker/node@^25.6.0":
1367-
version "25.6.0"
1368-
resolved "https://registry.npmjs.org/@gitbeaker/node/-/node-25.6.0.tgz"
1369-
integrity sha512-zv7BVmphyOUtIkwU8/iH8z6F8AC2Hy56f/DpwhgB602qhKDRFwf/d7wze7VD5j65i0kIzgnSrxgdtosW7V9wsw==
1368+
"@gitbeaker/node@^35.7.0":
1369+
version "35.7.0"
1370+
resolved "https://registry.yarnpkg.com/@gitbeaker/node/-/node-35.7.0.tgz#ba4ece7aff388132bdcab8d6fb08c8d063a70e7d"
1371+
integrity sha512-zh215EUloAxj2gwTHevBVypEiiwQR0WsFLGPWJwY+yUFJVQRcya+3mcsDbxgCLAk00wwhrTVYyNppvmoYbEZNg==
13701372
dependencies:
1371-
"@gitbeaker/core" "^25.6.0"
1372-
"@gitbeaker/requester-utils" "^25.6.0"
1373-
got "^11.7.0"
1373+
"@gitbeaker/core" "^35.7.0"
1374+
"@gitbeaker/requester-utils" "^35.7.0"
1375+
delay "^5.0.0"
1376+
got "^11.8.3"
13741377
xcase "^2.0.1"
13751378

1376-
"@gitbeaker/requester-utils@^25.6.0":
1377-
version "25.6.0"
1378-
resolved "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-25.6.0.tgz"
1379-
integrity sha512-jD8cHbAZPR6+cB3HiukQxcqIKF5VkHtqg2m+Ns6ROE1pb0oRn10D/a9J1lZOXC9Jz2tQOBMWfHlplbmFFdB6Og==
1379+
"@gitbeaker/requester-utils@^35.7.0":
1380+
version "35.7.0"
1381+
resolved "https://registry.yarnpkg.com/@gitbeaker/requester-utils/-/requester-utils-35.7.0.tgz#7c1ded70a10ac890322f22488ffea8a3a41ccc79"
1382+
integrity sha512-SDYKhL+XUrslpVwUumkCf4I4Ubf+lvzdghCYPwBt/og5kZIorFVbHCxRmtr5bO+iC9nrVNfg24sdoe51vDGn1w==
13801383
dependencies:
1381-
form-data "^3.0.0"
1382-
query-string "^6.13.3"
1384+
form-data "^4.0.0"
1385+
qs "^6.10.1"
13831386
xcase "^2.0.1"
13841387

13851388
"@google-cloud/common@^3.7.4":
@@ -5149,7 +5152,7 @@ cacheable-request@^6.0.0:
51495152
normalize-url "^4.1.0"
51505153
responselike "^1.0.2"
51515154

5152-
cacheable-request@^7.0.1:
5155+
cacheable-request@^7.0.1, cacheable-request@^7.0.2:
51535156
version "7.0.2"
51545157
resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz"
51555158
integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==
@@ -6838,6 +6841,11 @@ del@^4.1.1:
68386841
pify "^4.0.1"
68396842
rimraf "^2.6.3"
68406843

6844+
delay@^5.0.0:
6845+
version "5.0.0"
6846+
resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d"
6847+
integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==
6848+
68416849
delayed-stream@~1.0.0:
68426850
version "1.0.0"
68436851
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
@@ -8442,6 +8450,15 @@ form-data@^3.0.0:
84428450
combined-stream "^1.0.8"
84438451
mime-types "^2.1.12"
84448452

8453+
form-data@^4.0.0:
8454+
version "4.0.0"
8455+
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
8456+
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
8457+
dependencies:
8458+
asynckit "^0.4.0"
8459+
combined-stream "^1.0.8"
8460+
mime-types "^2.1.12"
8461+
84458462
form-data@~2.3.2:
84468463
version "2.3.3"
84478464
resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"
@@ -8933,6 +8950,23 @@ got@^11.7.0:
89338950
p-cancelable "^2.0.0"
89348951
responselike "^2.0.0"
89358952

8953+
got@^11.8.3:
8954+
version "11.8.5"
8955+
resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046"
8956+
integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==
8957+
dependencies:
8958+
"@sindresorhus/is" "^4.0.0"
8959+
"@szmarczak/http-timer" "^4.0.5"
8960+
"@types/cacheable-request" "^6.0.1"
8961+
"@types/responselike" "^1.0.0"
8962+
cacheable-lookup "^5.0.3"
8963+
cacheable-request "^7.0.2"
8964+
decompress-response "^6.0.0"
8965+
http2-wrapper "^1.0.0-beta.5.2"
8966+
lowercase-keys "^2.0.0"
8967+
p-cancelable "^2.0.0"
8968+
responselike "^2.0.0"
8969+
89368970
got@^9.6.0:
89378971
version "9.6.0"
89388972
resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz"
@@ -11808,6 +11842,11 @@ mime@^2.2.0, mime@^2.4.4:
1180811842
resolved "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz"
1180911843
integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
1181011844

11845+
mime@^3.0.0:
11846+
version "3.0.0"
11847+
resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7"
11848+
integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==
11849+
1181111850
mimic-fn@^2.0.0, mimic-fn@^2.1.0:
1181211851
version "2.1.0"
1181311852
resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
@@ -14681,6 +14720,13 @@ [email protected]:
1468114720
resolved "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz"
1468214721
integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==
1468314722

14723+
qs@^6.10.1, qs@^6.9.4:
14724+
version "6.11.0"
14725+
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
14726+
integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
14727+
dependencies:
14728+
side-channel "^1.0.4"
14729+
1468414730
qs@^6.10.3:
1468514731
version "6.10.3"
1468614732
resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz"
@@ -14695,13 +14741,6 @@ qs@^6.5.1:
1469514741
dependencies:
1469614742
side-channel "^1.0.4"
1469714743

14698-
qs@^6.9.4:
14699-
version "6.11.0"
14700-
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
14701-
integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
14702-
dependencies:
14703-
side-channel "^1.0.4"
14704-
1470514744
qs@~6.5.2:
1470614745
version "6.5.3"
1470714746
resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz"
@@ -14715,17 +14754,7 @@ query-string@^4.1.0:
1471514754
object-assign "^4.1.0"
1471614755
strict-uri-encode "^1.0.0"
1471714756

14718-
query-string@^6.13.3:
14719-
version "6.14.1"
14720-
resolved "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz"
14721-
integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==
14722-
dependencies:
14723-
decode-uri-component "^0.2.0"
14724-
filter-obj "^1.1.0"
14725-
split-on-first "^1.0.0"
14726-
strict-uri-encode "^2.0.0"
14727-
14728-
query-string@^7.1.1:
14757+
query-string@^7.0.0, query-string@^7.1.1:
1472914758
version "7.1.1"
1473014759
resolved "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz"
1473114760
integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==

0 commit comments

Comments
 (0)