Skip to content
Open
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
40 changes: 24 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,39 @@ Choose one:
Also required:
- Azure Subscription

## Getting Started
## Try it out

1. Review the table below and the specific GitHub Copilot customizations used in this repo (located in `.github/` and `.vscode/mcp.json`) to get an idea of how these pieces work together to help you write Infrastructure as Code.
You can test the included GitHub Copilot customizations by using the included prompt template to create IaC for a VM:

### GitHub Copilot Customizations
| Type | Location | When Used | Scope | Best For / Use Cases |
|------|----------|-----------|-------|----------------------|
| **Repository Instructions** | `.github/copilot-instructions.md` | Every chat/edit session | Entire repository | Global repo conventions, coding standards, guardrails that apply everywhere |
| **File/Path Instructions** | `.github/instructions/*.instructions.md` | Pattern/glob match (via `applyTo` frontmatter) | Specific files or paths | Language-specific rules (e.g., `**/*.bicep`, `**/*.tf`), framework guidelines |
| **Prompts** | `.github/prompts/*.prompt.md` | On-demand via `/` command | Single task | Reusable prompt templates, common tasks, onboarding workflows |
| **Agents** | `.github/agents/*.agent.md` | Invoked via Agent selector | Specialized persona | Domain experts; personas with specific knowledge/tools |
| **Skills** | `.github/skills/<name>/SKILL.md` | Automatic by agent | Task-specific capability | Custom tools, API integrations, deployment checks, doc lookups |
| **MCP Servers** | `mcp.json` | When configured & enabled | External tool integration | Connecting to external services (Azure, GitHub, databases, custom APIs) |
1. Run `az login` to authenticate to Azure and select your desired subscription.

2. Run `az login` to authenticate to Azure and select your desired subscription.
2. Run the prompt template by typing `/demo-vm iacLanguage:bicep` or `/demo-vm iacLanguage:terraform` into GitHub Copilot Chat
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing period at the end of this sentence. The instruction should end with a period for consistency with other numbered steps.

Suggested change
2. Run the prompt template by typing `/demo-vm iacLanguage:bicep` or `/demo-vm iacLanguage:terraform` into GitHub Copilot Chat
2. Run the prompt template by typing `/demo-vm iacLanguage:bicep` or `/demo-vm iacLanguage:terraform` into GitHub Copilot Chat.

Copilot uses AI. Check for mistakes.

3. Run the prompt template by typing `/demo-vm iacLanguage:bicep` or `/demo-vm iacLanguage:terraform` into GitHub Copilot Chat
3. Once GitHub Copilot has finished creating the IaC, you can ask it to run the deployment for you or follow the deployment instructions located in `infra/bicep/README.md` or `infra/terraform/README.md`.

4. Once GitHub Copilot has finished creating the IaC, you can ask it to run the deployment for you or follow the deployment instructions located in `infra/bicep/README.md` or `infra/terraform/README.md`.
Want to learn how this repo guides Copilot? See the [Appendix: GitHub Copilot Customizations](#appendix-github-copilot-customizations).

## Extras
Try a challenge task to reinforce the workflow:
Try creating IaC from your own prompts.

or

Try delegating IaC creation to GitHub Copilot Coding Agent:
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The formatting in this section is inconsistent. Line 25 presents a standalone suggestion ending with a period, while line 29 introduces a multi-step process with a colon. Consider restructuring for consistency, either by making both options follow the same format (both ending with colons leading to steps) or by making them parallel standalone statements.

Suggested change
Try delegating IaC creation to GitHub Copilot Coding Agent:
Try delegating IaC creation to GitHub Copilot Coding Agent.

Copilot uses AI. Check for mistakes.
1. Enable GitHub Copilot Coding Agent on your repo.
2. Configure the Azure MCP Server for GitHub Copilot Coding Agent using the official instructions:
https://learn.microsoft.com/en-us/azure/developer/azure-mcp-server/how-to/github-copilot-coding-agent#configure-the-github-repository-to-use-the-azure-mcp-server
3. Re-run the prompt (or create your own) on github.com and let GitHub Copilot Coding Agent handle the task for you.

<!-- Optional: Try the Azure SRE Agent to review your deployment for reliability best practices. -->
<!-- Optional: Try the Azure SRE Agent to review your deployment for reliability best practices. -->

## Appendix: GitHub Copilot Customizations
Use this reference if you want to learn how the repo is configured to guide Copilot.

| Type | Location | When Used | Scope | Best For / Use Cases |
|------|----------|-----------|-------|----------------------|
| **Repository Instructions** | `.github/copilot-instructions.md` | Every chat/edit session | Entire repository | Global repo conventions, coding standards, guardrails that apply everywhere |
| **File/Path Instructions** | `.github/instructions/*.instructions.md` | Pattern/glob match (via `applyTo` frontmatter) | Specific files or paths | Language-specific rules (e.g., `**/*.bicep`, `**/*.tf`), framework guidelines |
| **Prompts** | `.github/prompts/*.prompt.md` | On-demand via `/` command | Single task | Reusable prompt templates, common tasks, onboarding workflows |
| **Agents** | `.github/agents/*.agent.md` | Invoked via Agent selector | Specialized persona | Domain experts; personas with specific knowledge/tools |
| **Skills** | `.github/skills/<name>/SKILL.md` | Automatic by agent | Task-specific capability | Custom tools, API integrations, deployment checks, doc lookups |
| **MCP Servers** | `mcp.json` | When configured & enabled | External tool integration | Connecting to external services (Azure, GitHub, databases, custom APIs) |