Skip to content

Commit af76cbb

Browse files
GeekTrainerCopilot
andcommitted
feat(docs): publish workshop site + dedup + content partials
Builds out the workshop-content/ directory as a publishable MkDocs site and removes long-standing duplication across the three learning paths. Site infrastructure (Phase A1) - mkdocs.yml at repo root with Material theme, dark/light toggle, nav tabs, search, code-copy, edit links, and PyMdown Snippets configured against partials/. - requirements-docs.txt pinning mkdocs-material, pymdown-extensions, and mkdocs-callouts (renders > [!NOTE]/[!IMPORTANT]/[!TIP] blocks as Material admonitions). - .github/workflows/pages.yml builds with mkdocs --strict on PRs (validation only) and on push to main (build + deploy via actions/deploy-pages). Explicit per-job permissions; pages concurrency group; pinned actions. - site/ and .venv-docs/ added to .gitignore. Content partials (Phase A2 — Tier 1) Five reusable snippets at repo-root partials/, replacing verbatim duplicates across paths via --8<-- includes: - sections/coding-agent-intro.md (vscode/4 + cloud/2) - sections/iterating-recap.md (vscode/7 + cloud/5) - sections/security-coding-agent.md (vscode/7 + cloud/5) - scenarios/tech-debt.md (vscode/4 + cloud/2) - scenarios/accessibility.md (cli/6 + shared/coding-agent/custom-agents) Partials follow inline-links-only / no-images / no-H1 rules documented in partials/README.md. Path-publishing fixes - Converted 3 outbound links pointing to .github/instructions/*.md to absolute github.com URLs (would otherwise break --strict). - Escaped <branch-name> placeholders in iterating files so they render as code spans, not stray HTML tags. - Escaping shared/1 link refs to absolute URLs preserves both raw GitHub readability and Pages strict build. Prior dedup + cleanup (also pending on this branch, included here) - shared/coding-agent/{custom-agents,managing-agents}.md as canonical bodies for the cross-path coding-agent flows. - Wrappers in vscode/{5,6} and cloud/{3,4} reduced to skeletons pointing to the shared module. - Multiple polish passes from earlier session work (cli warm-up, hands-on demos, /delegate optional section, etc.). Local validation: mkdocs build --strict passes with zero errors; all 5 partials resolve correctly in rendered output; GitHub alerts render as Material admonitions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 2c06d39 commit af76cbb

42 files changed

Lines changed: 601 additions & 1738 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/pages.yml‎

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Build and deploy workshop site
2+
3+
# Builds the MkDocs site. Deploys to GitHub Pages on pushes to main.
4+
# Pull requests run a build-only validation pass.
5+
6+
on:
7+
push:
8+
branches: [main]
9+
paths:
10+
- 'workshop-content/**'
11+
- 'partials/**'
12+
- 'mkdocs.yml'
13+
- 'requirements-docs.txt'
14+
- '.github/workflows/pages.yml'
15+
pull_request:
16+
paths:
17+
- 'workshop-content/**'
18+
- 'partials/**'
19+
- 'mkdocs.yml'
20+
- 'requirements-docs.txt'
21+
- '.github/workflows/pages.yml'
22+
workflow_dispatch:
23+
24+
# Single in-flight deploy per branch; do not cancel an active deploy mid-flight.
25+
concurrency:
26+
group: pages-${{ github.ref }}
27+
cancel-in-progress: false
28+
29+
permissions:
30+
contents: read
31+
32+
jobs:
33+
build:
34+
name: Build site (mkdocs --strict)
35+
runs-on: ubuntu-latest
36+
steps:
37+
- name: Checkout repository
38+
uses: actions/checkout@v4
39+
40+
- name: Set up Python
41+
uses: actions/setup-python@v5
42+
with:
43+
python-version: '3.12'
44+
cache: 'pip'
45+
cache-dependency-path: requirements-docs.txt
46+
47+
- name: Install MkDocs and extensions
48+
run: pip install -r requirements-docs.txt
49+
50+
- name: Build site (strict)
51+
run: mkdocs build --strict
52+
53+
- name: Upload Pages artifact
54+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
55+
uses: actions/upload-pages-artifact@v3
56+
with:
57+
path: site
58+
59+
deploy:
60+
name: Deploy to GitHub Pages
61+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
62+
needs: build
63+
runs-on: ubuntu-latest
64+
permissions:
65+
contents: read
66+
pages: write
67+
id-token: write
68+
environment:
69+
name: github-pages
70+
url: ${{ steps.deployment.outputs.page_url }}
71+
steps:
72+
- name: Deploy to GitHub Pages
73+
id: deployment
74+
uses: actions/deploy-pages@v4

‎.gitignore‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,9 @@ msbuild.err
6868
msbuild.wrn
6969

7070
# SQLite
71-
*.db
71+
*.db
72+
# MkDocs build output
73+
site/
74+
75+
# MkDocs docs venv (local docs builds)
76+
.venv-docs/

‎mkdocs.yml‎

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
site_name: Agents in the SDLC Workshop
2+
site_description: A hands-on workshop exploring GitHub Copilot agents across VS Code, the Copilot CLI, and the Copilot coding agent.
3+
site_url: https://github-samples.github.io/agents-in-sdlc/
4+
repo_url: https://github.com/github-samples/agents-in-sdlc
5+
edit_uri: edit/main/workshop-content/
6+
docs_dir: workshop-content
7+
8+
theme:
9+
name: material
10+
palette:
11+
- scheme: default
12+
primary: indigo
13+
accent: indigo
14+
toggle:
15+
icon: material/weather-night
16+
name: Switch to dark mode
17+
- scheme: slate
18+
primary: indigo
19+
accent: indigo
20+
toggle:
21+
icon: material/weather-sunny
22+
name: Switch to light mode
23+
features:
24+
- navigation.tabs
25+
- navigation.sections
26+
- navigation.indexes
27+
- navigation.top
28+
- content.code.copy
29+
- content.action.edit
30+
- search.highlight
31+
- search.suggest
32+
icon:
33+
repo: fontawesome/brands/github
34+
35+
markdown_extensions:
36+
- admonition
37+
- attr_list
38+
- md_in_html
39+
- tables
40+
- toc:
41+
permalink: true
42+
- pymdownx.details
43+
- pymdownx.superfences
44+
- pymdownx.tabbed:
45+
alternate_style: true
46+
- pymdownx.snippets:
47+
base_path:
48+
- partials
49+
check_paths: true
50+
51+
plugins:
52+
- search
53+
- callouts
54+
55+
# Files inside docs_dir that should not be published as standalone pages.
56+
# (Currently empty; partials live OUTSIDE docs_dir at repo root /partials.)
57+
not_in_nav: |
58+
/shared/coding-agent/*.md
59+
60+
nav:
61+
- Home: README.md
62+
- Prerequisites: shared/0-prereqs.md
63+
- Custom instructions: shared/1-custom-instructions.md
64+
- VS Code path:
65+
- Overview: vscode/README.md
66+
- 2. MCP with VS Code: vscode/2-mcp.md
67+
- 3. Agent mode: vscode/3-agent-mode.md
68+
- 4. Coding agent: vscode/4-coding-agent.md
69+
- 5. Custom agents: vscode/5-custom-agents.md
70+
- 6. Managing agents: vscode/6-managing-agents.md
71+
- 7. Iterating: vscode/7-iterating.md
72+
- Copilot CLI path:
73+
- Overview: cli/README.md
74+
- 2. Install Copilot CLI: cli/2-install-copilot-cli.md
75+
- 3. MCP with CLI: cli/3-mcp.md
76+
- 4. Generating code: cli/4-generating-code.md
77+
- 5. Agent skills: cli/5-agent-skills.md
78+
- 6. Custom agents: cli/6-custom-agents.md
79+
- 7. Slash commands: cli/7-slash-commands.md
80+
- 8. Review: cli/8-review.md
81+
- Cloud agent path:
82+
- Overview: cloud/README.md
83+
- 2. Coding agent: cloud/2-coding-agent.md
84+
- 3. Custom agents: cloud/3-custom-agents.md
85+
- 4. Managing agents: cloud/4-managing-agents.md
86+
- 5. Iterating: cloud/5-iterating.md

‎partials/README.md‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Reusable Markdown partials for the workshop site
2+
3+
This directory holds reusable content fragments included into the published workshop site
4+
(`https://github-samples.github.io/agents-in-sdlc/`) via the
5+
[PyMdown Snippets](https://facelessuser.github.io/pymdown-extensions/extensions/snippets/) extension.
6+
7+
Snippets are referenced from pages in `workshop-content/` using:
8+
9+
```markdown
10+
--8<-- "sections/coding-agent-intro.md"
11+
```
12+
13+
The `base_path` for snippet resolution is configured to this folder in `mkdocs.yml`.
14+
15+
## Rules for partials
16+
17+
- **Inline links only** — do NOT use reference-style links (`[text][ref]` plus `[ref]: url`). Reference
18+
definitions become document-global once the snippet is included and can collide with the host page.
19+
- **No image references** — keep images in the consuming page outside the include. Snippets are
20+
inserted before Markdown conversion and have no stable source path.
21+
- **No H1** — partials drop into the middle of a page; use H2 (`##`) at most.
22+
- **One concept per partial** — easier to reuse, easier to update.
23+
24+
## Layout
25+
26+
```
27+
partials/
28+
scenarios/ # Repeatable scenario blocks (Tailspin-specific framing)
29+
sections/ # Multi-paragraph sections that recur verbatim across paths
30+
```

‎partials/scenarios/.gitkeep‎

Whitespace-only changes.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
## Scenario
2+
3+
Tailspin Toys is committed to ensuring their crowdfunding platform is accessible to all users, regardless of their visual abilities or preferences. Recent user feedback has highlighted that some users find the current dark theme difficult to read due to insufficient contrast between text and background colors. To address this accessibility concern, the design team has requested the implementation of a high-contrast mode that users can toggle on and off.
4+
5+
Because accessibility is critical, you want to ensure this is implemented as quickly as possible. You're going to utilize a custom agent to generate the functionality.

‎partials/scenarios/tech-debt.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## Scenarios
2+
3+
Tailspin Toys has some tech debt they'd like to address. The contractors initially hired to create the first version of the site left the documentation in an unideal state - and by that you'll notice it's completely lacking. As a first step, they'd like to see docstrings or the equivalent added to all functions in the application.
4+
5+
Additionally, the design team is ready to get to work on building the UX for managing games. They don't need a full implementation yet, but they at least need some endpoints they can use for testing. Specifically, they need endpoints for the games API which will allow them to create, update and delete games. This is currently a blocker, but there are other issues which are of higher priority at the moment.
6+
7+
These are both examples of tasks which can quickly find themselves deprioritized, and are great to assign to Copilot coding agent. Copilot coding agent can then work on them asynchronously, allowing the developer to focus on other tasks, then return to review Copilot's work and ensure everything is as expected.

‎partials/sections/.gitkeep‎

Whitespace-only changes.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Introducing GitHub Copilot coding agent
2+
3+
[GitHub Copilot coding agent](https://docs.github.com/copilot/using-github-copilot/coding-agent/about-assigning-tasks-to-copilot#overview-of-copilot-coding-agent) can perform tasks in the background, much in the same way a human developer would. And, just like with working with a human developer, this can be done in multiple ways, including [assigning a GitHub issue to Copilot](https://docs.github.com/copilot/using-github-copilot/coding-agent/using-copilot-to-work-on-an-issue). Once assigned, Copilot will create a draft pull request to track its progress, setup an environment, and begin working on the task. You can dig into Copilot's session while it's still in flight or after its completed. Once its ready for you to review the proposed solution, it'll tag you in the pull request!
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Throughout this lab you've assigned several issues to GitHub Copilot coding agent. You asked it to add documentation to your code, generate endpoints for the design team to iterate on, and implement accessibility features including high-contrast and light mode toggles. Let's explore the code changes it suggested and, if necessary, provide feedback to Copilot to improve its work.
2+
3+
## Scenario
4+
5+
As has been highlighted numerous times, the fundamentals of software design and DevOps do not change with the addition of generative AI. We always want to review the code generated, and work through our normal DevOps process. With that in mind, let's review the suggestions from GitHub Copilot for creating the documentation, new endpoints, and accessibility features before we turn on review for the rest of our team.

0 commit comments

Comments
 (0)