Skip to content

Commit 9e5a2be

Browse files
authored
[new-workspace] Fix recent repositories for BBS – EXP-411 (#18497)
* [new-workspace] Fix recent repositories for BBS * fixup remove log * fixup test
1 parent 59900e8 commit 9e5a2be

File tree

4 files changed

+22
-21
lines changed

4 files changed

+22
-21
lines changed

components/gitpod-protocol/src/protocol.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -855,20 +855,6 @@ export type WorkspaceSoftDeletion = "user" | "gc";
855855
export type WorkspaceType = "regular" | "prebuild";
856856

857857
export namespace Workspace {
858-
export function getFullRepositoryName(ws: Workspace): string | undefined {
859-
if (CommitContext.is(ws.context)) {
860-
return ws.context.repository.owner + "/" + ws.context.repository.name;
861-
}
862-
return undefined;
863-
}
864-
865-
export function getFullRepositoryUrl(ws: Workspace): string | undefined {
866-
if (CommitContext.is(ws.context)) {
867-
return `https://${ws.context.repository.host}/${getFullRepositoryName(ws)}`;
868-
}
869-
return undefined;
870-
}
871-
872858
export function getPullRequestNumber(ws: Workspace): number | undefined {
873859
if (PullRequestContext.is(ws.context)) {
874860
return ws.context.nr;

components/server/src/bitbucket-server/bitbucket-server-repository-provider.spec.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,13 @@ class TestBitbucketServerRepositoryProvider {
122122
author: "Alex Tugarev",
123123
});
124124
}
125+
126+
@test async test_getUserRepos_ok() {
127+
const result = await this.service.getUserRepos(this.user);
128+
expect(result).to.contain(
129+
"https://7990-alextugarev-bbs-6v0gqcpgvj7.ws-eu102.gitpod.io/scm/~alex.tugarev/user.repo.git",
130+
);
131+
}
125132
}
126133

127134
module.exports = new TestBitbucketServerRepositoryProvider();

components/server/src/bitbucket-server/bitbucket-server-repository-provider.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,15 @@ export class BitbucketServerRepositoryProvider implements RepositoryProvider {
147147
async getUserRepos(user: User): Promise<string[]> {
148148
try {
149149
const repos = await this.api.getRepos(user, { limit: 1000, permission: "REPO_READ" });
150+
const result: string[] = [];
151+
(repos.values || []).forEach((r) => {
152+
const cloneUrl = r.links.clone.find((u) => u.name === "http")?.href;
153+
if (cloneUrl) {
154+
result.push(cloneUrl.replace("http://", "https://"));
155+
}
156+
});
150157

151-
return (repos.values || [])
152-
.map((r) => {
153-
const cloneUrl = r.links.clone.find((u) => u.name === "http")?.href!;
154-
return cloneUrl;
155-
})
156-
.filter((u) => !!u);
158+
return result;
157159
} catch (error) {
158160
log.error("BitbucketServerRepositoryProvider.getUserRepos", error);
159161
return [];

components/server/src/workspace/gitpod-server-impl.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1788,7 +1788,13 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
17881788
})
17891789
.then((workspaces) => {
17901790
workspaces.forEach((ws) => {
1791-
const repoUrl = Workspace.getFullRepositoryUrl(ws.workspace);
1791+
let repoUrl;
1792+
if (CommitContext.is(ws.workspace.context)) {
1793+
repoUrl = ws.workspace.context?.repository?.cloneUrl?.replace(/\.git$/, "");
1794+
}
1795+
if (!repoUrl) {
1796+
repoUrl = ws.workspace.contextURL;
1797+
}
17921798
if (repoUrl) {
17931799
const lastUse = WorkspaceInfo.lastActiveISODate(ws);
17941800
suggestions.push({ url: repoUrl, lastUse, priority: 10 });

0 commit comments

Comments
 (0)