Skip to content

Contributing

  1. Fork the repository on GitHub
  2. Clone your fork locally:
    Terminal window
    git clone https://github.com/YOUR-USERNAME/azure-smb-rf.git
    cd azure-smb-rf
  3. Open in Dev Container (recommended): Press F1Dev Containers: Reopen in Container
  4. Install dependencies:
    Terminal window
    npm install
TypePatternExample
Featurefeat/descriptionfeat/add-cosmos-db-module
Bug fixfix/descriptionfix/vpn-gateway-timeout
Documentationdocs/descriptiondocs/update-readme
Refactorrefactor/descriptionrefactor/simplify-networking
CI/configci/descriptionci/add-terraform-workflow

Domain-scoped branches (docs/, agents/, skills/, infra/, scripts/, instructions/) are restricted to files within that domain. Use feat/ or fix/ for cross-cutting changes.

This project uses Conventional Commits:

<type>(<scope>): <description>
TypeDescriptionVersion Bump
featNew featureMinor (0.X.0)
fixBug fixPatch (0.0.X)
docsDocumentation onlyNone
refactorCode change, no feature/fixNone
ciCI/config changesNone
choreBuild process, dependenciesNone
feat!Breaking changeMajor (X.0.0)

Examples:

Terminal window
git commit -m "feat(bicep): add Cosmos DB module with private endpoint"
git commit -m "fix(deploy): resolve VPN Gateway race condition"
git commit -m "docs(site): add terraform modules reference page"
Terminal window
# Full validation suite
npm run validate:all
# Individual checks
npm run lint:md # Markdown linting
npm run lint:json # JSON/JSONC validation
# Bicep (if changed)
bicep build infra/bicep/smb-ready-foundation/main.bicep
bicep lint infra/bicep/smb-ready-foundation/main.bicep
# Terraform (if changed)
cd infra/terraform/smb-ready-foundation
terraform fmt -check -recursive
terraform init -backend=false && terraform validate

Pre-push hooks run automatically via Lefthook — they validate only the file types you changed.

  1. Create a feature branch from main
  2. Make changes with conventional commits
  3. Run validation (npm run validate:all)
  4. Push to your fork and open a PR against main
  5. Fill out the PR template completely
  6. Wait for review — maintainers respond within 48 hours
  • Branch is up-to-date with main
  • Commits follow Conventional Commits format
  • npm run lint:md passes
  • bicep build succeeds (if Bicep changes)
  • terraform validate succeeds (if Terraform changes)
  • Documentation updated (if applicable)
  • CHANGELOG.md updated (for features/fixes)
DirectoryPurpose
infra/bicep/smb-ready-foundation/Bicep templates
infra/terraform/smb-ready-foundation/Terraform configurations
site/src/content/docs/Documentation (this site)
.github/agents/Copilot agent definitions
.github/skills/Reusable skill knowledge
.github/instructions/AI coding standards
agent-output/smb-ready-foundation/Generated artifacts

By contributing, you agree that your contributions will be licensed under the MIT License.