Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/deploy-mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: pip install mkdocs-material
Expand Down
14 changes: 3 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
## [project-title] Changelog
# Changelog

<a name="x.y.z"></a>
# x.y.z (yyyy-mm-dd)
This repository is maintained as workshop content rather than a versioned package. Use pull request descriptions and commit history to understand changes.

*Features*
* ...

*Bug Fixes*
* ...

*Breaking Changes*
* ...
For notable workshop refreshes, add dated entries here with a short summary of updated labs, documentation, or tooling.
8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Contributing to [project-title]
# Contributing to GitHub Copilot Hands-on Labs

This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
Expand Down Expand Up @@ -51,15 +51,15 @@ chances of your issue being dealt with quickly:
* **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point to what might be
causing the problem (line of code or commit)

You can file new issues by providing the above information at the corresponding repository's issues link: https://github.com/[organization-name]/[repository-name]/issues/new].
You can file new issues by providing the above information at the repository's issues page: https://github.com/Azure-Samples/github-copilot-hands-on/issues/new.

### <a name="submit-pr"></a> Submitting a Pull Request (PR)
Before you submit your Pull Request (PR) consider the following guidelines:

* Search the repository (https://github.com/[organization-name]/[repository-name]/pulls) for an open or closed PR
* Search the repository (https://github.com/Azure-Samples/github-copilot-hands-on/pulls) for an open or closed PR
that relates to your submission. You don't want to duplicate effort.

* Make your changes in a new git fork:
* Make your changes in your fork:

* Commit your changes using a descriptive commit message
* Push your fork to GitHub:
Expand Down
123 changes: 54 additions & 69 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,96 +1,81 @@
# GitHub Copilot Hands-on Labs

Welcome to the GitHub Copilot Hands-on Labs repository. This repository provides a collaborative environment for experimenting with GitHub Copilot across various languages and frameworks through hands-on demos.
This repository contains a GitHub Copilot workshop created by Microsoft Germany Cloud Solution Architects. It helps customers get hands-on experience with Copilot across everyday coding, test generation, API clients, agentic workflows, and Model Context Protocol (MCP) scenarios.

## Purpose
The canonical sample repository is [`Azure-Samples/github-copilot-hands-on`](https://github.com/Azure-Samples/github-copilot-hands-on). This fork is used to prepare changes safely before opening a pull request back to Azure-Samples.

This repository is designed to:
## What is in this repo?

- Provide a practical learning environment to explore GitHub Copilot.
- Showcase demos that span different programming languages, deployment scenarios, and integrations.
- Serve as a community-driven resource where developers can contribute their own demos and enhancements.
| Path | Purpose |
| --- | --- |
| `docs/` | Published MkDocs workshop content. Start here when delivering or previewing the workshop. |
| `labs/` | Starter code, sample projects, and supporting lab instructions. |
| `mkdocs.yml` | MkDocs Material site configuration and navigation. |
| `.github/workflows/deploy-mkdocs.yml` | GitHub Pages deployment workflow for the docs site. |

## What's Included
## Workshop content

- [GitHub Copilot Hackathon](#github-copilot-hands-on)
- [Pre-requisites](#pre-requisites)
- [Labs](#labs)
- [Python](#python)
- [Java](#java)
- [JavaScript & HTML](#html)
- ...
The workshop is designed to be flexible. Trainers can run a short introduction with one or two fundamentals labs, or a longer session that includes agentic and MCP scenarios.

## Getting Started
| Area | Labs |
| --- | --- |
| Fundamentals | HTML Image Gallery, Rock Paper Scissors |
| API clients | Star Wars API in Python, Star Wars API in Java |
| Agentic workflows and MCP | HTML Image Gallery with MCP, Build Your Own MCP Server, Four in a Row MCP Game |
| Extended resources | External labs linked from the "Other Labs" page |

- x
## Prerequisites

## Pre-requisites
Participants need:

**GitHub Copilot access**
- A GitHub account with GitHub Copilot access.
- [Visual Studio Code](https://code.visualstudio.com/) with the GitHub Copilot extension enabled.
- Git installed locally, or access to GitHub Codespaces.
- Runtime dependencies for the selected lab, for example Python, Java and Maven, Node.js, Docker, or .NET.

Users should hve access to copilot licenses. If you still do not have an active Copilot license, request your copilot admin to assign you a copilot seat.
Some MCP labs also require a GitHub personal access token and explicit tool approval in Copilot Chat.

## Preview the workshop locally

### IDE Extensions
Install MkDocs Material and start the local preview server:

Install the Copilot Extension for you IDE:

- [Visual Studio Code Copilot Extension](https://docs.github.com/en/copilot/using-github-copilot/getting-code-suggestions-in-your-ide-with-github-copilot?tool=vscode)
- [Visual Studio 2022 Copilot Extension](https://learn.microsoft.com/en-us/visualstudio/ide/visual-studio-github-copilot-extension?view=vs-2022)
- [Visual Studio 2022 Copilot Chat Extension](https://learn.microsoft.com/en-us/visualstudio/ide/visual-studio-github-copilot-chat?view=vs-2022)
- [JetBrains Copilot Extension](https://docs.github.com/en/copilot/using-github-copilot/getting-code-suggestions-in-your-ide-with-github-copilot?tool=jetbrains)

### Work locally

**VisualStudio Code**

https://code.visualstudio.com/

**Install Docker (Optional)**

https://docs.docker.com/engine/install/

**For Nodejs**

- [Install Node and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
- Install mocha:

Run:

``` bash
npm install --global mocha
npm install axios
```bash
python -m pip install mkdocs-material
mkdocs serve
```

**For .NET**
Then open the local URL printed by MkDocs. Before publishing documentation changes, run:

[Install .Net](https://dotnet.microsoft.com/download)

**For Java**
```bash
mkdocs build --strict
```

- [Install Java](https://learn.microsoft.com/en-us/java/openjdk/install)
- [Install Maven](https://maven.apache.org/install.html)
## Working from a fork

**For Python**
- [Install Python](https://www.python.org/downloads/)
Use your fork for changes and target the Azure-Samples repository when opening a pull request.

**For C++**
- [Install cmake](https://cmake.org/download/)
```bash
git remote add upstream https://github.com/Azure-Samples/github-copilot-hands-on.git
git fetch upstream
git checkout -b <your-branch> upstream/main
# make changes
git push origin <your-branch>
```

### Quickstart
(Add steps to get up and running quickly)
Open the pull request with:

1. git clone [repository clone url]
2. cd [repository name]
3. ...
- **Base repository**: `Azure-Samples/github-copilot-hands-on`
- **Base branch**: `main`
- **Head repository**: your fork
- **Compare branch**: your feature branch

## Resources
## Keeping the workshop current

(Any additional resources or related projects)
GitHub Copilot changes quickly. Keep volatile topics link-first: explain how to choose a model, mode, or tool at a high level, then link to the official documentation for the latest details.

- Link to supporting information
- Link to similar sample
- ...
---
Useful references:

Happy coding and exploring GitHub Copilot!
- [GitHub Copilot documentation](https://docs.github.com/en/copilot)
- [AI model comparison for GitHub Copilot](https://docs.github.com/en/copilot/reference/ai-models/model-comparison)
- [GitHub Changelog](https://github.blog/changelog/)
- [VS Code AI documentation](https://code.visualstudio.com/docs/ai/overview)
10 changes: 5 additions & 5 deletions docs/customer-stories/customer-story-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ This customer case showcases how we leveraged GitHub Copilot end-to-end to solve

## Lab Overview

**Duration**: 2-3 hours
**Difficulty**: Advanced
**Duration**: 2-3 hours
**Difficulty**: Advanced
**Prerequisites**:

- Java LTS 21 knowledge
Expand Down Expand Up @@ -149,7 +149,7 @@ Use the following custom instructions for your agent tailored to Spring Boot dev
```

!!! tip "Copilot Tip"
Read these custom instructions carefully before starting implementation. These instructions were generated with Claude Sonnet 4.5 based on the initial project description. You can further customize them to your needs.
Read these custom instructions carefully before starting implementation. These instructions were generated with a reasoning model based on the initial project description. You can further customize them to your needs.

### Step 2: Add MCP Servers

Expand Down Expand Up @@ -210,14 +210,14 @@ Use the following prompt to build the first prototype:
- A protected endpoint that returns user-specific data only if the user is logged in
- A logout endpoint that invalidates the session
- Use in-memory session management (default behavior of Spring Boot)

Please generate the complete codebase including:
- Maven `pom.xml`
- Application configuration
- Controllers, services, and any other necessary components
- A Dockerfile to containerize the application for deployment to Azure Container Apps
- A simple UI using Thymeleaf to demonstrate login, protected content access, and logout functionality

Store the app in folder `prototype-1-no-session-management`
Use Java LTS 21 and Spring Boot 3.x
```
Expand Down
4 changes: 2 additions & 2 deletions docs/customer-stories/customer-story-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ This customer case showcases how we leveraged GitHub Copilot end-to-end to build

## Lab Overview

**Duration**: 1-2 hours
**Difficulty**: Advanced
**Duration**: 1-2 hours
**Difficulty**: Advanced
**Prerequisites**:

- Python programming knowledge
Expand Down
Loading