Repository navigation
Conversation
|
🟡 Contributor Reputation Check: MEDIUM risk
Maintainers: please review this contributor before merging. |
🚦 Submission status: 👀 Ready for reviewRisk tier: Why this tier
Automated checks
Action needed
Review
Commands
Updated for |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The sync can emit metadata-only PRs and does not enforce the promised 250-file limit when updating an existing PR.
Review effort: Balanced
Findings: 2
Open (2)
What changed in this PR
Imports the approved GitHub Copilot app for Beginners course into the Learning Hub and adds automation for future upstream synchronization.
Changes:
- Adds nine course pages, licensing data, and 79 referenced images.
- Adds discovery links plus article-layout, anchor, TOC, and accessibility fixes.
- Adds a weekly sync workflow, import helper, generated lock, and regression tests.
| File | Description |
|---|---|
CODEOWNERS |
Assigns course ownership. |
.github/aw/actions-lock.json |
Pins the new workflow compiler action. |
.github/scripts/app-for-beginners-sync.mjs |
Implements source-faithful imports. |
.github/scripts/app-for-beginners-sync.test.mjs |
Tests import and update scenarios. |
.github/workflows/app-for-beginners-sync.md |
Defines weekly/manual synchronization. |
.github/workflows/app-for-beginners-sync.lock.yml |
Compiles the sync workflow. |
.github/workflows/learning-hub-updater.md |
Excludes sync-owned course content. |
website/scripts/a11y-audit.mjs |
Audits course routes and anchors. |
website/src/components/brand/LearningHubIndex.tsx |
Adds the recommended course card. |
website/src/components/brand/learning-hub/GithubCopilotApp.tsx |
Links the app guide to the course. |
website/src/components/brand/styles/github-copilot-app.module.css |
Offsets nested anchor targets. |
website/src/layouts/LearningHubArticle.astro |
Filters nested headings and duplicate anchors. |
website/src/lib/learning-hub-article.ts |
Preserves nested HTML structure. |
website/src/lib/learning-hub-article.test.ts |
Covers article splitting and anchors. |
website/src/pages/learning-hub/index.astro |
Registers the workshop landing page. |
website/src/content/docs/learning-hub/index.md |
Adds the Learning Hub course link. |
website/src/content/docs/learning-hub/github-copilot-app.md |
Adds a guided-course link. |
website/src/content/docs/learning-hub/app-for-beginners/index.md |
Adds the course overview. |
website/src/content/docs/learning-hub/app-for-beginners/00-setup.md |
Adds setup instructions. |
website/src/content/docs/learning-hub/app-for-beginners/01-tour-the-app.md |
Adds the app tour. |
website/src/content/docs/learning-hub/app-for-beginners/02-sessions-worktrees-context.md |
Adds sessions and context training. |
website/src/content/docs/learning-hub/app-for-beginners/03-development-workflows.md |
Adds development workflow training. |
website/src/content/docs/learning-hub/app-for-beginners/04-skills-custom-agents.md |
Adds skills and agents training. |
website/src/content/docs/learning-hub/app-for-beginners/05-mcp-plugins.md |
Adds MCP and plugin training. |
website/src/content/docs/learning-hub/app-for-beginners/06-canvases.md |
Adds canvas training. |
website/src/content/docs/learning-hub/app-for-beginners/07-automations.md |
Adds automation training. |
website/src/content/docs/learning-hub/app-for-beginners/source.json |
Records source provenance and hashes. |
website/src/content/docs/learning-hub/app-for-beginners/source-license.txt |
Preserves the upstream MIT notice. |
website/public/images/learning-hub/copilot-app-for-beginners/** |
Adds 79 course images across the overview and chapters 00–07. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| const sourceMappingChanged = !existing || JSON.stringify(existing.files) !== JSON.stringify(files); | ||
| if (changed.length || sourceMappingChanged) { |
| fetch: ["*"] | ||
| fetch-depth: 0 | ||
| safe-outputs: | ||
| max-patch-files: 250 |

Pull Request Checklist
npm startand verified thatREADME.mdis up to date.mainbranch for this pull request.Description
Add the approved GitHub Copilot app for Beginners course to the Learning Hub. Import from github/copilot-app-for-beginners at
61a5da6f2e73c1ca2025061a1611bc7c19b83d69(source commit). All pages and images use this one source commit. The target branch was created frommainat143a3d976b3c1603cc8932984d5e1f28501cb5fc.The approved scope is the source overview README and chapters 00-07: nine Markdown pages under
website/src/content/docs/learning-hub/app-for-beginners/. They use the existing shared Markdown article layout. There is no separate React course overview or new video carousel. The source video reference remains unchanged.Copy 79 referenced images (71 WebP and eight SVG files, 6.35 MiB) into
website/public/images/learning-hub/copilot-app-for-beginners/, usingoverview/and00/through07/. Keep their original formats and bytes. Add course-specific CODEOWNERS entries for the actual docs and public-image paths.Preserve the source wording, headings, examples, steps, prompts, commands, and assignments. Adapt only frontmatter, website routes, image paths, and required presentation details. Remove the duplicate overview H1 while retaining its anchor. Keep glossary, three appendices, sample documentation, executable files, skills, and setup scripts as specific upstream file or directory links, with their fragments. Retain the source attribution and MIT license link; include the complete source copyright and permission notice. No sample app or training scripts are copied into this repository, and the source repository is not changed.
Expose the course through the current
WORKSHOP_LANDING_IDSlist and a recommended course card. Keep it classified as a Workshop under Getting started. Update the Markdown hub entry and both surfaces of the existing app guide with a course link. Preserve the Desktop App introductory guide. The existingllms.txtand Pagefind generation include the new pages without a search refactor.A browser check found that the shared article splitter moved nested H2 headings out of a
<details>block. The small shared fix keeps section boundaries and callout extraction outside details and list containers. Add regression tests and exclude hidden nested headings from the article TOC.Type of Contribution
Additional Notes
Weekly/manual sync: Add
.github/workflows/app-for-beginners-sync.mdand its compiler-produced.lock.ymlusing the installed gh-aw v0.89.21. This is active repository automation under.github/workflows/, not a contributed catalog workflow underworkflows/. Keep all existing workflow locks unchanged. The shared actions lock adds only the new compiler setup pin and retains the old pins.The sync has read-only repository and PR access, restricted shell commands and download domains, and safe outputs for a draft PR against
mainor an update to an owned bot PR. Both outputs restrict paths and use bundle transport, a 10 MiB patch limit, and a 250-file limit. The complete initial course patch measured 8,789,867 bytes. Larger output remains a visible error; images must not be dropped to meet a limit.The checked-in import helper downloads text and binary images from one exact source SHA. It detects asset-only updates, added or removed referenced images, and chapter directory renames or deletions. It retains stable chapter routes and updates dates only for changed pages or their images. New content outside the approved scope remains linked upstream. It validates the complete import before writing and prunes only manifest-owned files.
source.jsonrecords the exact source SHA and file hashes. It is the durable baseline only after its PR merges tomain. Cache records are inspected or pending evidence, not applied state. Cache loss, a failed output, or a declined PR cannot suppress an older update. An open owned sync PR is updated rather than skipped. The workflow cannot close human PRs, force-push, or auto-merge. The general Learning Hub updater now explicitly excludes this course and its sync-owned links.Validation performed: Commands used Node 24.21.0 where applicable. Root and website dependencies were restored after the first build reported missing packages; no dependency manifests changed.
npx --yes --package=node@24 -c 'npm ci --quiet && npm ci --prefix website --quiet'npx --yes --package=node@24 -c 'npm start'npx --yes --package=node@24 -c 'npm run website:build'npx --yes --package=node@24 -c 'node --test .github/scripts/app-for-beginners-sync.test.mjs website/src/lib/learning-hub-article.test.ts'node .github/scripts/app-for-beginners-sync.mjs --sha 61a5da6f2e73c1ca2025061a1611bc7c19b83d69 --checkgh aw compile app-for-beginners-sync --validate --no-check-updategh aw compile app-for-beginners-sync --no-emit --validate --no-check-updategh aw compile learning-hub-updater --no-emit --no-check-updateA11Y_BASE_URL=http://127.0.0.1:4337/ npx --yes --package=node@24 -c 'npm run --prefix website a11y'llms.txtchecksbash eng/fix-line-endings.shsed -isyntax. Portable LF checks passed. The script was not changed.git diff --cached --checkThe helper tests cover initial import, unchanged content, unrelated commits, cache loss, pending-PR updates, image-only changes, renames/deletions, out-of-scope additions, source failures, and path guards. The layout tests cover nested details/list structure, existing section/callout behavior, and redundant heading anchors. No source training scripts or practice issue/PR creation were run. The temporary preview and dev servers were stopped.
Follow-up live review: Commit
d1bb5aa7fixes the Chapter 06 fallback link. An empty source anchor duplicated the rendered heading ID, and the sticky hero could cover the target heading after a fragment jump. The render pass now removes only redundant empty heading anchors, and nested IDs use the existing hero scroll offset. The source Markdown is unchanged. The accessibility route matrix now covers every course page and checks that the fallback link opens its details block and leaves the heading visible.The updated preview was built and deployed successfully by preview run 37244895047. The complete nine-page live audit was repeated against this commit and passed. Internal links and chapter navigation passed. Of 52 external destinations, 49 returned HTTP 200; two rate-limited GitHub file links were verified through the GitHub API. The public GitHub signup page blocked automated verification with HTTP 403. No course link returned HTTP 404.
Maintainer runtime check: The new
app-for-beginnerslabel was created and verified;automated-updateandlearning-hubalready exist. Live scheduled execution was not run, so the Copilot runtime checkbox above remains open. Confirm repository/organization credential availability and scope for the existingGH_AW_GITHUB_TOKEN/GH_AW_GITHUB_MCP_SERVER_TOKENpattern, andGH_AW_CI_TRIGGER_TOKENif generated PRs must trigger CI. These names were not present in the repository secret-name listing; organization availability was not verified. Reading the repository Actions PR-permission setting returned HTTP 403. A maintainer must confirm that Actions can create/update PRs and run one manual sync after merge. Do not provide token values in this PR.This PR is now ready for human review. Do not merge it or enable Agent Merge without explicit user approval.
By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.