Add GitHub Pages documentation site via MkDocs - #156
Conversation
Adds a MkDocs Material-based documentation site (modeled on Azure/azure-functions-golang-worker PR #60) so this repo's docs/*.md files publish as a browsable, searchable site at https://azure.github.io/azure-functions-agents-runtime/. - mkdocs.yml: material theme, nav tree (Home / Getting started / Concepts / Reference), edit_uri back to docs/, validation tuning for intentionally nav-omitted internal docs (frds/, auto-generated reference). - requirements-docs.txt: pins mkdocs-material. - .github/workflows/docs.yml: build (mkdocs build --strict) on push/PR/dispatch; deploy (GitHub Pages) gated to push/dispatch, same two-job pattern as PR #60. - docs/index.md, docs/getting-started.md: new landing + quickstart pages adapted from README. - docs/architecture.md, docs/triggers.md, docs/workflows.md, docs/frds/README.md: rewrote a handful of relative links that pointed outside docs/ (README.md, samples/, AGENTS.md, .github/) to absolute GitHub URLs so they resolve both on GitHub and under MkDocs's docs_dir. - README.md / CONTRIBUTING.md / AGENTS.md: link to the new docs site and document local preview via `mkdocs serve`. - .github/skills/update-schema-docs/SKILL.md: extended to also keep docs/index.md and docs/getting-started.md in sync when schema changes introduce new user-facing capability. - .gitignore: ignore mkdocs's site/ build output. Closes Azure/azure-functions-bucees-planning#1283. Note: after merge, a repo admin must flip Settings -> Pages -> Source: GitHub Actions once (cannot be automated from this PR). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f4f256ba-f253-4497-b706-c102f463bfb8
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f4f256ba-f253-4497-b706-c102f463bfb8
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f4f256ba-f253-4497-b706-c102f463bfb8
Laveesh Rohra (larohra)
left a comment
There was a problem hiding this comment.
Copilot address these comments
There was a problem hiding this comment.
Pull request overview
Adds a GitHub Pages documentation site for azure-functions-agents-runtime using MkDocs Material, wiring existing docs/ content into a public nav and introducing landing/onboarding pages and a deployment workflow.
Changes:
- Add MkDocs configuration and new docs landing pages (
docs/index.md,docs/getting-started.md) and link the published site fromREADME.md. - Introduce a
docsextra inpyproject.tomlformkdocs-materialand add a GitHub Actions workflow to build/deploy the site. - Update existing docs to use GitHub-absolute links so they work both in-repo and when rendered by MkDocs.
Reviewed changes
Copilot reviewed 13 out of 15 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| README.md | Adds a prominent link to the published GitHub Pages documentation site. |
| pyproject.toml | Adds a docs optional dependency extra for mkdocs-material. |
| mkdocs.yml | Configures MkDocs Material theme, extensions, validation, and navigation. |
| docs/workflows.md | Converts sample links to GitHub-absolute URLs for MkDocs compatibility. |
| docs/triggers.md | Converts sample link to GitHub-absolute URL for MkDocs compatibility. |
| docs/index.md | Adds a new documentation site landing page adapted from the README. |
| docs/getting-started.md | Adds a new documentation site onboarding/quickstart page. |
| docs/frds/README.md | Converts internal-process links to GitHub-absolute URLs. |
| docs/architecture.md | Converts README link to GitHub-absolute URL for MkDocs compatibility. |
| CONTRIBUTING.md | Documents local preview steps and CI behavior for docs builds. |
| AGENTS.md | Updates documentation conventions to include the new docs site workflow/pages. |
| .gitignore | Ignores MkDocs build output (site/). |
| .github/workflows/docs.yml | Adds build + deploy workflow for publishing docs to GitHub Pages. |
| .github/skills/update-schema-docs/SKILL.md | Extends the skill’s guidance to include syncing new docs landing pages on schema changes. |
Suppressed comments (2)
.github/workflows/docs.yml:57
actions/upload-pages-artifactis referenced by a moving tag (@v3). Pin it to an immutable commit SHA to reduce supply-chain risk and ensure builds are reproducible.
- name: Upload GitHub Pages artifact
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
uses: actions/upload-pages-artifact@v3
with:
path: site
.github/workflows/docs.yml:76
actions/deploy-pagesis referenced by a moving tag (@v4). Pin it to an immutable commit SHA for reproducible deployments and reduced supply-chain risk.
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…erence to nav - Pin actions/configure-pages, actions/upload-pages-artifact, and actions/deploy-pages to verified commit SHAs (per Copilot review). - Bump actions/checkout to v5.1.0 and astral-sh/setup-uv to v9.0.0, both of which run natively on Node 24, resolving the Node 20 deprecation warning in Actions logs. - Add docs/getting-started.md notes: mention the [monitor] extra and link front-matter-reference.md under 'Where to go next'; wire the reference page into mkdocs.yml nav. Note: did not revert the absolute GitHub links in docs/frds/README.md, docs/architecture.md, docs/triggers.md, and docs/workflows.md back to relative links. Those links point to files outside docs/ (AGENTS.md, .github/skills/, samples/, README.md), and MkDocs 'strict' mode fails the build when a relative link's target isn't part of the docs/ tree. Verified with 'mkdocs build --strict'. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f4f256ba-f253-4497-b706-c102f463bfb8
The configure-pages step runs in build, so pages: write must be granted to that job rather than only deploy.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: f4f256ba-f253-4497-b706-c102f463bfb8
Laveesh Rohra (larohra)
left a comment
There was a problem hiding this comment.
Copilot fix it
…dback Co-authored-by: larohra <41490930+larohra@users.noreply.github.com>
Fixed in 54d874e — |
Tsuyoshi Ushio (TsuyoshiUshio)
left a comment
There was a problem hiding this comment.
LGTM
Summary
Adds a GitHub Pages documentation site for this repo, powered by MkDocs Material, modeled on
Azure/azure-functions-golang-workerPR #60 as referenced in Azure/azure-functions-bucees-planning#1283.Closes Azure/azure-functions-bucees-planning#1283.
Sample view -

What's included
mkdocs.ymlwith Material theme, navigation (Home / Getting started / Concepts / Reference), and repository edit links.pyproject.tomldocsoptional dependency extra (mkdocs-material==9.7.7) with the dependency captured inuv.lock; no standalone requirements file..github/workflows/docs.ymlusingastral-sh/setup-uv:uv sync --extra docs --no-install-project --locked, thenuv run --no-sync mkdocs build --strict; deploys only on pushes tomainor manual dispatch.docs/index.mdanddocs/getting-started.mdlanding/quickstart pages adapted fromREADME.md.front-matter-reference.mdanddocs/frds/) remain intentionally out of the public nav.docs/converted to absolute GitHub URLs so they work both on GitHub and under MkDocs.uv sync --extra docs --no-install-projectfollowed byuv run mkdocs serve.update-schema-docsskill extended to keep the new landing pages synchronized when schema changes add user-facing capability.Why MkDocs
MkDocs is markdown-native, provides search/dark mode/navigation through Material, and matches the proven Azure Functions workflow pattern in PR #60. Sphinx would add unnecessary format/tooling overhead, while default Jekyll would provide weaker navigation and search.
Validation
uv sync --extra docs --no-install-project --lockedanduv run --no-sync mkdocs build --strictboth pass with exit code 0. Remaining output is INFO-level for intentionally omitted internal docs and pre-existing anchor/link notices.Manual follow-up
After merge, a repo admin must set Settings → Pages → Source: GitHub Actions once. Subsequent pushes to
mainpublish automatically.