Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Updated advanced module to be about Code Review #204

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
WirelessLife merged 1 commit into main from advanced-usage-2026-q1
Sep 4, 2025
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
113 changes: 35 additions & 78 deletions Using-Advanced-GitHub-Copilot-Features/README.md
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -2,114 +2,71 @@

# Using Advanced GitHub Copilot Features

GitHub Copilot offers much more than just code suggestions. As a Software Engineer, you often need to understand existing code and improve it with documentation, tests, and automation.
In this module, you'll learn how to leverage GitHub Copilot's advanced capabilities to provide automated code reviews and generate complex code autonomously and asynchronously.

In this module, you’ll explore the advanced features of GitHub Copilot, enabling you to interactively work with your code while applying suggestions and insights more effectively.
This module will be updated periodically to include new general availability features and improvements. Currently, this module can be completed in about 20 minutes.

Using a Python-based HTTP API, you’ll make modifications, fix bugs, create documentation, and write tests for a new endpoint that you’ll implement.
</header>

By the end of this module, you’ll be able to:

- **Who this is for**: Developers, DevOps Engineers, Software development managers, Testers.
- **What you'll learn**: Using Advanced GitHub Copilot features to test, document, and work with code.
- **What you'll build**: A new HTTP API route, along with documentation and tests to verify its correctness.
- **Prerequisites**: GitHub Copilot is available to use for free, sign up for [GitHub Copilot](https://gh.io/copilot).
- **Timing**: This module can be completed in under an hour.
- Assign GitHub Copilot as a reviewer for fast feedback on your code changes.

By the end of this module, you'll acquire the skills to be able to:
## 📖 Prerequisite reading

- Use advanced GitHub Copilot features like inline chat, slash commands, and agents.
- Interact with GitHub Copilot with deeper context on your project and ask questions about it.

## Prerequisite reading:
- [Introduction to prompt engineering with GitHub Copilot](https://learn.microsoft.com/training/modules/introduction-prompt-engineering-with-github-copilot//?WT.mc_id=academic-113596-abartolo)
- [Using advanced GitHub Copilot features](https://learn.microsoft.com/training/modules/advanced-github-copilot/?WT.mc_id=academic-113596-abartolo)
- [Using GitHub Copilot with JavaScript](https://learn.microsoft.com/training/modules/introduction-copilot-javascript/?WT.mc_id=academic-113596-abartolo)

## Requirements
## 📋 Requirements

1. Enable your [GitHub Copilot service](https://github.com/github-copilot/signup)
1. Open [this repository with Codespaces](https://codespaces.new/MicrosoftDocs/mslearn-advanced-copilot)

## 💪🏽 Exercise
1. Open [this repository with Codespaces](https://codespaces.new/github-samples/node-recipe-app?quickstart=1)

**Right click the following Codespaces button to open your Codespace in a new tab**

[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MicrosoftDocs/mslearn-copilot-codespaces-python)

The current API is not exposing country/{country} which needs to be implemented to list cities. The route should allow only GET HTTP requests with a JSON response providing information from the historical high and low for that country, city, and given month.

As with any implementation, this addition should include at least one test function to work with the pytest runner and test framework.

### 🛠 Step 1: Add a new route
In our first exercise we will create a new route in our API. Go to the main.py file, and by using the inline chat with the following command `ctrl` + `i` (on Windows) or `cmd` + `i`(on Mac) ask GitHub Copilot to help you create a new API that shows you the cities of a country.

Use the following prompt in inline-chat:
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/github-samples/node-recipe-app?quickstart=1)

```
Create a new route that exposes the cities of a country.
```
_Note: if you have an existing Codespace with this project, please create a new one for this module._

This prompt should give you something similar like this:
This application is a recipe app that allows users to create, edit, and read recipes. By default, there are notable missing features including the ability to delete and search recipes.

## 🧑‍💻 Section 1: Copilot Code Review

```python
# Create a new route that exposes the cities of a country:
@app.get('/countries/{country}')
def cities(country: str):
return list(data[country].keys())
**🎯 Learning Goals**

```
- Be able to trigger code reviews in your code editor.
- Request code reviews on GitHub.com.

> [!NOTE]
> Try your new route and refine your prompt until the result is as desired.
Once your Codespace launches, you'll have a fully functional development environment with the entire repository preloaded.

### 🔎 Step 2: Create a test
Now that you have created a new route, let's create a test with Copilot Chat for this route that uses Spain as the country. Remember to select your code and ask Copilot Chat to help you with this specific API that we just have created.
Open the `src/routes.js` file. Just above the final line where the router is exported, add the following code:

Use the following prompt with GitHub Copilot Chat:

```
/tests help me to create a new test for this route that uses Spain as the country.
```js
router.get('/recipes/random', async (req, res) => {
const db = await getDbConnection()
const recipes = db.all('SELECT * FROM recipes')
const randomIndex = Math.floor(Math.random() * recipes.length)
const recipe = recipes[randomIndex]
res.render('recipe', { recipe })
})
```

![Copilot Chat image example](https://raw.githubusercontent.com/MicrosoftDocs/mslearn-advanced-copilot/main/images/ideascopilot.png)


Once Copilot has helped you to create your test, try it. If this is not functioning as expected, feel free to share those details with Copilot in the chat. For example:

```
This test is not quite right, it is not including cities that doesn't exist. Only Seville is part of the API.
```

It should give you another solution. Keep trying until you achieve the desired result.

### 🐍 Step 3: Use an agent to write the project
During this step we will be using an agent (workspace) to write the project documentation on how to run this project. In the GitHub Copilot Chat, we will try the following prompt:

`> @workspace help me to use an agent to write the project documentation on how to run it .`

Finally, verify the new endpoint is working by trying it out by going to the `/docs` endpoint and confirming that the endpoint shows up.
_Note: this code has at least one logic bug and at least one area where it is inefficient. That's ok! Copilot should help us identify these improvements._

Open your source control sidebar and then request a code review from Copilot in your IDE. After a few seconds, Copilot will create inline comments, if any, in your editor.

### 💡 Step 4: Using Slash Commands
![Click source control icon in activity bar and then the code review button above the commit message box.](./images/request-ccr-ide.png)

Now that you've used GitHub Copilot to generate and explain code, you can also explore some other alternative approaches to perform developer tasks. These extra challenges will help you dive deeper into other GitHub Copilot features in addition to the ones you already know. For these extra challenges, you will use the Chat interface. Click on the GitHub Copilot Chat icon on the left sidebar if you don't have it open yet.
You can choose to apply the suggested change directly, or discard it if preferred. In this case, Copilot has 2 different comments for this piece of code — applying or discarding will load the second comment. You can also toggle between them using the arrow icons in the top-right of the comment box.

🚀 Congratulations, through the exercise, you have used GitHub Copilot with many different features that will allow you to work better with different projects. You interactively used some features to write tests, documentation, and find out more about existing code.
![Copilot inline comments in the editor showing a suggested change for efficiency. There is an "Apply and Go to Next" button and a a button fir discard. Visible is comment 1 of 2.](./images/ccr-ide-comment.png)

## Legal Notices
Remember, Copilot is nondeterministic so you may have different suggestions. Apply all changes and commit your work.

Microsoft and any contributors grant you a license to the Microsoft documentation and other content
in this repository under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/legalcode),
see the [LICENSE](LICENSE) file, and grant you a license to any code in the repository under the [MIT License](https://opensource.org/licenses/MIT), see the
[LICENSE-CODE](LICENSE-CODE) file.
### Copilot Code Review on web and mobile

Microsoft, Windows, Microsoft Azure, and/or other Microsoft products and services referenced in the documentation
may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries.
The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks.
Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.
Copilot can also be assigned as a reviewer for pull requests on the GitHub website and via the GitHub mobile app. This allows you to get feedback on your code changes from Copilot directly in the context of your pull request. This feature requires a [paid license for GitHub Copilot](https://github.com/features/copilot#pricing).

Privacy information can be found at https://privacy.microsoft.com/en-us/
## 📖 Discover more

Microsoft and any contributors reserve all other rights, whether under their respective copyrights, patents,
or trademarks, whether by implication, estoppel, or otherwise.
GitHub Copilot is constantly evolving with new features and improvements. To stay updated on the latest developments, check out the [GitHub Changelog](https://github.blog/changelog/?label=copilot). This module will be updated as new features enter general availability.
View file Open in desktop
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
[フレーム]
View file Open in desktop
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
[フレーム]

AltStyle によって変換されたページ (->オリジナル) /