From 7bf8a4d38b0a38599250bbf99be219e8c8790d81 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Tue, 28 Jul 2026 14:15:00 +1000 Subject: [PATCH 1/3] fix: add @astrojs/markdown-remark dep and fix build-website CI paths (#2457) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: add @astrojs/markdown-remark dep and fix build-website CI paths Astro 7.1.x introduced 'Satteri' as the default Markdown processor and no longer bundles @astrojs/markdown-remark by default. The website config uses markdown.remarkPlugins which requires this package to be installed explicitly. Also update build-website.yml paths to use explicit ** glob patterns and include root package.json/package-lock.json changes as triggers, so dependabot package bumps always run the website build check. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: ed2219f7-f30c-4e24-95af-9c216166f285 * refactor: use explicit unified() processor in astro.config Astro 7.1+ changed the markdown.remarkPlugins shorthand to require @astrojs/markdown-remark. Update to the explicit unified() processor API which is the supported way to use remark/rehype plugins in Astro 7.1+. Sätteri (the new default processor) is incompatible with remark plugins, so we stay on unified() to keep remark-github-admonitions-to-directives working for Learning Hub GitHub admonition syntax. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: ed2219f7-f30c-4e24-95af-9c216166f285 * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Copilot-Session: ed2219f7-f30c-4e24-95af-9c216166f285 --- .github/workflows/build-website.yml | 21 +++--- website/astro.config.mjs | 14 +++- website/package-lock.json | 102 ++++++++++++---------------- website/package.json | 1 + 4 files changed, 67 insertions(+), 71 deletions(-) diff --git a/.github/workflows/build-website.yml b/.github/workflows/build-website.yml index 77080a3e..ba0a0f0d 100644 --- a/.github/workflows/build-website.yml +++ b/.github/workflows/build-website.yml @@ -4,14 +4,19 @@ on: pull_request: branches: [main] paths: - - website - - agents - - skills - - plugins - - instructions - - hooks - - workflows - - extensions + - "website/**" + - "agents/**" + - "skills/**" + - "plugins/**" + - "instructions/**" + - "hooks/**" + - "workflows/**" + - "extensions/**" + - "cookbook/**" + - "eng/**" + - ".all-contributorsrc" + - "package.json" + - "package-lock.json" permissions: contents: read diff --git a/website/astro.config.mjs b/website/astro.config.mjs index 77f25a4d..b9d80718 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -1,3 +1,4 @@ +import { unified } from "@astrojs/markdown-remark"; import sitemap from "@astrojs/sitemap"; import starlight from "@astrojs/starlight"; import { defineConfig } from "astro/config"; @@ -34,9 +35,16 @@ export default defineConfig({ base: "/", output: "static", markdown: { - remarkPlugins: [ - [remarkGithubAdmonitionsToDirectives, { mapping: githubAdmonitionMapping }], - ], + // Astro 7.1+ uses Sätteri as the default Markdown processor, but its plugin + // API is incompatible with remark/rehype plugins. We explicitly opt into the + // unified() (remark/rehype) processor so we can keep using + // remark-github-admonitions-to-directives, which rewrites > [!NOTE] callouts + // from Learning Hub course content into Starlight aside directives. + processor: unified({ + remarkPlugins: [ + [remarkGithubAdmonitionsToDirectives, { mapping: githubAdmonitionMapping }], + ], + }), }, integrations: [ starlight({ diff --git a/website/package-lock.json b/website/package-lock.json index daab1888..b0ab63f2 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { + "@astrojs/markdown-remark": "^7.2.0", "@astrojs/sitemap": "^3.7.2", "@astrojs/starlight": "^0.41.1", "astro": "^7.1.3", @@ -135,9 +136,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -154,9 +152,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -173,9 +168,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -192,9 +184,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -280,6 +269,47 @@ "unified": "^11.0.5" } }, + "node_modules/@astrojs/markdown-remark": { + "version": "7.2.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@astrojs/markdown-remark/-/markdown-remark-7.2.1.tgz", + "integrity": "sha1-aqr0TwtErS/QUYN+btMULs0y5Mg=", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.10.1", + "@astrojs/prism": "4.0.2", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.1", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.2", + "remark-smartypants": "^3.0.2", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.1.0", + "unist-util-visit-parents": "^6.0.2", + "vfile": "^6.0.3" + } + }, + "node_modules/@astrojs/markdown-remark/node_modules/@astrojs/internal-helpers": { + "version": "0.10.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@astrojs/internal-helpers/-/internal-helpers-0.10.1.tgz", + "integrity": "sha1-P5a2TPc9ORmbGnCQneSIoAXFB3Y=", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.4", + "@types/mdast": "^4.0.4", + "js-yaml": "^4.1.1", + "picomatch": "^4.0.4", + "retext-smartypants": "^6.2.0", + "shiki": "^4.0.2", + "smol-toml": "^1.6.0", + "unified": "^11.0.5" + } + }, "node_modules/@astrojs/markdown-satteri": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.3.4.tgz", @@ -1427,9 +1457,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1446,9 +1473,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1465,9 +1489,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1484,9 +1505,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1503,9 +1521,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1522,9 +1537,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1541,9 +1553,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1560,9 +1569,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1579,9 +1585,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1604,9 +1607,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1629,9 +1629,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1654,9 +1651,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1679,9 +1673,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1704,9 +1695,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1729,9 +1717,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1754,9 +1739,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ diff --git a/website/package.json b/website/package.json index 81322eb6..cc178d95 100644 --- a/website/package.json +++ b/website/package.json @@ -19,6 +19,7 @@ "author": "GitHub", "license": "MIT", "dependencies": { + "@astrojs/markdown-remark": "^7.2.0", "@astrojs/sitemap": "^3.7.2", "@astrojs/starlight": "^0.41.1", "astro": "^7.1.3", From 80b5dabb640c0d2f5661bc970290350d74d25cbf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jul 2026 14:21:38 +1000 Subject: [PATCH 2/3] chore(deps): bump the npm_and_yarn group across 2 directories with 2 updates (#2446) Bumps the npm_and_yarn group with 1 update in the / directory: [js-yaml](https://github.com/nodeca/js-yaml). Bumps the npm_and_yarn group with 1 update in the /website directory: [postcss](https://github.com/postcss/postcss). Updates `js-yaml` from 5.2.1 to 5.2.2 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/5.2.1...5.2.2) Updates `js-yaml` from 5.2.1 to 5.2.2 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/5.2.1...5.2.2) Updates `postcss` from 8.5.16 to 8.5.23 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.5.16...8.5.23) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 5.2.2 dependency-type: direct:production - dependency-name: postcss dependency-version: 8.5.23 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- website/package-lock.json | 14 +++++++------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 89bb0758..72e4f3cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "js-yaml": "^5.2.1", + "js-yaml": "^5.2.2", "vfile": "^6.0.3", "vfile-matter": "^5.0.1" }, @@ -643,9 +643,9 @@ } }, "node_modules/js-yaml": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.1.tgz", - "integrity": "sha512-zfLtNfQqxVqq3uaTqSkh4x4hZw3KHobGUA0fJUj4wawW8bsQLTVqpHdXSIzidh7o+4lEW36tANuAGdaFx6Zgnw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.2.tgz", + "integrity": "sha512-dayzUzKkJ1MkuUtZglSebU43utNXH0OWQByK9rKOOuYIO8M5TV1y+n8ALMdG0rdzBnfNkOmZEqrURepb0ejqBw==", "funding": [ { "type": "github", diff --git a/package.json b/package.json index dd6a905d..323c3d63 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "all-contributors-cli": "^6.26.1" }, "dependencies": { - "js-yaml": "^5.2.1", + "js-yaml": "^5.2.2", "vfile": "^6.0.3", "vfile-matter": "^5.0.1" } diff --git a/website/package-lock.json b/website/package-lock.json index b0ab63f2..25fa52ce 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -5868,9 +5868,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.15", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", - "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", "funding": [ { "type": "github", @@ -6187,9 +6187,9 @@ } }, "node_modules/postcss": { - "version": "8.5.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", - "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", "funding": [ { "type": "opencollective", @@ -6206,7 +6206,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, From 9933dcad5be5caeb288cebcd370eeeb2fc2f1685 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 Jul 2026 15:00:42 +1000 Subject: [PATCH 3/3] Add external plugin netlify (#2461) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/plugin/marketplace.json | 30 ++++++++++++++++++++++++++++++ plugins/external.json | 30 ++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json index 8457c616..a68cbe9a 100644 --- a/.github/plugin/marketplace.json +++ b/.github/plugin/marketplace.json @@ -849,6 +849,36 @@ "description": "Visual whiteboard collaboration for Copilot CLI. Opens an interactive whiteboard in your browser where you can draw, sketch, and add sticky notes — then share everything back with Copilot. Copilot sees your drawings and responds with analysis, suggestions, and ideas.", "version": "1.0.0" }, + { + "name": "netlify", + "description": "Netlify platform skills covering functions, edge functions, blobs, database, identity, image CDN, forms, config, CLI, frameworks, caching, AI Gateway, and deployment — plus the official Netlify MCP server for creating and managing projects, deploys, and environment variables.", + "version": "1.1.0", + "author": { + "name": "Netlify", + "url": "https://www.netlify.com" + }, + "repository": "https://github.com/netlify/context-and-tools", + "homepage": "https://www.netlify.com", + "license": "MIT", + "keywords": [ + "netlify", + "deployment", + "serverless", + "functions", + "edge-functions", + "blobs", + "database", + "mcp", + "ai-gateway", + "frameworks" + ], + "source": { + "source": "github", + "repo": "netlify/context-and-tools", + "ref": "v1.2.0", + "sha": "e10cd19c000651620453e99ed138b8f012d069c7" + } + }, { "name": "noob-mode", "source": "plugins/noob-mode", diff --git a/plugins/external.json b/plugins/external.json index 04af67c2..1c45ecb4 100644 --- a/plugins/external.json +++ b/plugins/external.json @@ -575,6 +575,36 @@ "sha": "ef5367b446566bdc90960deeb40def63f9e7024e" } }, + { + "name": "netlify", + "description": "Netlify platform skills covering functions, edge functions, blobs, database, identity, image CDN, forms, config, CLI, frameworks, caching, AI Gateway, and deployment — plus the official Netlify MCP server for creating and managing projects, deploys, and environment variables.", + "version": "1.1.0", + "author": { + "name": "Netlify", + "url": "https://www.netlify.com" + }, + "repository": "https://github.com/netlify/context-and-tools", + "homepage": "https://www.netlify.com", + "license": "MIT", + "keywords": [ + "netlify", + "deployment", + "serverless", + "functions", + "edge-functions", + "blobs", + "database", + "mcp", + "ai-gateway", + "frameworks" + ], + "source": { + "source": "github", + "repo": "netlify/context-and-tools", + "ref": "v1.2.0", + "sha": "e10cd19c000651620453e99ed138b8f012d069c7" + } + }, { "name": "pm-skills", "description": "MCP server and 12 skills for product analysis, specification writing, strategy, narrative, and stakeholder alignment. Run competitive analyses, write zero-question specs, design metrics, and produce executive-ready documents directly from Copilot.",