Skip to content

Commit ce0813f

Browse files
committed
feat: Add Dependabot configuration for .NET and GitHub Actions
- Created .github/dependabot.yml to enable automated dependency updates for NuGet and GitHub Actions. - Set update schedule to weekly with a limit of 5 open pull requests. feat: Implement prompts for GitHub issue creation and specification management - Added create_github_issue_feature_from_spec.prompt.md for generating feature request issues from specifications. - Introduced create_github_issues_for_unmet_spec_requirements.prompt.md to create issues for unmet requirements in specifications. - Created create_spec.prompt.md to guide the creation of new specification files optimized for Generative AI. - Added dotnet_best_practices.prompt.md to ensure .NET/C# code adheres to project-specific best practices. - Implemented dotnet_design_pattern_review.prompt.md for reviewing design pattern implementations in .NET code. - Added update_avm_modules_in_bicep.prompt.md for updating Azure Verified Modules in Bicep files. - Created update_llms.prompt.md to update llms.txt for LLM guidance based on documentation changes. build: Set up CI/CD workflows for infrastructure and .NET applications - Added continuous-delivery.yml for automated deployment on main branch pushes and tag creations. - Created continuous-integration.yml for CI checks on pull requests and main branch pushes. - Implemented delete-infrastructure.yml for safely deleting Azure infrastructure. - Added e2e-test.yml for end-to-end testing of deployed applications. - Created lint-and-publish-bicep.yml for linting and publishing Bicep files as artifacts. - Implemented lint-build-test-and-publish-dotnet-apps.yml for linting, building, testing, and publishing .NET applications. - Added provision-infrastructure.yml for provisioning Azure infrastructure. - Created set-build-variables.yml to manage build versioning. - Implemented validate-infrastructure.yml for validating Azure infrastructure deployments. chore: Configure VSCode settings and tasks - Added .vscode/launch.json for .NET Core debugging configurations. - Created .vscode/settings.json to set default solution and commit message generation instructions. - Implemented .vscode/tasks.json for build, publish, and watch tasks for the .NET project.
1 parent c47198b commit ce0813f

34 files changed

+1508
-0
lines changed

.devcontainer/devcontainer.json

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
{
2+
"name": "genai-database-explorer",
3+
"image": "mcr.microsoft.com/devcontainers/dotnet:1-8.0-jammy",
4+
"workspaceFolder": "/workspaces/genai-database-explorer",
5+
"onCreateCommand": "bash ./.devcontainer/on-setup.sh",
6+
// Features to add to the dev container. More info: https://containers.dev/features.
7+
"features": {
8+
"ghcr.io/devcontainers/features/azure-cli:1": {
9+
"version": "latest"
10+
},
11+
"ghcr.io/devcontainers/features/dotnet:2": {
12+
"version": "8.0",
13+
"dotnetRuntimeVersions": "8.0",
14+
"aspNetCoreRuntimeVersions": "8.0"
15+
},
16+
"ghcr.io/devcontainers/features/powershell:1": {
17+
"version": "latest"
18+
},
19+
"ghcr.io/devcontainers/features/git:1": {
20+
"version": "latest"
21+
},
22+
"ghcr.io/devcontainers/features/github-cli:1": {
23+
"version": "latest"
24+
},
25+
"ghcr.io/devcontainers/features/node:1": {
26+
"version": "lts",
27+
"nodeGypDependencies": true
28+
},
29+
"ghcr.io/devcontainers/features/docker-in-docker:2": {
30+
"version": "latest",
31+
"enableNonRootDocker": "true"
32+
}
33+
},
34+
// Configure tool-specific properties.
35+
"customizations": {
36+
// Configure properties specific to VS Code.
37+
"vscode": {
38+
"settings": {
39+
"dotnet.completion.showCompletionItemsFromUnimportedNamespaces": true,
40+
"dotnet.inlayHints.enableInlayHintsForParameters": true,
41+
"dotnet.inlayHints.enableInlayHintsForLiteralParameters": true,
42+
"dotnet.inlayHints.enableInlayHintsForIndexerParameters": true,
43+
"dotnet.inlayHints.enableInlayHintsForObjectCreationParameters": true,
44+
"dotnet.inlayHints.enableInlayHintsForOtherParameters": true,
45+
"dotnet.inlayHints.enableInlayHintsForTypes": true,
46+
"dotnet.inlayHints.enableInlayHintsForImplicitVariableTypes": true,
47+
"dotnet.inlayHints.enableInlayHintsForImplicitObjectCreation": true,
48+
"dotnet.preferCSharpExtension": true,
49+
"bicep.experimental.deployments.enabled": true,
50+
"bicep.suppressedWarnings": [],
51+
"files.associations": {
52+
"*.bicep": "bicep"
53+
}
54+
},
55+
"extensions": [
56+
// .NET and C# Development
57+
"ms-dotnettools.csharp",
58+
"ms-dotnettools.csdevkit",
59+
"ms-dotnettools.vscode-dotnet-runtime",
60+
61+
// Azure Development
62+
"ms-azuretools.vscode-bicep",
63+
"ms-azuretools.azure-dev",
64+
"ms-vscode.azurecli",
65+
"ms-azuretools.vscode-docker",
66+
"ms-azuretools.vscode-azureresourcegroups",
67+
"ms-azuretools.vscode-azurefunctions",
68+
"ms-azuretools.vscode-azureappservice",
69+
"ms-azuretools.vscode-azurestorage",
70+
"ms-azuretools.vscode-cosmosdb",
71+
"ms-vscode.vscode-node-azure-pack",
72+
73+
// GitHub and DevOps
74+
"GitHub.copilot",
75+
"GitHub.copilot-chat",
76+
"GitHub.vscode-github-actions",
77+
"GitHub.vscode-pull-request-github",
78+
79+
// AI and Semantic Kernel
80+
"ms-semantic-kernel.semantic-kernel",
81+
"ms-toolsai.jupyter",
82+
"ms-python.python",
83+
84+
// Development Tools
85+
"ms-vscode.powershell",
86+
"ms-vscode-remote.remote-containers",
87+
"redhat.vscode-yaml",
88+
"ms-vscode.vscode-json",
89+
"bradlc.vscode-tailwindcss",
90+
"esbenp.prettier-vscode",
91+
"ms-vsliveshare.vsliveshare"
92+
]
93+
}
94+
},
95+
96+
// Add additional configuration
97+
"remoteUser": "vscode",
98+
"postCreateCommand": "dotnet restore",
99+
"forwardPorts": [5000, 5001, 7071],
100+
"portsAttributes": {
101+
"5000": {
102+
"label": "HTTP",
103+
"protocol": "http"
104+
},
105+
"5001": {
106+
"label": "HTTPS",
107+
"protocol": "https"
108+
},
109+
"7071": {
110+
"label": "Azure Functions",
111+
"protocol": "http"
112+
}
113+
}
114+
}

.devcontainer/on-setup.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
3+
# Configure HTTPS development certificates for .NET
4+
sudo -E dotnet dev-certs https -ep /usr/local/share/ca-certificates/aspnet/https.crt --format PEM
5+
sudo update-ca-certificates
6+
7+
# Install .NET workloads for Azure development
8+
dotnet workload update
9+
dotnet workload install aspire
10+
11+
# Install global .NET tools
12+
dotnet tool install -g Microsoft.dotnet-httprepl
13+
dotnet tool install -g dotnet-ef
14+
dotnet tool install -g Microsoft.Web.LibraryManager.Cli
15+
dotnet tool install -g dotnet-outdated-tool
16+
dotnet tool install -g dotnet-format
17+
18+
# Update Azure CLI and install extensions
19+
az extension add --name azure-devops --upgrade
20+
az extension add --name application-insights --upgrade
21+
az extension add --name resource-graph --upgrade
22+
23+
# Install Azure Developer CLI (azd) if not already present
24+
if ! command -v azd &> /dev/null; then
25+
curl -fsSL https://aka.ms/install-azd.sh | bash
26+
fi
27+
28+
# Configure Git (if not already configured)
29+
git config --global init.defaultBranch main
30+
git config --global pull.rebase false
31+
32+
echo "✅ DevContainer setup completed successfully!"
33+
echo "🚀 Ready for .NET 8 + C# 13 development with Azure tooling"
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: "\U0001F41B Bug report"
2+
description: Report a bug or unexpected behavior in the solution accelerator
3+
title: "[Bug]: "
4+
labels: [bug]
5+
body:
6+
- type: dropdown
7+
id: area
8+
attributes:
9+
label: Area
10+
description: Which part of the solution is affected?
11+
options:
12+
- Infrastructure (Bicep/infra)
13+
- Application Services (API, Functions, etc.)
14+
- UI (Web app, Portal, etc.)
15+
- Documentation
16+
- Other
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: description
21+
attributes:
22+
label: Bug Description
23+
description: Please provide a clear and concise description of the bug.
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: steps
28+
attributes:
29+
label: Steps to Reproduce
30+
description: How can we reproduce the issue?
31+
placeholder: |
32+
1. Go to '...'
33+
2. Run '...'
34+
3. See error '...'
35+
validations:
36+
required: true
37+
- type: textarea
38+
id: expected
39+
attributes:
40+
label: Expected Behavior
41+
description: What did you expect to happen?
42+
validations:
43+
required: true
44+
- type: textarea
45+
id: actual
46+
attributes:
47+
label: Actual Behavior
48+
description: What actually happened?
49+
validations:
50+
required: true
51+
- type: input
52+
id: environment
53+
attributes:
54+
label: Environment Details
55+
description: OS, Azure CLI version, Bicep version, etc.
56+
placeholder: "e.g., Windows 11, Azure CLI 2.56.0, Bicep 0.22.6"
57+
validations:
58+
required: false
59+
- type: textarea
60+
id: additional
61+
attributes:
62+
label: Additional Context
63+
description: Add any other context, logs, or screenshots about the problem here.
64+
validations:
65+
required: false
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: "?? Chore request"
2+
description: Log a general maintenance, refactoring, or hygiene task for the solution accelerator
3+
labels: [chore]
4+
title: "[Chore]: "
5+
body:
6+
- type: dropdown
7+
id: area
8+
attributes:
9+
label: Area
10+
description: Which part of the solution does this chore relate to?
11+
options:
12+
- Infrastructure (Bicep/infra)
13+
- Application Services (API, Functions, etc.)
14+
- UI (Web app, Portal, etc.)
15+
- Documentation
16+
- GitHub Actions / CI/CD
17+
- Testing
18+
- Dependency Management
19+
- Code Quality / Refactoring
20+
- Other
21+
validations:
22+
required: true
23+
- type: textarea
24+
id: motivation
25+
attributes:
26+
label: Motivation
27+
description: What is the reason for this chore? Why is it needed? (e.g., technical debt, code hygiene, dependency update, test coverage, etc.)
28+
validations:
29+
required: true
30+
- type: textarea
31+
id: task
32+
attributes:
33+
label: Task Description
34+
description: Describe the specific work to be done. Be as detailed as possible so a Copilot Coding Agent can execute the task efficiently.
35+
validations:
36+
required: true
37+
- type: textarea
38+
id: acceptance
39+
attributes:
40+
label: Acceptance Criteria
41+
description: What are the requirements for this chore to be considered complete? (e.g., all tests pass, no build warnings, updated documentation, etc.)
42+
validations:
43+
required: true
44+
- type: textarea
45+
id: impact
46+
attributes:
47+
label: Impact / Risk
48+
description: Are there any risks, side effects, or impacts to other parts of the solution? (e.g., breaking changes, migration steps, etc.)
49+
validations:
50+
required: false
51+
- type: textarea
52+
id: additional
53+
attributes:
54+
label: Additional Context
55+
description: Add any other context, links, or screenshots that would help a Copilot Coding Agent complete this chore.
56+
validations:
57+
required: false
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: "\U0001F680 Feature request"
2+
description: Suggest an idea or enhancement for the solution accelerator
3+
title: "[Feature]: "
4+
labels: [enhancement]
5+
body:
6+
- type: dropdown
7+
id: area
8+
attributes:
9+
label: Area
10+
description: Which part of the solution does this enhancement relate to?
11+
options:
12+
- Infrastructure (Bicep/infra)
13+
- Application Services (API, Functions, etc.)
14+
- UI (Web app, Portal, etc.)
15+
- Documentation
16+
- Other
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: motivation
21+
attributes:
22+
label: Motivation
23+
description: What problem does this feature solve? Why is it needed?
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: proposal
28+
attributes:
29+
label: Proposed Solution
30+
description: Describe the solution you'd like.
31+
validations:
32+
required: true
33+
- type: textarea
34+
id: alternatives
35+
attributes:
36+
label: Alternatives Considered
37+
description: Have you considered any alternative solutions or features?
38+
validations:
39+
required: false
40+
- type: textarea
41+
id: additional
42+
attributes:
43+
label: Additional Context
44+
description: Add any other context or screenshots about the feature request here.
45+
validations:
46+
required: false

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## Area(s) Affected
2+
3+
<!--
4+
Please check all that apply:
5+
-->
6+
- [ ] Infrastructure (Bicep/infra)
7+
- [ ] Sample Data
8+
- [ ] Sample Apps (e.g., data_generator, create_ai_search_index)
9+
- [ ] Documentation
10+
- [ ] Other
11+
12+
## Description
13+
14+
<!--
15+
Describe your changes in detail. Include motivation and context.
16+
-->
17+
18+
## Checklist
19+
20+
- [ ] I have read the [contributing guidelines](CONTRIBUTING.md)
21+
- [ ] The code builds and passes all tests
22+
- [ ] I have updated documentation as needed
23+
- [ ] I have added/updated tests as needed
24+
- [ ] I have verified deployment in my own environment (if applicable)
25+
26+
## Related Issues
27+
28+
<!--
29+
List any related issues, e.g. "Closes #123"
30+
-->
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
description: Create, update or review Azure infrastructure as code in Bicep syntax using Azure Verified Modules .
3+
tools: ['changes', 'codebase', 'editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'giphy', 'playwright', 'azure_get_deployment_best_practices', 'azure_get_schema_for_Bicep', 'websearch']
4+
---
5+
# Azure Verified Modules Bicep mode instructions
6+
7+
You are in Azure Verified Modules Bicep mode. Your task is to create, update, or review Azure infrastructure as code in Bicep syntax using Azure Verified Modules (AVM).
8+
9+
When creating Bicep templates for Azure resources, you must always use Azure Verified Modules (AVM) to ensure best practices, security, and maintainability. Azure Verified Modules are pre-built, community-reviewed Bicep modules that encapsulate best practices for deploying Azure resources.
10+
11+
Always use Azure Verified Modules (AVM) for all resources, including networking, security, and compute resources - wherever possible. You must always refer to the [Azure Verified Modules documentation for Bicep](https://azure.github.io/Azure-Verified-Modules/indexes/bicep/bicep-resource-modules/) to ensure you are using the latest version of the module and that you are using the module correctly.
12+
13+
You can find use the `fetch` tool to get the latest version of an Azure Verified Module from Microsoft Container Registry. For example, for module `avm/res/compute/virtual-machine` fetch [https://mcr.microsoft.com/v2/bicep/avm/res/compute/virtual-machine/tags/list](https://mcr.microsoft.com/v2/bicep/avm/res/compute/virtual-machine/tags/list) and find the latest version tag.
14+
15+
You can find the documentation and example configurations for each Azure Verified Module resource in a folder based on the module name. For example, for module `avm/res/compute/virtual-machine` you will find the documentation in [https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/compute/virtual-machine](https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/compute/virtual-machine)
16+
17+
You can optionally use the Giphy tools to include relevant GIFs to illustrate concepts or add humor to your responses.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
description: Provide expert .NET software engineering guidance using modern software design patterns.
3+
tools: ['changes', 'codebase', 'editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'playwright', 'websearch']
4+
---
5+
# Expert .NET software engineer mode instructions
6+
7+
You are in expert software engineer mode. Your task is to provide expert software engineering guidance using modern software design patterns as if you were a leader in the field.
8+
9+
You will provide:
10+
11+
- insights, best practices and recommendations for .NET software engineering as if you were Anders Hejlsberg, the original architect of C# and a key figure in the development of .NET as well as Mads Torgersen, the lead designer of C#.
12+
- general software engineering guidance and best-practices, clean code and modern software design, as if you were Robert C. Martin (Uncle Bob), a renowned software engineer and author of "Clean Code" and "The Clean Coder".
13+
- DevOps and CI/CD best practices, as if you were Jez Humble, co-author of "Continuous Delivery" and "The DevOps Handbook".
14+
- Testing and test automation best practices, as if you were Kent Beck, the creator of Extreme Programming (XP) and a pioneer in Test-Driven Development (TDD).
15+
16+
For .NET-specific guidance, focus on the following areas:
17+
18+
- **Design Patterns**: Use and explain modern design patterns such as Async/Await, Dependency Injection, Repository Pattern, Unit of Work, CQRS, Event Sourcing and of course the Gang of Four patterns.
19+
- **SOLID Principles**: Emphasize the importance of SOLID principles in software design, ensuring that code is maintainable, scalable, and testable.
20+
- **Testing**: Advocate for Test-Driven Development (TDD) and Behavior-Driven Development (BDD) practices, using frameworks like xUnit, NUnit, or MSTest.
21+
- **Performance**: Provide insights on performance optimization techniques, including memory management, asynchronous programming, and efficient data access patterns.
22+
- **Security**: Highlight best practices for securing .NET applications, including authentication, authorization, and data protection.

0 commit comments

Comments
 (0)