diff --git a/__test__/projects/GitHubProjectDataSource.test.ts b/__test__/projects/GitHubProjectDataSource.test.ts index 14d0df5b..d0efbb3e 100644 --- a/__test__/projects/GitHubProjectDataSource.test.ts +++ b/__test__/projects/GitHubProjectDataSource.test.ts @@ -70,6 +70,7 @@ test("It maps projects including branches and tags", async () => { id: "foo", name: "foo", displayName: "foo", + url: "https://github.com/acme/foo", versions: [{ id: "main", name: "main", @@ -209,6 +210,7 @@ test("It supports multiple OpenAPI specifications on a branch", async () => { id: "foo", name: "foo", displayName: "foo", + url: "https://github.com/acme/foo", versions: [{ id: "main", name: "main", diff --git a/src/features/projects/data/GitHubProjectDataSource.ts b/src/features/projects/data/GitHubProjectDataSource.ts index f94d58f6..52580197 100644 --- a/src/features/projects/data/GitHubProjectDataSource.ts +++ b/src/features/projects/data/GitHubProjectDataSource.ts @@ -64,7 +64,8 @@ export default class GitHubProjectDataSource implements IProjectDataSource { name: defaultName, displayName: config?.name || defaultName, versions, - imageURL: imageURL + imageURL: imageURL, + url: `https://github.com/${repository.owner.login}/${repository.name}` } } diff --git a/src/features/projects/domain/Project.ts b/src/features/projects/domain/Project.ts index a618bcfd..fb05e3a1 100644 --- a/src/features/projects/domain/Project.ts +++ b/src/features/projects/domain/Project.ts @@ -6,7 +6,8 @@ export const ProjectSchema = z.object({ name: z.string(), displayName: z.string(), versions: VersionSchema.array(), - imageURL: z.string().optional() + imageURL: z.string().optional(), + url: z.string().optional() }) type Project = z.infer diff --git a/src/features/projects/view/toolbar/TrailingToolbarItem.tsx b/src/features/projects/view/toolbar/TrailingToolbarItem.tsx index 18a4ffe1..b95db6ab 100644 --- a/src/features/projects/view/toolbar/TrailingToolbarItem.tsx +++ b/src/features/projects/view/toolbar/TrailingToolbarItem.tsx @@ -21,6 +21,7 @@ const TrailingToolbarItem = ({ onSelectVersion: (versionId: string) => void, onSelectSpecification: (specificationId: string) => void }) => { + const projectNameURL = enableGitHubLinks ? version.url || project.url : undefined return ( <> - + /