diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index acf74975a8..10e7722249 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -45,6 +45,8 @@ jobs: - name: Build documentation working-directory: ./docs + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: npm run build - name: Upload build artifacts diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 2481ba0a71..dda28f4d5e 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -4,6 +4,7 @@ import starlight from '@astrojs/starlight'; import starlightLlmsTxt from 'starlight-llms-txt'; import starlightLinksValidator from 'starlight-links-validator'; import starlightGitHubAlerts from 'starlight-github-alerts'; +import starlightChangelogs, { makeChangelogsSidebarLinks } from 'starlight-changelogs'; // https://astro.build/config export default defineConfig({ @@ -14,6 +15,7 @@ export default defineConfig({ title: 'GitHub Agentic Workflows', social: [{ icon: 'github', label: 'GitHub', href: 'https://github.com/githubnext/gh-aw' }], plugins: [ + starlightChangelogs(), starlightGitHubAlerts(), starlightLinksValidator({ errorOnRelativeLinks: true, @@ -56,6 +58,9 @@ export default defineConfig({ label: 'Application Areas', autogenerate: { directory: 'samples' }, }, + ...makeChangelogsSidebarLinks([ + { type: 'all', base: 'changelog', label: 'Changelog' } + ]), ], }), ], diff --git a/docs/package-lock.json b/docs/package-lock.json index 4ec4271971..b0ec24d778 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -11,6 +11,7 @@ "@astrojs/starlight": "^0.35.2", "astro": "^5.6.1", "sharp": "^0.34.2", + "starlight-changelogs": "^0.2.1", "starlight-links-validator": "^0.17.2", "starlight-llms-txt": "^0.6.0" }, @@ -18,6 +19,15 @@ "starlight-github-alerts": "^0.1.0" } }, + "node_modules/@ascorbic/loader-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@ascorbic/loader-utils/-/loader-utils-1.0.2.tgz", + "integrity": "sha512-pg43g83gojVtEsAkXfjWuzJhuXneJp4wM/leBftGkCPV3yxKgB92EWA+nWu735BgbBMph3P7DrVqVc3ikt+dJA==", + "license": "MIT", + "peerDependencies": { + "astro": "^4.14.0 || ^5.0.0-beta.0" + } + }, "node_modules/@astrojs/compiler": { "version": "2.12.2", "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.12.2.tgz", @@ -5724,6 +5734,26 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/starlight-changelogs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/starlight-changelogs/-/starlight-changelogs-0.2.1.tgz", + "integrity": "sha512-fy76e1bDicxHO/AkcqVqkkHnIMuXlWNvUops0ypF6gGErIZaHR0QHDrYrETJbUFIQCF5M6l6OD7NUl3VRGJBEw==", + "license": "MIT", + "dependencies": { + "@ascorbic/loader-utils": "^1.0.2", + "github-slugger": "^2.0.0", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-to-markdown": "^2.1.2", + "mdast-util-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=18.17.1" + }, + "peerDependencies": { + "@astrojs/starlight": ">=0.35.0" + } + }, "node_modules/starlight-github-alerts": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/starlight-github-alerts/-/starlight-github-alerts-0.1.0.tgz", diff --git a/docs/package.json b/docs/package.json index 70e096c54a..20d52870c4 100644 --- a/docs/package.json +++ b/docs/package.json @@ -14,6 +14,7 @@ "@astrojs/starlight": "^0.35.2", "astro": "^5.6.1", "sharp": "^0.34.2", + "starlight-changelogs": "^0.2.1", "starlight-links-validator": "^0.17.2", "starlight-llms-txt": "^0.6.0" }, diff --git a/docs/src/content.config.ts b/docs/src/content.config.ts index d9ee8c9d1c..4de861b183 100644 --- a/docs/src/content.config.ts +++ b/docs/src/content.config.ts @@ -1,7 +1,21 @@ import { defineCollection } from 'astro:content'; import { docsLoader } from '@astrojs/starlight/loaders'; import { docsSchema } from '@astrojs/starlight/schema'; +import { changelogsLoader } from 'starlight-changelogs/loader'; export const collections = { docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }), + changelogs: defineCollection({ + loader: changelogsLoader([ + { + provider: 'github', // use GitHub releases as changelog source + base: 'changelog', // base path for changelog pages + owner: 'githubnext', // GitHub org/user + repo: 'gh-aw', // GitHub repo + // Use GitHub token if available in environment, otherwise rely on public API + ...(process.env.GITHUB_TOKEN && { token: process.env.GITHUB_TOKEN }), + // No process filter: include all releases + }, + ]), + }), };