From 4c0905f26c7ff15a390649d88fa613e71861028e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=B8vring?= Date: Mon, 9 Sep 2024 14:28:48 +0200 Subject: [PATCH 1/2] Renames the project from Shape Docs --- .env.example | 12 ++--- .github/ISSUE_TEMPLATE/bug_report.yml | 4 +- README.md | 50 +++++++++---------- package-lock.json | 4 +- package.json | 2 +- src/app/(authed)/(home)/(welcome)/page.tsx | 2 +- src/app/(authed)/(home)/[...slug]/page.tsx | 2 +- src/app/(authed)/(home)/new/page.tsx | 2 +- src/app/auth/signin/page.tsx | 4 +- src/app/layout.tsx | 4 +- src/common/utils/splitOwnerAndRepository.ts | 2 +- src/composition.ts | 8 +-- .../sidebar/view/internal/sidebar/Header.tsx | 2 +- .../sidebar/settings/SettingsList.tsx | 2 +- 14 files changed, 50 insertions(+), 50 deletions(-) diff --git a/.env.example b/.env.example index ad45d3e5..94ce8e81 100644 --- a/.env.example +++ b/.env.example @@ -1,15 +1,15 @@ -SHAPE_DOCS_BASE_URL=http://localhost:3000 -SHAPE_DOCS_PROJECT_CONFIGURATION_FILENAME=.shape-docs.yml -NEXT_PUBLIC_SHAPE_DOCS_TITLE=Shape Docs -NEXT_PUBLIC_SHAPE_DOCS_DESCRIPTION=Documentation for Shape's APIs -NEXT_PUBLIC_SHAPE_DOCS_HELP_URL=https://github.com/shapehq/shape-docs/wiki +FRAMNA_DOCS_BASE_URL=http://localhost:3000 +FRAMNA_DOCS_PROJECT_CONFIGURATION_FILENAME=.shape-docs.yml +NEXT_PUBLIC_FRMANA_DOCS_TITLE=Framna Docs +NEXT_PUBLIC_FRAMNA_DOCS_DESCRIPTION=Documentation for Framna's APIs +NEXT_PUBLIC_FRAMNA_DOCS_HELP_URL=https://github.com/shapehq/framna-docs/wiki NEXTAUTH_URL_INTERNAL=http://localhost:3000 NEXTAUTH_SECRET=use [openssl rand -base64 32] to generate a 32 bytes value REDIS_URL=localhost POSTGRESQL_HOST=localhost POSTGRESQL_USER=dbuser POSTGRESQL_PASSWORD= -POSTGRESQL_DB=shape-docs +POSTGRESQL_DB=framna-docs REPOSITORY_NAME_SUFFIX=-openapi HIDDEN_REPOSITORIES= NEW_PROJECT_TEMPLATE_REPOSITORY=shapehq/starter-openapi diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 1a631a06..5b0321c5 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -29,7 +29,7 @@ body: id: expected-behavior attributes: label: What is the expected behavior? - description: Please describe the behavior you expect of Shape Docs. - placeholder: I expect that Shape Docs would... + description: Please describe the behavior you expect of Framna Docs. + placeholder: I expect that Framna Docs would... validations: required: true diff --git a/README.md b/README.md index 15eeb982..046723f9 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,18 @@
-Shape Docs logo +Framna Docs logo
-

👋 Welcome to Shape Docs

+

👋 Welcome to Framna Docs

Self-hosted web portal that collects OpenAPI documentation and facilitates spec-driven development, built with GitHub-based authorization.

- - - - - + + + + +
--- @@ -21,46 +21,46 @@ 🚀 Getting Started     👨‍🔧 How does it work?     👩‍💻 How can I contribute?     -📖 Wiki +📖 Wiki
-Shape Docs makes managing and previewing OpenAPI documentation a breeze, streamlining spec-driven development. With GitHub-based authorization, you can easily control who accesses your docs. Shape Docs comments on pull requests that tweak your OpenAPI specs, giving you preview URLs to ensure every update is well-reviewed. +Framna Docs makes managing and previewing OpenAPI documentation a breeze, streamlining spec-driven development. With GitHub-based authorization, you can easily control who accesses your docs. Framna Docs comments on pull requests that tweak your OpenAPI specs, giving you preview URLs to ensure every update is well-reviewed.
-Screenshot of Shape Docs +Screenshot of Framna Docs
## 🚀 Getting Started -Please refer to the following articles in [the wiki](https://github.com/shapehq/shape-docs/wiki) to get started with Shape Docs. +Please refer to the following articles in [the wiki](https://github.com/shapehq/framna-docs/wiki) to get started with Framna Docs. -- [Adding Documentation to Shape Docs](https://github.com/shapehq/shape-docs/wiki/Adding-Documentation-to-Shape-Docs) -- [Browsing Documentation](https://github.com/shapehq/shape-docs/wiki/Browsing-Documentation) -- [Updating Documentation](https://github.com/shapehq/shape-docs/wiki/Updating-Documentation) -- [Deploying Shape Docs](https://github.com/shapehq/shape-docs/wiki/Deploying-Shape-Docs) +- [Adding Documentation to Framna Docs](https://github.com/shapehq/framna-docs/wiki/Adding-Documentation-to-Framna-Docs) +- [Browsing Documentation](https://github.com/shapehq/framna-docs/wiki/Browsing-Documentation) +- [Updating Documentation](https://github.com/shapehq/framna-docs/wiki/Updating-Documentation) +- [Deploying Framna Docs](https://github.com/shapehq/framna-docs/wiki/Deploying-Framna-Docs) ## 👨‍🔧 How does it work? -Shape Docs uses [OpenAPI specifications](https://swagger.io) from GitHub repositories. Users log in with their GitHub account to access documentation for projects they have access to. A repository only needs an OpenAPI spec to be recognized by Shape Docs, but customization is possible with a .shape-docs.yml file. Here's an example: +Framna Docs uses [OpenAPI specifications](https://swagger.io) from GitHub repositories. Users log in with their GitHub account to access documentation for projects they have access to. A repository only needs an OpenAPI spec to be recognized by Framna Docs, but customization is possible with a .framna-docs.yml file. Here's an example: - + -Shape Docs supports spec-driven development by requiring OpenAPI specs in GitHub repos, ensuring version control and peer review. When a pull request is opened, Shape Docs comments with links to preview the documentation: +Framna Docs supports spec-driven development by requiring OpenAPI specs in GitHub repos, ensuring version control and peer review. When a pull request is opened, Framna Docs comments with links to preview the documentation: - + -Learn more from the [Adding Documentation](https://github.com/shapehq/shape-docs/wiki/Adding-Documentation-to-Shape-Docs), [Browsing Documentation](https://github.com/shapehq/shape-docs/wiki/Browsing-Documentation), and [Updating Documentation](https://github.com/shapehq/shape-docs/wiki/Updating-Documentation) articles in the wiki. +Learn more from the [Adding Documentation](https://github.com/shapehq/framna-docs/wiki/Adding-Documentation-to-Framna-Docs), [Browsing Documentation](https://github.com/shapehq/framna-docs/wiki/Browsing-Documentation), and [Updating Documentation](https://github.com/shapehq/framna-docs/wiki/Updating-Documentation) articles in the wiki. ## 👩‍💻 How can I contribute? -Pull requests with bugfixes and new features are much appreciated. We are happy to review PRs and merge them once they are ready, as long as they contain changes that fit within the vision of Shape Docs. +Pull requests with bugfixes and new features are much appreciated. We are happy to review PRs and merge them once they are ready, as long as they contain changes that fit within the vision of Framna Docs. -Clone the repository and consult the articles on [running Shape Docs locally](https://github.com/shapehq/shape-docs/wiki/Running-Shape-Docs-Locally) and [contributing](https://github.com/shapehq/shape-docs/wiki/Contributing) to get started contributing changes the project. +Clone the repository and consult the articles on [running Framna Docs locally](https://github.com/shapehq/framna-docs/wiki/Running-Framna-Docs-Locally) and [contributing](https://github.com/shapehq/framna-docs/wiki/Contributing) to get started contributing changes the project. ```bash -git clone git@github.com:shapehq/shape-docs.git +git clone git@github.com:shapehq/framna-docs.git ``` ## 🔀 Git Workflow @@ -82,8 +82,8 @@ Two long-lived branches exist ## ❤️ The Product of a Shape Weekend -Every year we go on Shape Weekend, three days where all employees in Shape get together for a hackathon to build amazing products. In 2023, a team of Shape developers with a passion for documentation and spec-driven development built Shape Docs and we've used it daily ever since! +Every year we go on Shape Weekend, three days where all employees in Shape get together for a hackathon to build amazing products. In 2023, a team of Shape developers with a passion for documentation and spec-driven development built Framna Docs and we've used it daily ever since! --- -Shape Docks is built with ❤️ by [Shape](https://shape.dk) in Denmark. Oh, and [we are hiring](https://careers.shape.dk) 🤗 +Framna Docs is built with ❤️ by [Shape](https://shape.dk) in Denmark. Oh, and [we are hiring](https://careers.shape.dk) 🤗 diff --git a/package-lock.json b/package-lock.json index 5199d246..87032194 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "shape-docs", + "name": "framna-docs", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "shape-docs", + "name": "framna-docs", "version": "0.1.0", "dependencies": { "@emotion/react": "^11.13.3", diff --git a/package.json b/package.json index 89ab69d6..0abf5a0c 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "shape-docs", + "name": "framna-docs", "version": "0.1.0", "private": true, "engines": { diff --git a/src/app/(authed)/(home)/(welcome)/page.tsx b/src/app/(authed)/(home)/(welcome)/page.tsx index d4162cff..2400dcb8 100644 --- a/src/app/(authed)/(home)/(welcome)/page.tsx +++ b/src/app/(authed)/(home)/(welcome)/page.tsx @@ -2,7 +2,7 @@ import { Box, Typography } from "@mui/material" import { grey } from "@mui/material/colors" import { env } from "@/common" -const SITE_NAME = env.getOrThrow("NEXT_PUBLIC_SHAPE_DOCS_TITLE") +const SITE_NAME = env.getOrThrow("NEXT_PUBLIC_FRAMNA_DOCS_TITLE") const Page = () => { return ( diff --git a/src/app/(authed)/(home)/[...slug]/page.tsx b/src/app/(authed)/(home)/[...slug]/page.tsx index 5d646ea3..bc605617 100644 --- a/src/app/(authed)/(home)/[...slug]/page.tsx +++ b/src/app/(authed)/(home)/[...slug]/page.tsx @@ -13,7 +13,7 @@ export default function Page() { navigateToSelectionIfNeeded() }, [project, version, specification, navigateToSelectionIfNeeded]) // Update the window title to match selected project. - const siteName = process.env.NEXT_PUBLIC_SHAPE_DOCS_TITLE || "" + const siteName = process.env.NEXT_PUBLIC_FRAMNA_DOCS_TITLE || "" useEffect(() => { updateWindowTitle({ storage: document, diff --git a/src/app/(authed)/(home)/new/page.tsx b/src/app/(authed)/(home)/new/page.tsx index 9dbb8fca..8c9dfc2b 100644 --- a/src/app/(authed)/(home)/new/page.tsx +++ b/src/app/(authed)/(home)/new/page.tsx @@ -3,7 +3,7 @@ import NewProjectSteps from "@/features/new-project/view/NewProjectSteps" import { env, splitOwnerAndRepository } from "@/common" import MessageLinkFooter from "@/common/ui/MessageLinkFooter" -const HELP_URL = env.get("NEXT_PUBLIC_SHAPE_DOCS_HELP_URL") +const HELP_URL = env.get("NEXT_PUBLIC_FRAMNA_DOCS_HELP_URL") const Page = () => { const repositoryNameSuffix = env.getOrThrow("REPOSITORY_NAME_SUFFIX") diff --git a/src/app/auth/signin/page.tsx b/src/app/auth/signin/page.tsx index af252ce6..72a4926d 100644 --- a/src/app/auth/signin/page.tsx +++ b/src/app/auth/signin/page.tsx @@ -7,8 +7,8 @@ import { faGithub } from "@fortawesome/free-brands-svg-icons" import SignInTexts from "@/features/auth/view/SignInTexts" import MessageLinkFooter from "@/common/ui/MessageLinkFooter" -const SITE_NAME = env.getOrThrow("NEXT_PUBLIC_SHAPE_DOCS_TITLE") -const HELP_URL = env.get("NEXT_PUBLIC_SHAPE_DOCS_HELP_URL") +const SITE_NAME = env.getOrThrow("NEXT_PUBLIC_FRAMNA_DOCS_TITLE") +const HELP_URL = env.get("NEXT_PUBLIC_FRAMNA_DOCS_HELP_URL") export default async function SignInPage() { return ( diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 03a4808a..2d39c968 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -9,8 +9,8 @@ import { env } from "@/common" fontAwesomeConfig.autoAddCss = false export const metadata: Metadata = { - title: env.getOrThrow("NEXT_PUBLIC_SHAPE_DOCS_TITLE"), - description: env.getOrThrow("NEXT_PUBLIC_SHAPE_DOCS_DESCRIPTION") + title: env.getOrThrow("NEXT_PUBLIC_FRAMNA_DOCS_TITLE"), + description: env.getOrThrow("NEXT_PUBLIC_FRAMNA_DOCS_DESCRIPTION") } export default function RootLayout({ children }: { children: React.ReactNode }) { diff --git a/src/common/utils/splitOwnerAndRepository.ts b/src/common/utils/splitOwnerAndRepository.ts index 4bd3a96a..7cf0fca9 100644 --- a/src/common/utils/splitOwnerAndRepository.ts +++ b/src/common/utils/splitOwnerAndRepository.ts @@ -1,5 +1,5 @@ // Split full repository names into owner and repository. -// shapehq/foo becomes { owner: "shapehq", "repository": "foo" } +// acme/foo becomes { owner: "acme", "repository": "foo" } const splitOwnerAndRepository = (str: string) => { const index = str.indexOf("/") if (index === -1) { diff --git a/src/composition.ts b/src/composition.ts index 7284f036..3e15ab76 100644 --- a/src/composition.ts +++ b/src/composition.ts @@ -170,7 +170,7 @@ export const projectDataSource = new CachingProjectDataSource({ }), graphQlClient: userGitHubClient, repositoryNameSuffix: env.getOrThrow("REPOSITORY_NAME_SUFFIX"), - projectConfigurationFilename: env.getOrThrow("SHAPE_DOCS_PROJECT_CONFIGURATION_FILENAME") + projectConfigurationFilename: env.getOrThrow("FRAMNA_DOCS_PROJECT_CONFIGURATION_FILENAME") }) }), repositoryNameSuffix: env.getOrThrow("REPOSITORY_NAME_SUFFIX") @@ -194,10 +194,10 @@ export const gitHubHookHandler = new GitHubHookHandler({ }), eventHandler: new PostCommentPullRequestEventHandler({ pullRequestCommenter: new PullRequestCommenter({ - siteName: env.getOrThrow("NEXT_PUBLIC_SHAPE_DOCS_TITLE"), - domain: env.getOrThrow("SHAPE_DOCS_BASE_URL"), + siteName: env.getOrThrow("NEXT_PUBLIC_FRAMNA_DOCS_TITLE"), + domain: env.getOrThrow("FRAMNA_DOCS_BASE_URL"), repositoryNameSuffix: env.getOrThrow("REPOSITORY_NAME_SUFFIX"), - projectConfigurationFilename: env.getOrThrow("SHAPE_DOCS_PROJECT_CONFIGURATION_FILENAME"), + projectConfigurationFilename: env.getOrThrow("FRAMNA_DOCS_PROJECT_CONFIGURATION_FILENAME"), gitHubAppId: env.getOrThrow("GITHUB_APP_ID"), gitHubClient: gitHubClient }) diff --git a/src/features/sidebar/view/internal/sidebar/Header.tsx b/src/features/sidebar/view/internal/sidebar/Header.tsx index 91097b2d..6311ddae 100644 --- a/src/features/sidebar/view/internal/sidebar/Header.tsx +++ b/src/features/sidebar/view/internal/sidebar/Header.tsx @@ -6,7 +6,7 @@ import { useRouter } from "next/navigation" import { useCloseSidebarOnSelection } from "@/features/sidebar/data" const Header = () => { - const siteName = process.env.NEXT_PUBLIC_SHAPE_DOCS_TITLE + const siteName = process.env.NEXT_PUBLIC_FRAMNA_DOCS_TITLE const router = useRouter() const { closeSidebarIfNeeded } = useCloseSidebarOnSelection() return ( diff --git a/src/features/sidebar/view/internal/sidebar/settings/SettingsList.tsx b/src/features/sidebar/view/internal/sidebar/settings/SettingsList.tsx index 6b06790b..5486ab7f 100644 --- a/src/features/sidebar/view/internal/sidebar/settings/SettingsList.tsx +++ b/src/features/sidebar/view/internal/sidebar/settings/SettingsList.tsx @@ -32,7 +32,7 @@ const SettingsItem = ({ onClick, icon, children }: { } const SettingsList = () => { - const helpURL = process.env.NEXT_PUBLIC_SHAPE_DOCS_HELP_URL + const helpURL = process.env.NEXT_PUBLIC_FRAMNA_DOCS_HELP_URL return ( Date: Mon, 9 Sep 2024 15:16:53 +0200 Subject: [PATCH 2/2] Fixes typo --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 94ce8e81..27d200ff 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,6 @@ FRAMNA_DOCS_BASE_URL=http://localhost:3000 FRAMNA_DOCS_PROJECT_CONFIGURATION_FILENAME=.shape-docs.yml -NEXT_PUBLIC_FRMANA_DOCS_TITLE=Framna Docs +NEXT_PUBLIC_FRAMNA_DOCS_TITLE=Framna Docs NEXT_PUBLIC_FRAMNA_DOCS_DESCRIPTION=Documentation for Framna's APIs NEXT_PUBLIC_FRAMNA_DOCS_HELP_URL=https://github.com/shapehq/framna-docs/wiki NEXTAUTH_URL_INTERNAL=http://localhost:3000