Skip to content

docs: add workshop view#46237

Merged
mnkiefer merged 6 commits into
mainfrom
add-workshop-page
Jul 17, 2026
Merged

docs: add workshop view#46237
mnkiefer merged 6 commits into
mainfrom
add-workshop-page

Conversation

@mnkiefer

Copy link
Copy Markdown
Collaborator
  • Introduces a new workshop experience directly into the documentation site:
    • Fetches and generates workshop content from the gh-aw-workshop repository, supporting both remote and local sources
    • Updates package.json scripts to run the workshop content generation before development and build, and adds new generate-workshop-content script entry.
    • Implements manifest.ts and routes.ts to define workshop journeys, scenarios, and curriculum parsing logic, enabling dynamic workshop routing and metadata extraction from the synced content
  • Adds a new Astro page at /workshop/ with "Workshop" links to the main header, tablet dropdown, and sidebar navigation to promote the new feature.

@mnkiefer mnkiefer self-assigned this Jul 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📸 Visual Regression Check

Screenshots captured for the docs site at `(localhost/redacted) — no baseline exists for this PR, so this is a first-capture run (no visual diff possible).

Screenshot Status

Page Viewport Size Status
Home (/gh-aw/) Mobile 375×812 899 KB ✅ Captured
Home (/gh-aw/) Tablet 768×1024 878 KB ✅ Captured
Home (/gh-aw/) Desktop 1440×900 713 KB ✅ Captured

Page Content Verified

  • Title: Home | GitHub Agentic Workflows
  • H1: GitHub Agentic Workflows
  • Key sections: Key Features, Guardrails Built-In, Manage Cost and Capacity, Example: Daily Issues Report, Gallery

Accessibility Findings

Two pre-existing minor issues found on the homepage:

Severity Issue Element Notes
⚠️ Minor Input without associated (label) (input type="text" placeholder="Search" title="Search") Pagefind search widget — has title attribute but no (label) or aria-label
⚠️ Minor Select without associated (label) (select) (theme switcher: Auto/Dark/Light) Theme selector has no programmatic label

No images missing alt text. No empty links. No heading hierarchy skips.

Note: These appear to be pre-existing issues in third-party widgets (Pagefind search UI and the Starlight theme switcher), not introduced by this PR.

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • awmgmcpg
  • clients2.google.com
  • contentautofill.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "awmgmcpg"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

Generated by 👁️ Visual Regression Checker for #46237 · 70.2 AIC · ⌖ 5.29 AIC · ⊞ 4.2K ·

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds an interactive workshop experience to the documentation site.

Changes:

  • Syncs workshop content from remote or local sources.
  • Builds workspace- and scenario-specific workshop routes.
  • Adds the workshop page and navigation links.
Show a summary per file
File Description
docs/src/pages/workshop.astro Adds the workshop page.
docs/src/lib/workshop/routes.ts Parses curriculum routes.
docs/src/lib/workshop/manifest.ts Defines workshop metadata and flows.
docs/src/content/docs/index.mdx Promotes the workshop on the homepage.
docs/src/components/workshop/WorkshopExperience.astro Implements the interactive experience.
docs/src/components/CustomHeader.astro Adds header navigation links.
docs/scripts/sync-workshop-content.js Generates workshop content.
docs/package.json Runs content generation before development and builds.
docs/astro.config.mjs Adds workshop sidebar navigation.

Review details

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 9/10 changed files
  • Comments generated: 9
  • Review effort level: Medium

Comment thread docs/src/components/workshop/WorkshopExperience.astro Outdated
Comment thread docs/src/lib/workshop/manifest.ts
Comment thread docs/src/components/workshop/WorkshopExperience.astro
Comment thread docs/src/components/workshop/WorkshopExperience.astro
Comment thread docs/src/components/workshop/WorkshopExperience.astro
Comment thread docs/src/components/workshop/WorkshopExperience.astro
Comment thread docs/src/components/workshop/WorkshopExperience.astro
Comment thread docs/src/lib/workshop/routes.ts
Comment thread docs/src/components/workshop/WorkshopExperience.astro Outdated
@mnkiefer

Copy link
Copy Markdown
Collaborator Author

@copilot Address all review comments

Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Nice progress on making the docs site more interactive — the workshop addition and the routing/content-generation work make the intent of this PR very clear.

A couple of follow-ups before this looks fully ready:

  • This change appears to add/update dependency-manifest behavior (package.json scripts and related content-generation wiring), so it likely needs explicit discussion/confirmation.
  • I didn't see accompanying test-file changes in the diff. Adding tests around the new workshop manifest/routing/content-generation logic would strengthen confidence.
Review this PR for readiness with focus on:
1. Adding or updating tests for workshop manifest parsing, route generation, and content sync behavior.
2. Confirming whether the dependency/build-script changes need maintainer discussion or documentation.
3. Verifying the PR stays scoped to the workshop docs experience only.

Generated by ✅ Contribution Check · 80.9 AIC · ⌖ 8.97 AIC · ⊞ 6.2K ·

Copilot AI and others added 2 commits July 17, 2026 13:42
Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>

Copilot AI commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

@copilot Address all review comments

All review comments addressed in commit fix: address all review comments on workshop view. Here's a summary of each fix:

  1. XSS via JSON.stringify (line 416): Added a safeJson() helper that Unicode-escapes <, >, and & before embedding JSON in set:html. Both JSON script elements now use safeJson().

  2. URL scheme injection (lines 48–52, 499–503): Both the server-side and client-side resolveWorkshopAssetUrl now return # for any URL that doesn't match https?:, mailto:, #, or /. The images/ path also validates that the resolved URL starts with https?: before returning it.

  3. "Change workspace or scenario" button unhandled (lines 386–388): Added a [data-workshop-change] case in the delegated click handler that calls showSetup().

  4. Last step never completes (lines 722–728): navigate('next') now marks the current step complete unconditionally. On the final step, the render function changes the button text to "Finish workshop" (enabled) instead of disabling "Next step", so the last step can be marked complete.

  5. wrapUp ordering (manifest.ts 95–97): Split wrapUp in routes.ts into preSchedule (row 12 only) and wrapUp (rows ≥ 14). Both buildWorkshopFlow (server) and buildFlow (client) now order steps as: prelude → design → build → postBuild → preSchedule → scheduleStep → wrapUp.

  6. VS Code route picks wrong prerequisites (routes.ts 176–180): Restricted the vscode journey to Codespaces (label: "Codespaces", kicker: "Cloud IDE"). Removed the misleading Remote Tunnel panel UI and replaced it with a Codespaces info panel.

  7. Incomplete markdown parser (line 529): Both server-side and client-side parsers now handle: ordered lists (<ol>), Markdown pipe tables, GitHub admonitions ([!NOTE]/[!TIP]/[!IMPORTANT]/[!WARNING]/[!CAUTION]), and heading IDs (slugified from heading text) for anchor navigation.

  8. Light theme card contrast (line 1044): Changed card background from rgba(13, 17, 23, 0.65) (hard-coded dark) to var(--aw-bg-elevated) to preserve readable contrast in both dark and light themes.

@mnkiefer
mnkiefer marked this pull request as ready for review July 17, 2026 13:46
@github-actions

Copy link
Copy Markdown
Contributor

Visual Regression Check — Unable to Complete

The visual regression check could not be completed due to two environment blockers:

Issue Details
Docs server not running Port 4321 is not listening (ECONNREFUSED). The server referenced in the workflow (`(localhost/redacted) was not accessible at the time this agent ran.
Browser sandbox failure Playwright's Chromium exits with a fatal sandbox error — the Chrome sandbox binary lacks the required setuid bit (4755) in this container environment.

What was attempted

  • `playwright-cli open (localhost/redacted) (Chromium, default)
  • playwright-cli open --browser=webkit (not installed)
  • playwright-cli open --browser=firefox (not installed)
  • Environment variables to pass --no-sandbox — no effect
  • Using system Chromium at /usr/local/share/chromium/chrome-linux/chrome — also blocked

Recommendation

Re-run the workflow once the docs server is confirmed healthy and the runner environment has a properly configured browser (e.g., a runner with --no-sandbox support or correct sandbox permissions).

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • awmgmcpg

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "awmgmcpg"

See Network Configuration for more information.

Generated by 👁️ Visual Regression Checker for #46237 · 56.9 AIC · ⌖ 7.66 AIC · ⊞ 4.2K ·

@mnkiefer
mnkiefer merged commit c096ffe into main Jul 17, 2026
8 checks passed
@mnkiefer
mnkiefer deleted the add-workshop-page branch July 17, 2026 14:58
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.82.13

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.

3 participants