From db949a666dfd1a3904ad0921ba5c44fd6ac0011d Mon Sep 17 00:00:00 2001 From: Auto-Co AI Date: Fri, 19 Jun 2026 21:29:19 +0000 Subject: [PATCH 01/14] =?UTF-8?q?Cycle=2013:=20Marketplace=20prep=20?= =?UTF-8?q?=E2=80=94=20action.yml=20at=20root,=20SEO,=20landing=20page=20p?= =?UTF-8?q?olish?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Moved action.yml to repo root (required for GitHub Marketplace auto-listing) - Removed .github/workflows/ and .github/actions/ from main branch - Updated branding.icon to git-pull-request - Added JSON-LD structured data (SoftwareApplication schema) - Added sitemap.xml, robots.txt, .nojekyll - Updated Open Graph and Twitter card metadata - Updated SEO meta tags and keywords - Fixed landing page copy (removed non-existent features, updated paths) - Updated README to reference root action path --- .github/workflows/ci.yml | 30 ---------- .github/workflows/deploy.yml | 40 ------------- .github/workflows/docucraft.yml | 19 ------- README.md | 4 +- .../docucraft/action.yml => action.yml | 4 +- public/.nojekyll | 0 public/robots.txt | 4 ++ public/sitemap.xml | 9 +++ src/app/layout.tsx | 56 ++++++++++++++++++- src/components/landing/features.tsx | 8 +-- src/components/landing/hero.tsx | 2 +- src/components/landing/pricing.tsx | 6 +- 12 files changed, 79 insertions(+), 103 deletions(-) delete mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/deploy.yml delete mode 100644 .github/workflows/docucraft.yml rename .github/actions/docucraft/action.yml => action.yml (98%) create mode 100644 public/.nojekyll create mode 100644 public/robots.txt create mode 100644 public/sitemap.xml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 51c1db4..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: CI - -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - lint-and-build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: "npm" - - run: npm ci - - run: npm run lint - - run: npm run build - env: - NEXT_PUBLIC_SUPABASE_URL: ${{ vars.NEXT_PUBLIC_SUPABASE_URL || 'http://localhost:54321' }} - NEXT_PUBLIC_SUPABASE_ANON_KEY: ${{ vars.NEXT_PUBLIC_SUPABASE_ANON_KEY || 'test' }} - SUPABASE_SERVICE_ROLE_KEY: ${{ vars.SUPABASE_SERVICE_ROLE_KEY || 'test' }} - GITHUB_APP_ID: "0" - GITHUB_APP_CLIENT_ID: "test" - GITHUB_APP_CLIENT_SECRET: "test" - GITHUB_APP_PRIVATE_KEY: "test" - OPENAI_API_KEY: "test" - NEXT_PUBLIC_APP_URL: "http://localhost:3000" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 83acdd5..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Deploy to GitHub Pages - -on: - push: - branches: [main] - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: "pages" - cancel-in-progress: true - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: npm - - run: npm ci - - run: npm run build - - uses: actions/configure-pages@v4 - - uses: actions/upload-pages-artifact@v3 - with: - path: out - deploy: - needs: build - runs-on: ubuntu-latest - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - id: deployment - uses: actions/deploy-pages@v4 diff --git a/.github/workflows/docucraft.yml b/.github/workflows/docucraft.yml deleted file mode 100644 index 2bade18..0000000 --- a/.github/workflows/docucraft.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: DocuCraft — Auto PR Descriptions - -on: - pull_request: - types: [opened, synchronize] - -permissions: - contents: read - pull-requests: write - -jobs: - generate-description: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Generate PR description - uses: ./.github/actions/docucraft - with: - github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index 6d158c5..2fdef75 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: CreativeCodingSolutions/docucraft/.github/actions/docucraft@v1 + - uses: CreativeCodingSolutions/docucraft@v1 with: github-token: ${{ secrets.GITHUB_TOKEN }} ``` @@ -42,7 +42,7 @@ That's it. Every PR will get a generated description. Add your OpenAI API key as a repository secret and enable AI mode: ```yaml -- uses: CreativeCodingSolutions/docucraft/.github/actions/docucraft@v1 +- uses: CreativeCodingSolutions/docucraft@v1 with: github-token: ${{ secrets.GITHUB_TOKEN }} mode: ai diff --git a/.github/actions/docucraft/action.yml b/action.yml similarity index 98% rename from .github/actions/docucraft/action.yml rename to action.yml index b02fc01..0f6ee9c 100644 --- a/.github/actions/docucraft/action.yml +++ b/action.yml @@ -1,8 +1,8 @@ name: "DocuCraft — PR Description Generator" -description: "Automatically generates structured PR descriptions from pull request diffs." +description: "Automatically generates structured PR descriptions from pull request diffs. Zero config, no API keys needed for basic mode." author: "DocuCraft" branding: - icon: "file-text" + icon: "git-pull-request" color: "blue" inputs: diff --git a/public/.nojekyll b/public/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..b3f3120 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://creativecodingsolutions.github.io/docucraft/sitemap.xml diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..9775c36 --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,9 @@ + + + + https://creativecodingsolutions.github.io/docucraft/ + 2026-06-19 + weekly + 1.0 + + diff --git a/src/app/layout.tsx b/src/app/layout.tsx index c5fdfd9..a2adb98 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -14,9 +14,35 @@ const geistMono = Geist_Mono({ }); export const metadata: Metadata = { - title: "DocuCraft — AI Documentation from Your GitHub Repos", + title: "DocuCraft — Auto-Generate PR Descriptions from GitHub Diffs", description: - "Automatically generate PR descriptions, changelogs, and documentation from your GitHub repositories.", + "DocuCraft automatically generates structured PR descriptions from your GitHub pull request diffs. Zero config, no API keys needed for template mode. Free and open source.", + keywords: [ + "auto generate PR description github action", + "github action pr description generator", + "automatic pull request description", + "pr description generator", + "github actions documentation", + "docucraft", + ], + openGraph: { + title: "DocuCraft — Auto-Generate PR Descriptions from GitHub Diffs", + description: + "Auto-generate structured PR descriptions from git diffs. Zero config, no API keys. Free and open source GitHub Action.", + url: "https://creativecodingsolutions.github.io/docucraft/", + siteName: "DocuCraft", + type: "website", + }, + twitter: { + card: "summary_large_image", + title: "DocuCraft — Auto PR Descriptions", + description: + "Auto-generate structured PR descriptions from git diffs. Zero config, no API keys needed.", + }, + robots: { + index: true, + follow: true, + }, }; export default function RootLayout({ @@ -30,6 +56,32 @@ export default function RootLayout({ className={`${geistSans.variable} ${geistMono.variable} antialiased`} suppressHydrationWarning > + +