diff --git a/public/duck.png b/public/duck.png new file mode 100644 index 00000000..9895edf6 Binary files /dev/null and b/public/duck.png differ diff --git a/src/app/api/hooks/github/route.ts b/src/app/api/hooks/github/route.ts index 78fa3789..c445cbc7 100644 --- a/src/app/api/hooks/github/route.ts +++ b/src/app/api/hooks/github/route.ts @@ -17,7 +17,8 @@ const privateKey = Buffer.from(GITHUB_PRIVATE_KEY_BASE_64!!, 'base64').toString( // we will only add comments in these repos for now const repositoryWhitelist = [ 'example-openapi', - 'test-openapi' + 'test-openapi', + 'moonboon-openapi' ] const webhooks = new Webhooks({ secret: GITHUB_WEBHOOK_SECRET!! }) diff --git a/src/lib/components/DocumentationViewerComponent.tsx b/src/lib/components/DocumentationViewerComponent.tsx index 6a5a23b0..068988b2 100644 --- a/src/lib/components/DocumentationViewerComponent.tsx +++ b/src/lib/components/DocumentationViewerComponent.tsx @@ -5,7 +5,7 @@ import RedoclyComponent from "./RedoclyComponent"; import { getSettings } from "../utils/SettingsUtils"; import { subscribe, unsubscribe } from "../utils/EventsUtils"; import { Events } from "../events/BaseEvent"; -import { useEffect, useState } from "react"; +import { useEffect } from "react"; import { useForceUpdate } from "../utils/Hooks"; export enum DocumentationVisualizer { diff --git a/src/lib/components/OpenApiSpecificationSelectorComponent.tsx b/src/lib/components/OpenApiSpecificationSelectorComponent.tsx index 92dcd8c6..0f5543d4 100644 --- a/src/lib/components/OpenApiSpecificationSelectorComponent.tsx +++ b/src/lib/components/OpenApiSpecificationSelectorComponent.tsx @@ -1,6 +1,6 @@ "use client"; -import { SelectChangeEvent, Select, MenuItem } from "@mui/material"; +import { SelectChangeEvent, Select, MenuItem, Divider } from "@mui/material"; import { useState } from "react"; import { IOpenApiSpecification } from "../projects/IOpenAPISpecification"; import OpenApiSpecificationChangedEvent from "../events/OpenApiSpecificationChangedEvent"; @@ -40,6 +40,8 @@ const OpenApiSpecificationSelectorComponent: React.FC< value={openAPISpecification} label="Open API Specification" onChange={handleVersionChange} + sx={{ boxShadow: 'none', '.MuiOutlinedInput-notchedOutline': { border: 0 } }} + autoWidth > {openApiSpecifications.map((openApiSpecification, index) => { return ( diff --git a/src/lib/components/VersionSelectorComponent.tsx b/src/lib/components/VersionSelectorComponent.tsx index 75816207..200a9c7b 100644 --- a/src/lib/components/VersionSelectorComponent.tsx +++ b/src/lib/components/VersionSelectorComponent.tsx @@ -1,6 +1,6 @@ "use client"; -import { MenuItem, Select, SelectChangeEvent } from "@mui/material"; +import { MenuItem, Select, SelectChangeEvent, Divider } from "@mui/material"; import { IVersion } from "../projects/IVersion"; import { useState } from "react"; import { getProject, getVersion } from "../utils/UrlUtils"; @@ -34,7 +34,13 @@ const VersionSelectorComponent: React.FC = ({ }; return ( - {versions.map((version, index) => { return ( diff --git a/src/lib/pages/WelcomePage.tsx b/src/lib/pages/WelcomePage.tsx index fdf7739e..a20f11f9 100644 --- a/src/lib/pages/WelcomePage.tsx +++ b/src/lib/pages/WelcomePage.tsx @@ -1,5 +1,7 @@ const WelcomePage: React.FC = () => { - return

Welcome

+ return
+ Duck +
} -export default WelcomePage; \ No newline at end of file +export default WelcomePage; diff --git a/src/lib/projects/GitHubProjectRepository.ts b/src/lib/projects/GitHubProjectRepository.ts index 1bcec109..f4ee80b2 100644 --- a/src/lib/projects/GitHubProjectRepository.ts +++ b/src/lib/projects/GitHubProjectRepository.ts @@ -35,7 +35,8 @@ export class GitHubProjectRepository implements IProjectRepository { return { name: defaultName, repository: repository.name, - owner: repository.owner + owner: repository.owner, + defaultBranch: repository.defaultBranch } } const configResponse: INetworkResponse = await this.networkClient.get({ @@ -51,7 +52,8 @@ export class GitHubProjectRepository implements IProjectRepository { name: config.name || defaultName, image: imageURL, repository: repository.name, - owner: repository.owner + owner: repository.owner, + defaultBranch: repository.defaultBranch } } diff --git a/src/lib/projects/GitHubVersionRepository.ts b/src/lib/projects/GitHubVersionRepository.ts index c6a81738..dfcb55af 100644 --- a/src/lib/projects/GitHubVersionRepository.ts +++ b/src/lib/projects/GitHubVersionRepository.ts @@ -22,17 +22,34 @@ export class GitHubVersionRepository implements IVersionRepository { repository: project.name, name: b.name } + }).sort((a, b) => { + return a.name.localeCompare(b.name) }) + let candidateDefaultBranches = ["main", "master", "develop", "development"] + if (project.defaultBranch) { + candidateDefaultBranches.splice(0, 0, project.defaultBranch) + } + // Reverse them so the top-priority branches end up at the top of the list. + candidateDefaultBranches = candidateDefaultBranches.reverse() + // Move the top-priority branches to the top of the list. + for (const candidateDefaultBranch of candidateDefaultBranches) { + const defaultBranchIndex = branchVersions.findIndex(e => e.name === candidateDefaultBranch) + if (defaultBranchIndex !== -1) { + const defaultBranchVersion = branchVersions[defaultBranchIndex] + delete branchVersions[defaultBranchIndex] + branchVersions.splice(0, 0, defaultBranchVersion) + } + } const tagVersions = tags.map(t => { return { owner: project.owner, repository: project.name, name: t.name } - }) - return tagVersions.concat(branchVersions).sort((a, b) => { + }).sort((a, b) => { return a.name.localeCompare(b.name) }) + return branchVersions.concat(tagVersions) }) } } \ No newline at end of file diff --git a/src/lib/projects/IGitHubProject.ts b/src/lib/projects/IGitHubProject.ts index 09bcf098..ca45ed1d 100644 --- a/src/lib/projects/IGitHubProject.ts +++ b/src/lib/projects/IGitHubProject.ts @@ -3,4 +3,5 @@ import { IProject } from "./IProject"; export interface IGitHubProject extends IProject { readonly owner: string readonly repository: string + readonly defaultBranch: string }