Skip to content

Update canonical URL#117

Merged
nahsra merged 2 commits into
mainfrom
fix-canonical-url
Dec 22, 2023
Merged

Update canonical URL#117
nahsra merged 2 commits into
mainfrom
fix-canonical-url

Conversation

@nahsra
Copy link
Copy Markdown
Contributor

@nahsra nahsra commented Dec 22, 2023

This will prevent a 404 when someone goes to docs.pixee.ai//.

@nahsra nahsra requested a review from CRRogo December 22, 2023 15:39
Comment thread docusaurus.config.js Outdated
@@ -8,7 +8,7 @@ const darkCodeTheme = require('prism-react-renderer/themes/dracula');
const config = {
title: 'Pixee',
tagline: 'Elevate your code, one automated commit at a time.', //TODO: We need a tag line!
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not related at all to this PR but maybe this should be "Pixeebot is your automated product security engineer"

@nahsra nahsra merged commit b08a7fc into main Dec 22, 2023
dhafley added a commit that referenced this pull request May 5, 2026
Adds migration/ at the repo root as a historical record of the 2026-05-05
docs redesign. Contents:

- ASSESSMENT.md — planning and decision log, including the three-repo deploy
  flow, redirect table, SEO additions, and what was actually executed.
- migrate.py — one-shot Python script that ported PR #117 content into
  docs/docs/, normalized frontmatter, dropped numeric prefixes, generated
  _category_.json files.
- fixup_links.py — one-shot link-fixup pass that fixed 27 internal markdown
  links across 9 files after migrate.py.
- README.md — orientation for future readers, plus a clear DO-NOT-RE-RUN
  warning (migrate.py would wipe the manually-authored Contrast page and
  revert the welcome doc's slug: /).

Lives at the repo root rather than docs/migration/ so Docusaurus does not
treat these files as published pages.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
dhafley added a commit that referenced this pull request May 5, 2026
Restructures the flat /integrations/<x> layout into two clean
subcategories that match the way the integrations actually divide:
SCM platforms (where Pixee delivers fixes) and scanning tools (where
findings come from). Moves URLs from /integrations/<x> to
/integrations/{scms,scanners}/<x> and adds redirects.

SCMs (4 pages) under docs/integrations/scms/:
- github.md       (renamed from github-platform.md, content unchanged)
- gitlab.md       (split out from scm-platform-reference.md)
- azure-devops.md (split out from scm-platform-reference.md)
- bitbucket.md    (split out from scm-platform-reference.md)

Scanners (14 pages) under docs/integrations/scanners/:
- appscan.md, checkmarx.md, codeql.md, contrast.md, gitlab-sast.md,
  semgrep.md, snyk-code.md, sonarqube.md, veracode.md (moved from flat)
- polaris.md, fortify.md   (split out from commercial-scanners.md)
- trivy.md, defectdojo.md  (split out from oss-aggregator-scanners.md)
- gitlab-sca.md            (newly authored to match the SCA scope —
  this content was missing from PR #117 and needs colleague review)

Removes three consolidated wrapper pages now that each scanner / SCM
has its own page: commercial-scanners.md, oss-aggregator-scanners.md,
scm-platform-reference.md.

Sidebar (autogen, no hand-built):
- /integrations/overview        (sidebar_position: 1)
- /integrations/sarif-universal (sidebar_position: 2)
- Source Control subcategory    (position: 3, generated-index landing)
- Scanning Tools subcategory    (position: 4, generated-index landing)

Each subcategory gets a generated-index landing at /category/source-control
and /category/scanning-tools respectively, which renders a card list of the
pages inside.

Redirects (added to docusaurus.config.js):
- /integrations/<flat-scanner>      -> /integrations/scanners/<x>  (9 rules)
- /integrations/github              -> /integrations/scms/github
- /integrations/{commercial-scanners,oss-aggregator-scanners,scm-platforms}
                                    -> /integrations/overview
- Pre-existing /code-scanning-tools/* and /integrations/sonar redirects
  retargeted to the new /integrations/scanners/<x> URLs.

Body content: 2 internal links updated from /integrations/codeql to
/integrations/scanners/codeql in the new github.md page.

Overview rewrite: integrations-overview.md updated to reflect the new
two-category structure, refreshed coverage matrix (13 scanners), and
new SCM links pointing at /integrations/scms/<x>.

Migration archive: migration/integrations_restructure.py captures the
mechanical operations (file moves, frontmatter updates, body-link
fixup, wrapper deletions) for posterity. Will not be re-run.

Verification:
- yarn build clean (77 docs processed; was 72 before this commit).
- yarn serve verified all 4 SCM pages, all 14 scanner pages, both
  generated-index landings, 8 sample redirects, and sidebar order.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
dhafley added a commit that referenced this pull request May 8, 2026
Replaces the existing ~9-page docs.pixee.ai with a 76-page redesigned
site sourced from Pixee-Marketing-OS PR #117 (merged 2026-04-28),
restructured and corrected against the canonical Pixee Enterprise Server
install reference.

## Content

- 76 markdown pages across 11 sections: api, configuration, enterprise,
  faq, getting-started, how-it-works, integrations (with scms/ and
  scanners/ subcategories), languages, open-source, platform.
- Welcome doc lives at /. Pre-existing PixeeDocs React landing
  (src/pages/index.js + HomepageFeatures component) removed.
- /integrations/contrast and /integrations/scanners/gitlab-sca are
  newly authored content (PR #117 dropped Contrast from the IA; SCA
  coverage was missing entirely).

## Information architecture

- Integrations split into two subcategories: Source Control (4 pages —
  GitHub, GitLab, Azure DevOps, Bitbucket) and Scanning Tools (14 pages —
  CodeQL, Semgrep, Checkmarx, Veracode, Snyk Code, SonarQube, AppScan,
  Polaris, Fortify, Contrast, GitLab SAST, GitLab SCA, Trivy, DefectDojo).
  Each subcategory has a generated-index landing.
- Three consolidated wrapper pages from the original PR (commercial-
  scanners, oss-aggregator-scanners, scm-platform-reference) split into
  individual scanner / SCM pages.
- Pages /getting-started/<scm> and /integrations/scms/<scm> split by
  purpose: tutorial vs canonical reference. Permission tables live on
  the integration page only; install steps live on the getting-started
  page.
- Frontmatter normalized: numeric file prefixes dropped (replaced with
  sidebar_position), track field lowercased, duplicate keys deduped in
  29 files, meta_description renamed to Docusaurus-standard description.

## Canonical-source corrections

Sourced from pixee/pixee-enterprise-server (charts/.../docs/src) — used
to correct several details that were understated, ahead of the docs, or
plain wrong:

- GitHub: full 9-permission Repository table (was 6, with Repository
  contents incorrectly listed as Read-only — Pixee needs Read & Write to
  create fix branches), plus Organization and Account permissions and
  the 12 webhook events. GHES section now walks through the full custom
  GitHub App registration flow.
- GitLab: 8 PAT scopes (was 5; added ai_features, read_registry,
  read_virtual_registry); webhook URL format documented.
- Bitbucket: corrected to require username + email + API token (API
  tokens authenticate by email, Git ops by username — both are
  required); 6-scope table replaces the previous vague "API token + R/W."
  Bitbucket Server / Data Center separated as a distinct product.
- Azure DevOps: PAT requirement corrected to "custom scope with full
  Code access (not 'Full access')"; webhook user/password documented as
  optional. The previous Work-Item Linking section pulled until it can
  be re-added with a cited source.
- AppScan: full webhook setup walkthrough added — Basic Auth (preferred)
  vs deprecated webhook-secret mode, plus the two AppScan webhook
  registrations Pixee needs (Scan Execution Completed, New Patch
  Request) with JSON request bodies.

## Pixee CLI

The previous /getting-started/cli described a fictional `pixee fix
--sarif` local-fix command. The actual CLI at github.com/pixee/pixee-cli
is a thin client for the Pixee REST API. Rewritten:

- Install via Homebrew (brew tap pixee/pixee && brew install pixee) or
  binary download — not pip.
- Documents the real subcommands: pixee auth, pixee repo, pixee scan,
  pixee workflow, pixee api.
- Covers credential resolution (PIXEE_TOKEN/PIXEE_SERVER), exit codes
  (0/1/2/3), output formats (text/json), HAL link traversal.
- Mentions the bundled skills.sh skills for Claude Code / Codex.
- /getting-started/ci-cd correspondingly rewritten: removed every
  `pixee fix --sarif` and `pixee/pixee-action@v1` reference (both
  fictional). Replaced with the correct flow — scanners write to the
  SCM's code-scanning surface; Pixee ingests through the SCM
  integration; no separate "Pixee step" needed in pipelines.
- Welcome page table dropped the "CLI: ~5 min" row (CLI is not a
  platform setup option) and added a one-line pointer below.

## Public-repo onboarding

Added a "Public Repositories Without an Existing Scanner" section to
/getting-started/github covering the legacy /running_on_public_github_repos
content (enable Issues for the dashboard, pick a free-tier scanner, install
Pixeebot). Retargeted the legacy redirect to /getting-started/github.

## Sidebar

Autogen sidebar with per-section _category_.json files providing curated
ordering and clean labels (no track badges — tried [DEV]/[LEADER]/[BOTH]
labels initially, dropped after eyeballing in dev). Each section's
overview page is the category landing via link.id; how-it-works and the
two integrations subcategories use generated-index landings.

## Redirects (~25 rules in docusaurus.config.js)

Every old URL maps to its closest new equivalent — covers /intro,
/installing, /faqs, /languages, /open-pixee, /supported-scms,
/using-pixeebot, /running_on_public_github_repos, the entire
/code-scanning-tools/* tree, the flat /integrations/<x> URLs from the
mid-PR restructure, the removed consolidated wrappers, and the deleted
/configuration/scheduling page. Pre-existing /integrations/* aliases
flipped direction to point at the new IA.

## SEO additions (config-only, no React components)

- Site-wide Organization JSON-LD via headTags in docusaurus.config.js.
- docusaurus-plugin-llms generates llms.txt and llms-full.txt at build.
- static/robots.txt explicitly allows GPTBot, ClaudeBot, PerplexityBot,
  Google-Extended, Applebot-Extended, CCBot, OAI-SearchBot.
- Sitemap and canonical URLs verified on the new tree (default
  Docusaurus behavior).

Deferred to v2: AudienceBadge / SchemaOrg / FeedbackWidget React
components, per-page FAQPage / HowTo JSON-LD, .md alternates for AI
agents, Algolia DocSearch, HubSpot lead capture, GA4 custom events.

## Migration archive

migration/ at the repo root contains migrate.py, fixup_links.py,
integrations_restructure.py, ASSESSMENT.md, and README.md — historical
record only. The README has a clear DO-NOT-RE-RUN warning explaining
why the scripts are now destructive (manually-authored Contrast and
GitLab SCA pages, slug change on the welcome doc, layout changes).

## Dedup pass

A whole-page Jaccard / paragraph-level overlap audit found two
redundancies that were collapsed: configuration/scheduling.md was a
90-line subset of operations-config.md (deleted, redirect added), and
three near-identical paragraphs about the independent fix evaluator
were duplicated between platform/remediation.md and how-it-works/
fix-safety.md (kept fix-safety as canonical, summarized in remediation).

## Verification

- yarn build clean (76 docs processed, zero broken links/anchors).
- yarn serve verified all page slugs return 200, all category landings
  render, redirects emit correct meta-refresh + canonical, JSON-LD on
  every page, sitemap and robots.txt present in build output.
- yarn check-format clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants