Add Copilot Workshops sync workflow + Learning Hub i18n#2325
Merged
aaronpowell merged 1 commit intoJul 17, 2026
Merged
Conversation
Adds an agentic (gh-aw) workflow that mirrors the multi-harness workshop from github-samples/copilot-workshops into the Learning Hub, plus the Starlight infrastructure it needs: GitHub-admonition rendering, i18n locales with English at the site root, and a language picker that only appears when a page has a non-English translation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9e1d1a4c-a422-4cae-8ea7-b3d5171f58e3
Contributor
There was a problem hiding this comment.
Pull request overview
Adds infrastructure to sync the github-samples/copilot-workshops Learning Hub content into this repo, while enabling site-wide i18n support needed for upstream localized materials and rendering GitHub-style admonitions correctly in Starlight.
Changes:
- Add an agentic workflow to mirror Copilot Workshops content into the Learning Hub (with a compiled
.lock.yml). - Enable Starlight i18n (root English + additional locale prefixes) and override
LanguageSelectto only render when a page has translations. - Add a remark plugin to convert GitHub admonition syntax (
> [!NOTE], etc.) into Starlight aside directives.
Show a summary per file
| File | Description |
|---|---|
website/src/components/LanguageSelect.astro |
Custom LanguageSelect override to hide the locale picker unless translations exist for the current page. |
website/package.json |
Adds remark-github-admonitions-to-directives dependency. |
website/package-lock.json |
Locks the new remark plugin dependency. |
website/astro.config.mjs |
Configures admonition remark plugin, enables Starlight locales/i18n, and wires in the LanguageSelect override. |
.github/workflows/copilot-workshops-sync.md |
New agentic workflow definition to sync Copilot Workshops content into the Learning Hub. |
.github/workflows/copilot-workshops-sync.lock.yml |
Compiled workflow output for GitHub Actions execution. |
Review details
Files not reviewed (1)
- website/package-lock.json: Generated file
Comments suppressed due to low confidence (1)
website/astro.config.mjs:105
editLink.baseUrlstill points at thestagedbranch, so the “Edit this page” links will target a non-default branch even though this PR targetsmain. Update the URL to useedit/main/…so edits go to the correct branch.
editLink: {
baseUrl:
"https://github.com/github/awesome-copilot/edit/staged/website/",
},
- Files reviewed: 4/6 changed files
- Comments generated: 1
- Review effort level: Low
Comment on lines
+6
to
+8
| permissions: | ||
| contents: read | ||
| tools: |
aaronpowell
approved these changes
Jul 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This sets up the plumbing to mirror the "Hands-on with GitHub Copilot's agents" workshop from github-samples/copilot-workshops into the Learning Hub, the same way we already mirror Copilot CLI for Beginners.
This PR is infrastructure + the sync workflow only. It does not add any course content. The content gets imported by the workflow's first run, which opens its own PR for review.
This workflow needs to be run manually once this lands on
mainto do the initial content import — someone will need to trigger it viaworkflow_dispatch(Actions → "Copilot Workshops Content Sync" → Run workflow). It won't import anything on its own until the first scheduled run otherwise.What's in here
.github/workflows/copilot-workshops-sync.md+ compiled.lock.yml). Runs weekly, reads fromgithub-samples/copilot-workshops@main, and opens a PR againstmainwhen the upstream course changes. First run does a full import. It's a source-faithful mirror, no rewriting or summarizing the course.> [!NOTE]/> [!TIP]etc. everywhere, and our site had no support for it. Added theremark-github-admonitions-to-directivesplugin so those render as proper Starlight asides, same as they look on github.com.About the language picker
I didn't want a language dropdown showing up on every doc page across the site, since most content here is English-only. So there's a small override (
src/components/LanguageSelect.astro) that only shows the picker on pages that actually have a translation. Right now that means it's hidden everywhere, because no translated content exists yet. Once the workshop content lands, the picker will show up only on those pages.Under the hood Starlight still generates /es-es/... fallback routes for all docs (that's just how its i18n works), but nothing links to them and the picker never surfaces them until real translations exist.
This supersedes #2304 (which targeted the now-legacy
stagedbranch) and folds in the review feedback from there — targetingmain, the localized-link and sync-cache fixes.